Java中全局變量和局部變量詳解(看這篇就夠了)
在Java中,全局變量和局部變量是兩種不同作用域的變量。
全局變量(成員變量):
public class Example { int globalInt; // 全局變量,默認(rèn)為0 String globalString; // 全局變量,默認(rèn)為null static int staticGlobalInt; // 靜態(tài)全局變量,默認(rèn)為0 public void method() { System.out.println(globalInt); // 可以在類(lèi)中的任何地方使用 } public static void main(String[] args) { System.out.println(staticGlobalInt); // 靜態(tài)全局變量也可以在靜態(tài)方法中使用 } }
在類(lèi)中定義的變量稱(chēng)為成員變量,也叫全局變量。它們的作用域是整個(gè)類(lèi),在類(lèi)的任何地方都可以被訪問(wèn)。
如果沒(méi)有顯式地初始化,它們會(huì)有默認(rèn)值。
全局變量可以是基本數(shù)據(jù)類(lèi)型(如int、double等)或引用類(lèi)型(如對(duì)象、數(shù)組等)。
全局變量存在于堆內(nèi)存中
局部變量:
public class Example { public void method() { int localVar = 10; // 局部變量,必須顯式初始化 System.out.println(localVar); // 可以在方法內(nèi)部使用 } }
在方法、代碼塊或構(gòu)造方法內(nèi)部定義的變量稱(chēng)為局部變量。
它們的作用域僅限于所在的方法、代碼塊或構(gòu)造方法內(nèi)部。
局部變量必須顯式初始化才能使用。
局部變量是創(chuàng)建在棧內(nèi)存中的
附:JAVA中全局變量和局部變量的區(qū)別
JAVA中全局變量和局部變量的區(qū)別如下:
1.作用域不同:
全局變量在整個(gè)類(lèi)中都可以被訪問(wèn),而局部變量只在它們被聲明的方法或代碼塊中有效。
2.生命周期不同:
全局變量在類(lèi)被加載時(shí)創(chuàng)建,一直存在于內(nèi)存中,直到程序退出或?qū)ο蟊讳N(xiāo)毀。而局部變量在方法或代碼塊被執(zhí)行時(shí)創(chuàng)建,當(dāng)方法或代碼塊執(zhí)行完畢后會(huì)被自動(dòng)銷(xiāo)毀。
3.初始值不同:
全局變量在聲明時(shí)可以賦初值,否則會(huì)被默認(rèn)初始化。而局部變量沒(méi)有默認(rèn)值,必須在使用前進(jìn)行賦值。
4.訪問(wèn)權(quán)限不同:
全局變量可以被類(lèi)中的所有方法訪問(wèn),而局部變量只能在其所在的方法或代碼塊中被訪問(wèn)。
因此,全局變量和局部變量的主要區(qū)別在于它們的作用域、生命周期、初始值和訪問(wèn)權(quán)限。
總結(jié):
- 全局變量作用域是整個(gè)類(lèi),可以在類(lèi)的任何地方使用。
- 局部變量作用域限定在方法、代碼塊或構(gòu)造方法內(nèi)部,必須顯式初始化后才能使用。
相關(guān)文章
java實(shí)現(xiàn)emqx設(shè)備上下線(xiàn)監(jiān)聽(tīng)詳解
這篇文章主要為大家介紹了java實(shí)現(xiàn)emqx設(shè)備上下線(xiàn)監(jiān)聽(tīng)詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-07-07通過(guò)實(shí)例講解springboot整合WebSocket
這篇文章主要介紹了通過(guò)實(shí)例講解springboot整合WebSocket,WebSocket為游覽器和服務(wù)器提供了雙工異步通信的功能,即游覽器可以向服務(wù)器發(fā)送消息,服務(wù)器也可以向游覽器發(fā)送消息。,需要的朋友可以參考下2019-06-06詳解java實(shí)現(xiàn)HTTP請(qǐng)求的三種方式
這篇文章主要介紹了java實(shí)現(xiàn)HTTP請(qǐng)求的三種方式,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-04-04原生java代碼實(shí)現(xiàn)碼云第三方驗(yàn)證登錄的示例代碼
這篇文章主要介紹了原生java代碼實(shí)現(xiàn)碼云第三方驗(yàn)證登錄的示例代碼,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-04-04Java出現(xiàn)中文亂碼問(wèn)題分析及解決方案
在Java開(kāi)發(fā)中,處理中文亂碼是一個(gè)常見(jiàn)的問(wèn)題,由于字符集和編碼的復(fù)雜性,開(kāi)發(fā)者可能面臨各種導(dǎo)致亂碼的情況,正確地處理中文字符集對(duì)于確保應(yīng)用程序的可靠性和國(guó)際化至關(guān)重要,本文給大家介紹了Java中文亂碼分析及解決方案,需要的朋友可以參考下2024-02-02@ConfigurationProperties加載外部配置方式
這篇文章主要介紹了@ConfigurationProperties加載外部配置方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-03-03