static final和常量設計

2021-10-25 02:20:26 字數 980 閱讀 5393

static

(可作用於變數、方法、類、匿名**塊)

靜態變數:只依賴於類存在,無論建立多少個物件,都共享這乙個static變數

靜態方法:只能使用靜態變數,禁止引用非靜態方法。可以使用類.方法直接來引用

static塊:只執行一次,與建構函式之間的執行順序:static塊→匿名塊→建構函式

單例模式(單態模式,singleton)

限定某乙個類在整個程式執行過程中,只保留乙個物件

採用static來共享物件例項

採用private來建立,保證外部不呼叫

final

1.可修飾:類、方法、字段

2.用final修飾的類不可以被繼承

3.如果父類中如果有final方法,子類是不可以被重寫的

4.final乙個變數,不能再次被賦值,如果是物件例項,就是不能修改其指標。

常量設計

public static final pi_number

(介面中定義的變數預設是常量)

1.常量池(相同型別的值只儲存了乙份,省記憶體,共享訪問):為基本型別的包裝類都建立了常量池,同樣為字串常量也建立了常量池,超過常量範圍的不會進入常量池

基本型別

常量範圍

boolean

true、false

byte

-128~127

short

-128~127

integer

-128~127

long

-128~127

character

0~127

float、double

無常量常量式賦值建立放在棧記憶體中(容量小,訪問快)

new物件建立,放在堆記憶體中(容量大,訪問慢)

5. 不可變物件和字串

stringbuffer

同步,執行緒安全,修改快速

stringbuilder

不同步,執行緒不安全,建立更快

static final和成員變數

final static 成員變數與靜態變數的區別 名稱 所屬記憶體位置 存在時間 消失時間 呼叫成員變數 例項物件 堆記憶體物件new存在 物件被 物件呼叫 靜態變數 類變數方法區 類載入時存在 類消失物件 共享 或類名 static 塊隨著類載入而被執行,只執行一次 new 多個物件只執行一次 ...

帶參方法與包和static final

帶參方法定義的一般形式 訪問修飾符 返回型別 方法名 引數列表 引數的概念 形參是在定義方法時對引數的稱呼 實參是在呼叫方法時傳遞給方法的實際的值 呼叫帶參方法時要求實參與形參要匹配 乙個引數可以有多個引數但只能有乙個返回值 呼叫方法時不能指定實參型別!形參和實參資料型別要一致!形參和實參數量要一致...

單例模式(一)static final和單例模式

那天我朋友問了我個問題,static和單例模式有什麼區別,所以我覺得static可以講一下 他的問題是,把物件弄成static是不是就不變了 顯然,這是還沒弄清楚引用和物件的區別 其實存放在靜態區中的是引用,而不是物件。而物件是存放在堆中的。如果有這樣一句話 public static final ...