導航:首頁 > 編程語言 > javafinalstatic

javafinalstatic

發布時間:2024-04-25 03:57:47

java中static final變數存儲內存哪個區

這是一個對常量的定義,放在常量池 注意你寫的不是static int MAX=9;

Ⅱ Java 中final static變數為什麼要初始化

舉個例子:一、一個屬性成員變數為:public int age;(編寫完該句意味著虛擬機已經為該成員變數age賦默認值0。int類型默認值為0。也可以直接定義時賦值,如public int age =10;。該age的值可以被賦值或者在構造方法裡面進行改變)。
二、public static int age;(該句增加static修飾age,不同的是,加了static表示了該變數為全局變數,且默認取值為0,因為int默認取值為0。也可以進行直接定義時賦值public static int age =10;不同的是該屬性不依賴對象、依賴類,本類對象共享一份,和上面一樣該age的值一樣可以被賦值或者在構造方法裡面進行改變)。
三、public final int age;(該句用final單獨修飾,表示該成員屬性變數age將不會取int類型的默認值,故age沒有被初始化,必須在定義的時候進行直接賦值,或者在創建對象的時候使用構造方法對該成員屬性變數進行賦值。並且一旦用final定義後,就變為最終變數,值 不可以再被改變!所以,該句代碼的正確寫法應該是如下兩種:1、public final int age = 10;
2、
class Dog{
public final int age;
public Dog(){
int age = 10;

}
}
)。
四、public static final int age;(該句和上面一樣,也是age沒有被初始化,所以age必須被賦值,不同的是該情況下必須是直接賦值,而不能在構造方法裡面進行賦值。正確的寫法是:public static final int age = 10;這是因為第一、用final修飾的屬性不能夠用數據類型的默認值為初始化的值,必須要直接賦值,或者在使用構造方法去創建對象的時候對變數進行賦值。但是,第二、由於被static修飾以後的屬性成員變數,該成員變數是在類載入完的時候其值已經被確定了,該值依賴類,並不依賴對象。即使不創建對象它就已經有值了,並且由於被final所修飾不能夠用數據類型的默認值,故而只能直接賦值,並且被final所修飾成為了最終變數,不可以改變。故而,由於以上兩方面原因,只能是直接賦值。public static final int age = 10;)

Ⅲ java中static和final能同時修飾一個變數嗎,為什麼

可以。sataic表示這個變數是這個類的全體對象所共享的,一旦通過其中某個對象的引用去專改變這個變數則屬其他對象再次引用這個變數時,得到的值也隨之改變,因為所有的對象引用的其實是同一個內存地址的東西。而final則表示一旦定義了這個變數的值就不能再改變了,就是常量了。final和static表達的含義不同,二者並不沖突

閱讀全文

與javafinalstatic相關的資料

熱點內容
jscss切換樣式表實現網頁換膚 瀏覽:423
如何防止別人利用文件 瀏覽:269
蘋果微信下載文件找不到 瀏覽:987
怎麼刪除資料庫再建同名庫 瀏覽:195
涼台封斷橋鋁如何測量數據 瀏覽:74
word2007自動分頁 瀏覽:648
怎麼復制鋼筆工具畫出來的線條 瀏覽:882
資料庫哪些比較好 瀏覽:38
ps人物美白去斑教程 瀏覽:66
打開軟體彈出無效文件提示 瀏覽:704
學習四級聽力app哪個好 瀏覽:561
mac如何下載win10鏡像文件 瀏覽:624
日版a1453卡貼機升級 瀏覽:912
javascript全局變數局部變數 瀏覽:496
大數據的底表是什麼意思 瀏覽:981
龍與城取物下載什麼app 瀏覽:19
山西大同哪裡學編程課 瀏覽:316
許可證與配置文件 瀏覽:140
華為怎麼連接電腦數據線 瀏覽:288
核實數據後如何回復 瀏覽:572

友情鏈接