1、局部變量:
局部變量的定義:定義在方法中的變量都是局部變量(main方法也是方法,所以定義在main方法中的變量也是局部變量)。
生存時間:局部變量的生存時間和方法的生存時間一致,調用該方法聲明該局部變量并初始化的時,該局部變量被創建并分配內存空間;直到該方法調用結束局部變量也就結束了;
是否需要初始化:局部變量在使用前必須進行初始化,系統默認不會對局部變量進行初始化數據操作,如果局部變量在使用前沒有進行初始化則會在編譯器報錯;如果局部變量進行了聲明沒有進行初始化, 但是也一直沒有被使用的話編譯也是不會報錯的;(局部變量使用前必須初始化話)
創建位置: 局部變量是創建在棧內存中的;
2、全局變量:
2.1 非靜態全局變量:
非靜態全局變量的定義:非靜態全局變量都是定在類中,是類的成員變量或者說是成員屬性屬于類的一部分(或 者說是對象的一部分);
生存時間:非靜態全局變量加載在堆內存中,隨著聲明初始化而創建,隨著對象消亡而消亡;
是否需要初始化:全局變量都是不需要被強制初始化的,系統都會默認根據其數據類型進行默認賦值;但是建議 在聲明時都進行初始化操作;
創建位置:創建在堆內存中,因為非靜態的全局變量數對象的成員變量是對象的一部分;
2.2靜態全局變量:
靜態全局變量的定義:靜態的類成員變量;
生存時間:靜態全局變量隨著類的字節碼文件加載而加載產生,隨著字節碼文件的消失而消失,生存時間比類的 對象還要長;
是否初始化:凡是全局變量都是可以不要初始化的,靜態變量也是一樣,系統會自動根據其數據類型進行賦默認值,但是建議變量在聲明時都進行初始化;
創建位置:靜態變量時存在于對內存中的,所以靜態全局變量也是存在于堆內存中的。
總結
以上就是本文對于java中的局部變量和全局變量的全部介紹,希望對大家有所幫助。
原文鏈接:https://www.2cto.com/kf/201612/575496.html