本文目錄一覽:
- 1、java中靜態變量的默認值是0?
- 2、java中一個類中的靜態變量有什麼用
- 3、java動態變量和靜態變量有什麼聯繫
- 4、java中成員變量和靜態變量的區別是什麼
- 5、java靜態變量的與實例變量的區別
- 6、在Java中,到底什麼是靜態變量呢?
java中靜態變量的默認值是0?
1、首先局部變量在類體中,一般是最先定義的,而局部變量是在方法或各種其他語句中,
2、而方法可以同時調用成員變量和局部變量。這裡以方法F()為例。
3、如果方法中的局部變量的名字和成員變量的名字相同,那麼方法就會隱藏成員變量,在方法進行操作時採用局部變量。
4、而如果想使用隱藏的成員變量值,那麼只需添加this.成員變量即可實現其值調用。
5、局部變量沒有默認值。如果在使用局部變量時不為其賦值,那麼在編譯的時候就會出現錯誤,這是因為方法在使用局部變量時不會為其賦初值,而相反,成員變量如果沒有賦值,系統會為其自動設定默認值0。
java中一個類中的靜態變量有什麼用
靜態變量有什麼用,那就把和成員變量的區別告訴你。
靜態變量用static修飾:附屬於類
而成員變量是附屬於對象的。
具體反應在 每個對象有各自的成員變量,但是他們共享靜態變量。所以靜態變量相當於是大家的共有資源。
再調用方法上。靜態變量可以通過類名或者對象名訪問,而成員變量只能通過對象名。
因為靜態變量是類編譯完成後就分配了內存空間,所以不用創建對象也可以訪問。
而成員變量必須在構造對象以後才會分配內存空間,只能通過對象名訪問。
java動態變量和靜態變量有什麼聯繫
java成員變量和靜態變量的區別:
1,成員變量所屬於對象。所以也稱為實例變量。
靜態變量所屬於類。所以也稱為類變量。
2,成員變量存在於堆內存中。
靜態變量存在於方法區中。
3,成員變量隨着對象創建而存在。隨着對象被回收而消失。
靜態變量隨着類的加載而存在。隨着類的消失而消失。
4,成員變量只能被對象所調用
。
靜態變量可以被對象調用,也可以被類名調用。
所以,成員變量可以稱為對象的特有數據,靜態變量稱為對象的共享數據。
java中成員變量和靜態變量的區別是什麼
靜態變量存在於方法區中,成員變量存在於堆內存中,成員變量所屬於對象JAVA成員變量和靜態變量的區別,成員變量隨着對象創建而存在。隨着對象被回收而消失。靜態變量隨着類的加載而存在。
靜態變量是屬於靜態存儲方式,但是屬於靜態存儲方式的量不一定就是靜態變量,例如外部變量雖屬於靜態存儲方式,但不一定是靜態變量,必須由static加以定義後才能成為靜態外部變量,或稱靜態全局變量。
對於自動變量,它屬於動態存儲方式。但是也可以用static定義它為靜態自動變量,或稱靜態局部變量,從而成為靜態存儲方式。由此看來,一個變量可由static進行再說明,並改變其原有的存儲方式。
而在以Pascal為代表的許多程序語言中,所有局部變量都由系統自動分配存儲空間,而所有全局變量的存儲空間則以靜態分配的方式獲取,因此由於實際上“局部變量”和“全局變量”這兩個術語已足以涵蓋所有的情況,在這些程序語言中通常不使用“靜態變量”這一術語,而直接以“全局變量”代之。
在這些程序語言中,靜態變量就是全局變量,而即使在有明確區分全局和靜態變量的程序語言中,在編譯後的代碼里二者也以相同的方式獲取存儲空間。而今術語“靜態變量”的概念則主要基於C族語言的“static”的定義。
靜態變量也可以用於存儲常數。具體來說,靜態變量可用const,constant或final等關鍵字標識,這時其值就會在編譯時設定,並且無法在運行時改變。編譯器通常將靜態常量與文本一起置於目標文件的文本區域,而非常量初始化數據則置於數據區。
java靜態變量的與實例變量的區別
java類的成員變量有倆種:一種是被static關鍵字修飾的變量,叫類變量或者靜態變量;另一種沒有static修飾,為實例變量。
1、在語法定義上的區別:
靜態變量前要加static關鍵字,而實例變量前則不加。
2、在程序運行時的區別:
實例變量屬於某個對象的屬性,必須創建了實例對象,其中的實例變量才會被分配空間,才能使用這個實例變量。靜態變量不屬於某個實例對象,而是屬於類,所以也稱為類變量,只要程序加載了類的字節碼,不用創建任何實例對象,靜態變量就會被分配空間,靜態變量就可以被使用了。總之,實例變量必須創建對象後才可以通過這個對象來使用,靜態變量則可以直接使用類名來引用。
舉例說明:
對於下面的程序,無論創建多少個實例對象,永遠都只分配了一個staticVar變量,並且每創建一個實例對象,這個staticVar 就會加1;但是,每創建一個實例對象,就會分配一個instanceVar,即可能分配多個instanceVar,並且每個instanceVar的值都只自加了1次。
類的靜態變量在內存中只有一個,java虛擬機在加載類的過程中為靜態變量分配內存,靜態變量位於方法區,被類的所有實例共享。靜態變量可以直接通過類名進行訪問,其生命周期取決於類的生命周期。
而實例變量取決於類的實例。每創建一個實例,java虛擬機就會為實例變量分配一次內存,實例變量位於堆區中,其生命周期取決於實例的生命周期。
結果為:
1
0 (成員變量具有缺省值 而局部變量則沒有)
把代碼改為:
結果則為:
1
在Java中,到底什麼是靜態變量呢?
答:在程序開發時,我們經常希望一個變量和方法不隨對象的改變而改變,甚至在沒有創建對象時也能訪問數據和方法,這時就可以在數據和方法上加上Static關鍵字,被Static修飾的數據就叫做靜態變量(數據)而方法就叫靜態方法。靜態變量在內存中的地址是相同的,所以對於同一類的不同對象,它們靜態變量的值肯定是相同的。
原創文章,作者:ACWV,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/139899.html