靜態內部類

2021-10-04 13:23:37 字數 614 閱讀 7401

靜態內部類與非靜態內部類之間存在乙個最大的區別,我們知道非靜態內部類在編譯完成之後會隱含地儲存著乙個引用,該引用是指向建立它的外圍類,但是靜態內部類卻沒有。沒有這個引用就意味著:

example(靜態內部類實現單例模式)

public

class

singleton

// 宣告為 private 表明靜態內部該類只能在該 singleton 類中被訪問

private

static

class

singletonholder

public

static singleton getuniqueinstance()

}

當 singleton 類載入時,靜態內部類 singletonholder 沒有被載入進記憶體。只有當呼叫 getuniqueinstance() 方法從而觸發 singletonholder.instance 時 singletonholder 才會被載入,此時初始化 instance 例項,並且 jvm 能確保 instance 只被例項化一次。

這種方式不僅具有延遲初始化的好處,而且由 jvm 提供了對執行緒安全的支援。

內部類 靜態內部類

static可以修飾內部類,通常用來給外部類賦值 例如 建造者模式 靜態內部類不能使用外部類非靜態的屬性,必須用物件名呼叫 在外部類中 建立靜態內部類可以直接建立,不需要建立外部類 不能使用成員內部類的方式建立靜態內部類物件 內部類 物件名 new 內部類 外部類.內部類 物件名 new 外部類.內...

內部類 靜態內部類

package org.lgy.study.innerclass 靜態內部類屬於外部類本身,而不屬於外部類的物件。使用靜態內部類時無需建立外部類的物件。public class staticinnerclass public static void method2 public void metho...

內部類 靜態內部類

即定義在類或方法體內部的類,經常被使用於gui android程式設計中的事件處理 測試外部類等 public class outer class inner 即為內部類 在例項化內部類之前應該先 例項化外部類 方案一outer outer new outer inner inner outer.n...