|
Java 中的static屬性 主要用于保持數(shù)據(jù)唯一性。 你可以用Random測試一下 import java.util.Random;
class Test1{
Random ran = new Random();
static Random ran2 = new Random(); static int i = ran2.nextInt(100); static int a =ran2.nextInt(100);
int b = ran.nextInt(100);
int c = ran.nextInt(100);
public Test1(){
System.out.println("靜態(tài)屬性i = " + i + ";a = " +a ); System.out.println("非靜態(tài)屬性 b = " + b +";c = " +c );
}
public static void method(){
i=90; } }
class Test{
public static void main(String[] args){ new Test1(); new Test1();
}
}
從上面的運行結(jié)果我們可以看到靜態(tài)屬性的值在內(nèi)存中是唯一一份的(即只初始化一次)。 當你感覺你需要數(shù)據(jù)唯一性,或者有時候你不想創(chuàng)建整個類的對象,經(jīng)常用到其中一個對象而已的話,那么干脆就把這個變量或?qū)ο蠖x為static。 可以直接用類名引用! 靜態(tài)屬性不屬于類實例的一部分,你可以在上面Test1的構(gòu)造函數(shù)中見證這一點。 即使我們實例了Test1兩次,但i 和 a 依然不變。
至于說什么時候可以用和不可以用的話 那么就是static變量只能做為全局變量,假設(shè)你把static聲明在方法里那么一定會出錯的。因為局部變量聲明為static是完全沒有意義的。
修飾成員使數(shù)據(jù)一直存于內(nèi)存,已方便調(diào)用,適合常量定義 修飾方法,無需初始化該方法所在類的對象,直接可以通過類名.方法名的方式來調(diào)用,方便快捷。
static 修飾的變量 就是在程序啟動的時候在內(nèi)存一直存在,直到程序關(guān)閉。
static 是靜態(tài),
他告訴虛擬機,說,我用這個修飾的,你給我放在靜態(tài)池里面(內(nèi)存),并且,先給我執(zhí)行。 static 修飾的,會先于非靜態(tài)修飾的, 比如 1. private String abc = "123"; 2. private static String abc = "123" 1的執(zhí)行條件是,當虛擬機,實例化了某個類,這個abc才賦值。 2.的執(zhí)行條件是,當虛擬機,一執(zhí)行,就把abc賦值了。這就是為什么,靜態(tài)方法,不需要實例化類,就能使用的原因, |
|
|
來自: 后飛的鳥 > 《Java基礎(chǔ)》