Java static final的用法和意義

staticfinal
static作用於成員變量,用來表示,在內存中只保存一份副本,即在內存中只有一個,靜態變量被所有對象所共享,但是它可以被重新賦值
fianl修飾類,類不能被繼承,修飾方法,不可以被覆蓋,修飾的變量,爲常量,不能被修改

final

  • 如果修飾的成員變量是基本類型,則表示這個變量的值不能改變
  • 如果修飾的成員變量是一個引用類型,則是說這個引用的地址的值不能修改,但是這個引用所指向的對象裏面的內容還是可以改變的

public static final 和 public final static 都表示共有的靜態常量,完全一樣,沒有不同。
推薦寫法是public static final

1 用法說明

當一個常數或字符串我們需要在程序裏反覆使用的時候,我們就可以把它定義爲static final,這樣內存就不用重複的申請和釋放空間

static int a=1;
static final b=1;
final int c=1;

這裏a和b的區別在於,a在程序裏可以被重新賦值爲2或3或等等的整數,而b在程序裏不能被重新賦值,b永遠都爲1,也就是說b是一個常量。
這裏c和b的區別在於,b存放在靜態空間,不會在程序運行時被釋放,它永遠佔着內存直到程序終止,而c在程序用完它而不會再用到它的時候就會被自動釋放,不再佔用內存。

2 擴展

在接口中定義一個常量,就算是不定義成public static final,其實編譯器也幫你加好了。

在接口中定義一個, String a = “hehe”; 它的字符串已經被編譯器認爲是常量了。

public interface DemoInterface {
    String a  = "hehe";
}

public class Test1114 {
    public static void main(String[] args) {
        System.out.println(DemoInterface.a);
    }
}

輸出結果: hehe
所以就是相當於編譯器替你加上了public static final

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章