java常量的定義

一、接口中定義常量:

    由於java interface中聲明的字段在編譯時會自動加上static final的修飾符,即聲明爲常量。

public interface Constants{  
    String name = "111";  
}  
public class read{  
    public static void main(String[] args){  
        System.out.println("Class Constants's name = " + Constants.name);  
    }  
}

   由於引用了一個static final 的字段,編譯器已經將interface Constants中name的內容編譯進了class read中,而不是對其引用。因此只有重新編譯class read,interface Constants中name發生的變化才能在class read中反映。

二、類中定義 

public class Constants{  
    private static final String name = "111";  
    public static String getName(){  
        return name;  
    }  
}   
public class read{  
    public static void main(String[] args){  
        System.out.println("Class Constants's name = " + Constants.getName());  
    }  
}

    class read中是對Constants class的getName()方法的引用,當常量name的值改變時我們只需對class Constants中的常量做修改並重新編譯,無需編譯class read。

   我們可以使用jdk提供的反編譯工具javap反編譯read.class看個究竟,輸入:javap -c read即可查看兩種方式的不同。

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