final和static

經(jīng)??吹接腥嗽诙x常量時,比如:

// 使用日志框架定義一個logger時
private static final Logger logger = LoggerFactory.getLogger(BalaService.class);

// 定義常量時
public final static String SUCCESS_CODE = "200"; 

看別人這樣寫,自己也模仿著這樣寫,有時還記不住final static,其實是自己沒有明白其真正的含義。
引用
http://www.cnblogs.com/dolphin0520/p/3736238.html
這篇講final的博客中的一段代碼:

public class Test {
    public static void main(String[] args)  {
        MyClass myClass1 = new MyClass();
        MyClass myClass2 = new MyClass();
        System.out.println(myClass1.i);
        System.out.println(myClass1.j);
        System.out.println(myClass2.i);
        System.out.println(myClass2.j);
 
    }
}
 
class MyClass {
    public final double i = Math.random();
    public static double j = Math.random();
}

運行這段代碼j的值是不變的,而i的值是變化的。
Java類中使用static修飾的,如static初始化代碼塊,static修飾的變量。Java類在初始化時優(yōu)先初始化靜態(tài)變量,靜態(tài)初始化的變量保存在內(nèi)存的全局區(qū)域,被這個類生成的對象所共享,關(guān)于內(nèi)存的高深細節(jié)我現(xiàn)在也不是很明白,等后續(xù)跟進吧。

由上面的代碼,j是類相關(guān)的變量,i是對象相關(guān)的變量。兩次new MyClass() j 只會初始化一次,被MyClass生成的對象共享。i 會在一次new MyClass()時就初始化一次,所以 i 是變化的。

當使用static final去修飾一個變量時:

  • 期望是使用類名去訪問這個變量,訪問方便;
  • 使用這個變量時,類裝載進JVM,只初始化一次,保存在內(nèi)存的全局區(qū)域;
  • 可被多個對象實例共享;
  • final表示這個變量是個常量,不允許被改變。

關(guān)于static和final還有更多的細節(jié),我只撿出工作中遇到的、有疑惑的部分,更多實際有趣的使用,還請你多多分享哦!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語法,類相關(guān)的語法,內(nèi)部類的語法,繼承相關(guān)的語法,異常的語法,線程的語...
    子非魚_t_閱讀 34,688評論 18 399
  • static 修飾符 作用(靜態(tài)的只能訪問靜態(tài)的)static表示靜態(tài)的,可以用來修飾成員變量和方法,也可以形成靜...
    正陽Android閱讀 1,929評論 0 0
  • final稱為常量,static final稱為全局常量。 成員變量是隨類初始化或?qū)ο蟪跏蓟跏蓟?。當類初始?..
    忘凈空閱讀 1,548評論 0 1
  • 談到final關(guān)鍵字,想必很多人都不陌生,在使用匿名內(nèi)部類的時候可能會經(jīng)常用到final關(guān)鍵字。另外,Java中的...
    WilsonMing閱讀 683評論 0 5
  • 一 那一封來自影子戀人的《不二情書》 你有在深夜里獨自哭泣嗎?你有對著無星的夜空喃喃自語嗎?你有在波濤涌動的...
    周愛咨詢閱讀 728評論 1 6

友情鏈接更多精彩內(nèi)容