java中static是什麼意思
⑴ java中static是什麼意思
static是指在內存的datasegment里生成一塊內存 要用的時候不用每次都new一個新的內存空間 直接用類名+static的方法名或變數名引用就可以了 args是字元串數組的名字 你喜歡也可以換成String[] haha 方括弧放前面後面都可以 習慣放前面
⑵ java中static是什麼意思,該怎麼用
就是靜態。如果一個成員被聲明為static,它就能夠在它的類的任何對象創建之前被訪問,而不必引用任何對象。你可以將方法和變數都聲明為static。static 成員的最常見的例子是main( ) 。因為在程序開始執行時必須調用main() ,所以它被聲明為static。
聲明為static的變數實質上就是全局變數。當聲明一個對象時,並不產生static變數的拷貝,而是該類所有的實例變數共同擁有一個static變數。聲明為static的方法有以下幾條限制:
· 它們僅能調用其他的static 方法。
· 它們只能訪問static數據。
· 它們不能以任何方式引用this 或super(關鍵字super 與繼承有關)。
舉例
如果你需要通過計算來初始化你的static變數,你可以聲明一個static塊,Static 塊僅在該類被載入時執行一次。下面的例子顯示的類有一個static方法,一些static變數,以及一個static 初始化塊:
// Demonstrate static variables,methods,and blocks.
class UseStatic {
static int a = 3;
static int b;
static void meth(int x) {
System.out.println("x = " + x);
System.out.println("a = " + a);
System.out.println("b = " + b); }
static {
System.out.println("Static block initialized.");
b = a * 4; }
public static void main(String args[]) {
meth(42); }
}
一旦UseStatic 類被裝載,所有的static語句被運行。首先,a被設置為3,接著static 塊執行(列印一條消息),最後,b被初始化為a*4 或12。然後調用main(),main() 調用meth() ,把值42傳遞給x。3個println ( ) 語句引用兩個static變數a和b,以及局部變數x 。 注意:在一個static 方法中引用任何實例變數都是非法的。
下面是該程序的輸出:
Static block initialized.
x = 42
a = 3
b = 12
⑶ java中static是什麼意思
意思:靜態
用法:類中的靜態變數和靜態方法在類沒有new的時候可直接調用。
例:類A(其中有靜態變數b和靜態方法m),A的一個實例a(a=new A();)
調用時可以用A.b和A.m,也可以用a.b和a.m,並且兩種調法是一樣的。這里的一樣是完全一樣。
想深入了解類載入過程,得讀JVM的書。呵呵...
⑷ 在JAVA語言中,關鍵字static如何具體解釋
static是靜態修辭符號。用它來修辭成員變數被視為類的成員變數,而不能當成實例變數,也就是說,靜態變數是類固有的,可以被直接引用,而其他成員變數申明後,只有生成對象後才可以引用!
⑸ java中的static到底有什麼作用
static表示「全局」或者「靜態」的意思,用來修飾成員變數和成員方法,也可以形成靜態static代碼塊,但是Java語言中沒有全局變數的概念。被static修飾的成員變數和成員方法獨立於該類的任何對象。也就是說,它不依賴類特定的實例,被類的所有實例共享。static變數前可以有private修飾,表示這個變數可以在類的靜態代碼塊中,或者類的其他靜態成員方法中使用(當然也可以在非靜態成員方法中使用--廢話),但是不能在其他類中通過類名來直接引用,這一點很重要。實際上你需要搞明白,private是訪問許可權限定,static表示不要實例化就可以使用,這樣就容易理解多了。static前面加上其它訪問許可權關鍵字的效果也以此類推。
⑹ java static是什麼意思
是靜態修飾符,什麼叫靜態修飾符呢?大家都知道,在程序中任何變數或者代碼都是在編譯時由系統自動分配內存來存儲的,而所謂靜態就是指在編譯後所分配的內存會一直存在,直到程序退出內存才會釋放這個空間,也就是只要程序在運行,那麼這塊內存就會一直存在。這樣做有什麼意義呢?
在Java程序裡面,所有的東西都是對象,而對象的抽象就是類,對於一個類而言,如果要使用他的成員,那麼普通情況下必須先實例化對象後,通過對象的引用才能夠訪問這些成員,但是有種情況例外,就是該成員是用static聲明的(在這里所講排除了類的訪問控制),例如:
未聲明為static
class ClassA{
int b;
public void ex1(){
…
}
}
class ClassB{
void ex2{
int i;
ClassA a = new ClassA();
i = a.b; //這里通過對象引用訪問成員變數b
a.ex1; //這里通過對象引用訪問成員函數ex1
}
}
聲明為static
class ClassA{
static int b;
static void ex1(){
…
}
}
class ClassB{
void ex2{
int i;
i = ClassA.b; //這里通過類名訪問成員變數b
ClassA.ex1; //這里通過類名訪問成員函數ex1
}
}
通過以上兩種比較,就可以知道static用來修飾類成員的主要作用了,在java類庫當中有很多類成員都聲明為static,可以讓用戶不需要實例化對象就可以引用成員,最基本的有Integer.parseInt(),Float.parseFloat()等等用來把對象轉換為所需要的基本數據類型。這樣的變數和方法我們又叫做類變數和類方法。
接下來講一下被static修飾後的變數的值的問題,剛才在前面講過,被static修飾後的成員,在編譯時由內存分配一塊內存空間,直到程序停止運行才會釋放,那麼就是說該類的所有對象都會共享這塊內存空間,看一下下面這個例子:
class TStatic{
static int i;
public TStatic(){
i = 4;
}
public TStatic(int j){
i = j;
}
public static void main(String args[]){
TStatic t = new TStatic(5); //聲明對象引用,並實例化
TStatic tt = new TStatic(); //同上
System.out.println(t.i);
System.out.println(tt.i);
System.out.println(t.i);
}
}
這段代碼裡面Tstatic類有一個static的int變數I,有兩個構造函數,第一個用於初始化I為4,第二個用於初始化i為傳進函數的值,在main中所傳的值是5,程序首先聲明對象的引用t,然後調用帶參數的構造函數實例化對象,此時對象t的成員變數I的值為5,接著聲明對象tt,調用無參數的構造函數,那麼就把對象tt的成員變數i的值初始化為4了,注意了,在這里i是static,那就是說該類的所有對象都共享該內存,那也就是說在實例化對象tt的時候改變了i的值,那麼實際上對象t的i值也變了,因為實際上他們引用的是同一個成員變數。最後列印的結果是三個4。呵呵,寫到這里大家是否明白了呢?不明白就再看看書或者多寫幾個例子印證一下,呵呵。
⑺ 「java」中「static」是什麼意思該如何使用
意思:靜態
用法:類中的靜態變數和靜態方法在類沒有new的時候可直接調用。
例:類A(其中有靜態變數b和靜態方法m),A的一個實例a(a=new
A();)
調用時可以用A.b和A.m,也可以用a.b和a.m,並且兩種調法是一樣的。這里的一樣是完全一樣。
想深入了解類載入過程,得讀JVM的書。呵呵...
⑻ Java中static是什麼
在Java中static是個關鍵字,一般在類中用來修飾成員方法和成員變數,被修飾的成員方法和成員變數在未創建該類對象時也可以通過類.方法名或者類名.變數名來調用~
⑼ java中static是什麼意思能不能通俗的講下,讓我這個菜鳥好理解一點
static英文是靜態的意思,所以它在java中也是這么用的,是一個修飾詞,在定義數據前面加上它是指這個數據是靜態不變的,在方法明加上它是指這個方法是靜態的。一般就是這些用處
⑽ java中static關鍵字的意義
1. static關鍵字 : 靜態的意思。可以修飾成員變數和成員方法。
2. static關鍵字的特點
A : 隨著類的載入而載入
B : 優先於對象存在
C : 被類的所有對象共享
這其實也是我們判斷該不該使用靜態的依據。
同一個班級的學生應該共用同一個班級編號。
飲水機 (用靜態修飾)
水杯 (不能用靜態修飾)D : 可以通過類名調用
既可以通過對象名調用,也可以通過類名調用,建議通過類名調用。
A : 在靜態方法中沒有this關鍵字,如何理解呢 ?
靜態是隨著類的載入而載入,this是隨著對象的創建而存在。
靜態比對象先存在。
B : 靜態只能訪問靜態。
靜態方法只能訪問靜態的成員變數。
靜態方法只能訪問靜態的成員方法。
非靜態方法可以訪問靜態和非晶態的成員變數。
非靜態方法可以訪問靜態和非晶態的成員方法。
A : 所屬不同
靜態變數:屬於類,類變數
成員變數:屬於對象,對象變數,實例變數B : 內存位置不同
靜態變數:方法區的靜態區
成員變數:堆內存C : 生命周期不同
靜態變數:靜態變數是隨著類的載入而載入,隨著類的消失而消失
成員變數:成員變數是隨著對象的創建而存在,隨著對象的消失而消失D : 調用不同
靜態變數:可以通過對象名調用,也可以通過類名調用
成員變數:只能通過對象名調用
3. static關鍵字的注意事項
4. 靜態變數和成員變數的區別