①java類的成員變量有倆種:
一種是被static關鍵字修飾的變量,叫類變量或者靜態變量
另一種沒有static修飾,為成員變量
②通俗點說:
類的靜態變量在內存中只有一個,java虛擬機在加載類的過程中為靜態變量分配內存,靜態變量位於方法區,被類的所有實例共享。靜態變量可以直接通過類名進行訪問,其生命周期取決於類的生命周期。
而實例變量取決於類的實例。每創建一個實例,java虛擬機就會為實例變量分配一次內存,實例變量位於堆區中,其生命周期取決於實例的生命周期。
注意點:
1.JAVA中初始化的順序:
加載類;
靜態變量初始化;
靜態塊;【其只能調度靜態的,不能調度非靜態的】
成員變量;
構造方法;
2.為顯示靜態塊的優先級,我來顯示一個沒有Main方法的程序,javac后其是沒有任何錯誤的。
public class Test {
static {
System.out.println("static ");
System.exit(0);
}
}