java靜態變數
『壹』 java的靜態變數 static
1.首先你 for (i = 0; i < 3; i++) 里的i就是那個靜態的i了 你把i=0了 於是靜態的i就變成0了 於是執行完循環i就變成3了
2.你的for循環並沒有定義局部的i 親
把那個for循環改成for ( int i = 0; i < 3; i++)
就可以了
『貳』 有關java靜態變數的訪問
Java中靜態變數是指用static修飾的變數,這個是屬於類的,是這個類或所有屬於這個類的實例對象所共有共享的,所以你這兩種調用都一樣的
『叄』 java靜態變數只有一份變數是什麼意思
說通俗點,你可以這樣想,類其實就是一個模板,而對象就是由這個模板拷貝出來的。
在由類創建對象時,就是把類中的所有非靜態變數都拷貝給了創建的對象,這些非靜態變數都存儲在所創建對象的內存空間中,但在這個過程中靜態變數是不會拷貝給對象的。
明白了吧,也就是說用類創建對象時,所有的變數都拷貝一份給了對象,但只有靜態變數是不會拷貝給對象的,它是存儲在類的空間中,所有對象可以用它,但用的是同一個靜態變數,這個靜態變數只在類的空間中保存了一份。
至於為什麼只初始化一次,那是因為靜態變數只在類的空間中保存了一份,它是屬於類的,當你第一次載入類的時候,靜態變數就會隨著一起載入,再往後即便你創建對象了,由於創建時根本就沒把靜態變數拷貝給對象,當然這個變數也就只初始化一次了。
其實只要你能明白靜態變數和類的關系,這些問題就沒什麼好說的。看在我打了這么多字的份上,也該給俺分了吧,嘿嘿!
『肆』 java中一個類中的靜態變數有什麼用
靜態變數有什麼用,那就把和成員變數的區別告訴你。
靜態變數用static修飾:附屬於類
而成員變數是附屬於對象的。
具體反應在 每個對象有各自的成員變數,但是他們共享靜態變數。所以靜態變數相當於是大家的共有資源。
再調用方法上。靜態變數可以通過類名或者對象名訪問,而成員變數只能通過對象名。
因為靜態變數是類編譯完成後就分配了內存空間,所以不用創建對象也可以訪問。
而成員變數必須在構造對象以後才會分配內存空間,只能通過對象名訪問。
『伍』 java 類變數 靜態變數
publicclassDemo
{
privateinta;//實例變數
privatestaticinta;//靜態變數(也叫類變數)
publicvoidfun1(){
//這個是實例方法
}
publicvoidstaticfun2(){
//這個是靜態方法(類方法)
}
}
publicstaticvoidmain(String[]args){
//這里調用實例方法
Demodemo=newDemo();
demo.fun1();
//這里調用靜態方法
Demo.fun2();
}
『陸』 java如何存取靜態變數
無論是靜態的屬性和方法都可以使用 類名.屬性名或類名.方法名這樣的方式進行直接調用。當然由於一般 屬性和方法的調用也是可以的哦。
『柒』 Java中靜態常量和靜態變數的區別
靜態變數是屬於靜態存儲方式,但是屬於靜態存儲方式的量不一定就是靜態變數,例如外部變數雖屬於靜態存儲方式,但不一定是靜態變數,必須由static加以定義後才能成為靜態外部變數,或稱靜態全局變數。
對於自動變數,它屬於動態存儲方式。但是也可以用static定義它為靜態自動變數,或稱靜態局部變數,從而成為靜態存儲方式。由此看來,一個變數可由static進行再說明,並改變其原有的存儲方式。
而在以Pascal為代表的許多程序語言中,所有局部變數都由系統自動分配存儲空間,而所有全局變數的存儲空間則以靜態分配的方式獲取,因此由於實際上「局部變數」和「全局變數」這兩個術語已足以涵蓋所有的情況,在這些程序語言中通常不使用「靜態變數」這一術語,而直接以「全局變數」代之。
在這些程序語言中,靜態變數就是全局變數,而即使在有明確區分全局和靜態變數的程序語言中,在編譯後的代碼里二者也以相同的方式獲取存儲空間。而今術語「靜態變數」的概念則主要基於C族語言的「static」的定義。
靜態變數也可以用於存儲常數。具體來說,靜態變數可用const,constant或final等關鍵字標識,這時其值就會在編譯時設定,並且無法在運行時改變。編譯器通常將靜態常量與文本一起置於目標文件的文本區域,而非常量初始化數據則置於數據區。
『捌』 java中靜態變數和靜態方法的優缺點
java 里的靜態可以說就是全局變數,它是屬於類的,類存在它就已經存在了,方法也是一樣,靜態方法裡面使用到的外部變數只能是靜態變數,想想就知道了.
但是不要隨便定義成靜態方法, 因為靜態方法內部只能使用靜態變數,而靜態變數是屬於類的, 如果都是靜態方法那麼這個類就沒有實力化的必要.所以一般的工具類才使用較多的靜態方法
『玖』 java靜態變數的基本介紹
1·、static應用范圍:可用於內部類、方法和變數。
2、標記一個方法為static,意味著這個方法,被所在類的所有實例公用,在類裝載時被首先執行,執行一次即被所有該類的實例共享,同時意味著:
A、static方法內部不能引用非static變數。
B、static方法不能被子類重寫為非static方法。
C、父類的非static方法不能被子類重寫為static方法。
D、static代碼塊可以用static {}來完成,在類被第一次裝載時執行初始化,先於靜態方法和其他方法的執行。
3、標記一個變數為static,則該變數在內存中有不變的位置,相當於全局變數,所有類的實例都訪問同一個存儲變數區域。對其修改對於所有類的實例來說都是可見和一致的。
『拾』 在Java中,到底什麼是靜態變數呢
答:在程序開發時,我們經常希望一個變數和方法不隨對象的改變而改變,甚至在沒有創建對象時也能訪問數據和方法,這時就可以在數據和方法上加上Static關鍵字,被Static修飾的數據就叫做靜態變數(數據)而方法就叫靜態方法。靜態變數在內存中的地址是相同的,所以對於同一類的不同對象,它們靜態變數的值肯定是相同的。