本文目錄一覽:
- 1、昆明Java培訓:為什麼Java中的局部變量必須要初始化?
- 2、JAVA中局部變量和成員變量的區別
- 3、在Java中,為什麼類變量不能是局部變量?
- 4、java什麼是成員變量和局部變量
- 5、Java中什麼是局部變量,什麼是類變量,怎麼用this
- 6、什麼是java的局部變量、成員變量和全局變量?
昆明Java培訓:為什麼Java中的局部變量必須要初始化?
現在假如你是java語言的開發者,你已經將對象保存在了堆內存中,而將局部變量保存在了棧內存中,你會怎麼做呢?Java中的變量分為類變量,成員變量和局部變量,分別位於JVM的方法區、堆內存和棧內存中。
類變量和成員變量都可以在類首次加載和類初始化時,給出默認值,但是局部變量就必須要在使用前賦值。
實際上,Java完全可以設計成局部變量不需要初始化,只要作者們高興。
事實上,就有這樣的語言,比如C++。
當然,C++不強制必須初始化,不代表就不用初始化,實際上,C++開發者也都是建議對局部變量初始化,以防止出現野指針這類事情。
其實,不管是局部變量還是成員變量,都是必須要初始化的,那為什麼成員變量會自動初始化?其實正是因為成員變量屬於對象,而對象是保存在堆中的,所以jvm就在初始化類的時候把成員變量初始化呢,而如果我們在調用方法的時候,還要jvm去將局部變量也進行初始化,是不是對會影響到性能呢?因此,直接強制局部變量必須要初始化反而更好。
JAVA中局部變量和成員變量的區別
根據定義變量位置的不同,可以將變量分為成員變量和局部變量
成員變量是在類範圍內定義的變量
局部變量是在一個方法內定義的變量
成員變量可以分為:
實例屬性 (不用static修飾):隨着實例屬性的存在而存在
類屬性 (static修飾):隨着類的存在而存在
成員變量無需顯式初始化,系統會自動對其進行默認初始化
局部變量可分為:
形參(形式參數): 在整個方法內有效
方法局部變量 (方法內定義):從定義這個變量開始到方法結束這一段時間內有效
代碼塊局部變量 (代碼塊內定義):從定義這個變量開始到代碼塊結束這一段時間內有效
局部變量除了形參外,都必須顯示初始化,也就是要指定一個初始值,否則不能訪問。
還有,在內存中的位置也不一樣。成員變量在所在類被實例化後,存在堆內存中;局部變量在所在方法調用時,存在棧內存空間中。
在Java中,為什麼類變量不能是局部變量?
Java中類可以是局部變量。
以下是局部變量的定義:
指在程序中,只在特定過程或函數中可以訪問的變量,是相對與全局變量而言的。全局變量也稱外部變量,是在函數外部定義的,作用域為從變量定義處開始,到本程序文件的末尾。全局變量全部存放在靜態存儲區,在程序開始執行時給全局變量分配存儲區,程序行完畢就釋放。由於Java是面向對象語言,所有變量都是類成員,所以Java只有局部變量,沒有全局變量。同樣地,在C++、C#、Ruby這些面向對象語言中,一般也只使用局部變量。面向對象編程是現在普遍採用的軟件開發方法,因此現在已無需考慮是局部還是全局變量,說到變量,往往都是局部變量。
java什麼是成員變量和局部變量
本文介紹成員變量和局部變量的區別
1、成員變量是獨立於方法外的變量,局部變量是類的方法中的變量
1)、成員變量:包括實例變量和類變量,用static修飾的是類變量,不用static修飾的是實例變量,所有類的成員變量可以通過this來引用。
2)、局部變量:包括形參,方法局部變量,代碼塊局部變量,存在於方法的參數列表和方法定義中以及代碼塊中。
2、成員變量可以被public,protect,private,static等修飾符修飾,而局部變量不能被控制修飾符及 static修飾;兩者都可以定義成final型。
3、成員變量存儲在堆,局部變量存儲在棧。局部變量的作用域僅限於定義它的方法,在該方法的外部無法訪問它。成員變量的作用域在整個類內部都是可見的,所有成員方法都可以使用它。如果訪問權限允許,還可以在類的外部使用成員變量。
4、局部變量的生存周期與方法的執行期相同。當方法執行到定義局部變量的語句時,局部變量被創建;執行到它所在的作用域的最後一條語句時,局部變量被銷毀。類的成員變量,如果是實例成員變量,它和對象的生存期相同。而靜態成員變量的生存期是整個程序運行期。
5、成員變量在累加載或實例被創建時,系統自動分配內存空間,並在分配空間後自動為成員變量指定初始化值,初始化值為默認值,基本類型的默認值為0,複合類型的默認值為null。(被final修飾且沒有static的必須顯式賦值),局部變量在定義後必須經過顯式初始化後才能使用,系統不會為局部變量執行初始化。
6、局部變量可以和成員變量 同名,且在使用時,局部變量具有更高的優先級,直接使用同名訪問,訪問的是局部變量,如需要訪問成員變量可以用this.變量名訪問
頂
Java中什麼是局部變量,什麼是類變量,怎麼用this
局部變量是相對於全局而言的。
類變量應該就是類的成員變量吧,也可以說是類的屬性。
成員變量相對於,類的方法里的局部變量而言就是相當於是全局變量的。
this就是當前這個類,你可以this.成員變量在方法中使用這個“全局變量”當然是this.也是可以省略的,如果變量同名,可以加this.來區分。
什麼是java的局部變量、成員變量和全局變量?
1、局部變量:在方法內定義的變量稱為“局部變量”或“臨時變量”,方法結束後局部變量佔用的內存將被釋放。
2、成員變量:在類體的變量部分中定義的變量,也稱為字段。
3、全局變量:全局變量,又稱“外部變量”,它不是屬於哪個方法,作用域從定義的地址開始到源文件結束。
4、局部變量和成員變量主要是他們作用域的區別:
成員變量個是類內部;局部變量是定義其的方法體內部(或者方法體內部的某一程序塊內——大括號,主要看定義的位置)。
成員變量可以不顯式初始化,它們可以由系統設定默認值;局部變量沒有默認值,所以必須設定初始賦值。
在內存中的位置也不一樣。成員變量在所在類被實例化後,存在堆內存中;局部變量在所在方法調用時,存在棧內存空間中。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/271320.html