摘要:局部變量定義在方法中的變量。初始值成員變量它存儲在堆中,如果沒有賦初值,它有默認(rèn)值整數(shù)局部變量要想使用必須手動初始化注意事項局部變量名稱可以和成員變量名稱一樣,在方法中使用的時候,采用的是就近原則。
聲明:本文首發(fā)于我的個人微信公眾號【Java編程社區(qū)】,查看更多文章與學(xué)習(xí)資源請移步我的公眾號Java編程社區(qū)
成員變量:定義在類中的變量。
局部變量:定義在方法中的變量。
成員變量在整個類中有效
局部變量只在其聲明的方法中有效
2、生命周期成員變量:它屬于對象,它隨著對象的創(chuàng)建而創(chuàng)建,隨著對象的消失而消失
局部變量:使用完馬上釋放空間
看段代碼
void show(int id){ for (int i = 0; i < 10; i++) { for (int j = 0; j < 10; j++) { System.out.println(id); } } }
這里的id,i,j都是在方法內(nèi)聲明的,因此都是局部變量
id在show方法被調(diào)用時它的生命周期開始,方法結(jié)束時id消失
j當(dāng)里層for循環(huán)執(zhí)行時生命周期開始,當(dāng)里層for結(jié)束,j消失
3、存儲位置成員變量屬于對象,它存儲在堆內(nèi),堆內(nèi)的實體,當(dāng)沒有引用指向其時,才被垃圾回收處理。
局部變量存在于棧內(nèi)存中,當(dāng)不在使用時,馬上就會被釋放。
4、初始值成員變量它存儲在堆中,如果沒有賦初值,它有默認(rèn)值
整數(shù)byte,short,int,long = 0
char = "u0000"
boolean = false
String = null
float,double = 0.0
局部變量要想使用必須手動初始化
注意事項:
局部變量名稱可以和成員變量名稱一樣,在方法中使用的時候,采用的是就近原則。
內(nèi)存分析class Car { //汽車應(yīng)該具備的屬性 String color; //汽車具備的顏色 int num; //汽車跑的行為 public void run(){ System.out.println(color + "的車,輪胎數(shù): " + num + "個,跑起來了"); } } public class CarDemo { public static void main(String[] args) { //創(chuàng)建實體 Car car = new Car(); car.color = "red"; car.num = 4; //指揮車運(yùn)行,調(diào)用格式:對象.對象成員 car.run(); } }
這里car其實是對象的引用,它存儲的是一地址,這個地址指向了堆里的一塊內(nèi)存。這里的color和num都是成員變量,null和0是它們的默認(rèn)值,"red"和4是賦給它們的初始值。
最后再來看個例子
class Variable { int a; //成員變量a,默認(rèn)值是0 public void test() { int b = 20;//局部變量b,沒有默認(rèn)值,需要初始化 System.out.println(b);//20 int a = 50;//局部變量a,和成員變量a的名稱相同 System.out.println(a);//50 } } class VariableDemo { public static void main(String[] args) { Variable variable = new Variable(); System.out.println(variable.a); //0,variable.a訪問成員變量 variable.test();//調(diào)用成員方法 } }
代碼執(zhí)行結(jié)果:
今天就分享到這,后續(xù)會繼續(xù)分享,敬請期待!
聲明:本文首發(fā)于我的個人微信公眾號【Java編程社區(qū)】,查看更多文章與學(xué)習(xí)資源請移步我的公眾號Java編程社區(qū)
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/76952.html
摘要:是完全面向?qū)ο蟮恼Z言,對象具有狀態(tài)行為和標(biāo)識。類一一是具有共同特征和行為的一類事物的統(tǒng)稱。受保護(hù)的,對同一包內(nèi)的類和所有子類可見。一種通用的內(nèi)存池,用于存放所有對象。類級變量又稱全局級變量或靜態(tài)變量,需要使用關(guān)鍵字修飾。 java語言的基本特點 java語言是面向?qū)ο蟮母呒壋绦蛟O(shè)計語言,它是編譯型的語言,Java語言不使用指針,并提供了自動的垃圾回收機(jī)制,使得程序員不必為內(nèi)存管理而擔(dān)...
摘要:共享數(shù)據(jù)使線程之間的通信比進(jìn)程之間的通信更有效。并發(fā)模型和的區(qū)別說明的作用是啟動一個新線程操作系統(tǒng)級別,有一個方法啟動新線程,新線程會執(zhí)行相應(yīng)的方法。單獨調(diào)用會在當(dāng)前線程中執(zhí)行并不會啟動新線程創(chuàng)建一個線程即可但是這個線程沒有執(zhí)行任何代碼段。 tutorials site 并發(fā)Concurrency發(fā)展的歷史 單CPU,一次只能運(yùn)行一個程序 -- 多任務(wù),一次同時運(yùn)行多個任...
摘要:結(jié)構(gòu)體也可以包含結(jié)構(gòu)體,就像內(nèi)部類訪問結(jié)構(gòu)的屬性和一樣。。我覺得這個需要學(xué)下數(shù)據(jù)結(jié)構(gòu)才能更好理解給數(shù)據(jù)類型起一個新名字則可以通過對于結(jié)構(gòu)體我可以這樣再通過變量名就可以簡便的聲明結(jié)構(gòu)體變量。文件暫時過了一遍預(yù)處理器頭文件就是擴(kuò)展名為的文件。 ...
摘要:但遠(yuǎn)不止如此,內(nèi)部類了解外部類,并能與之通信。內(nèi)部類還擁有其外圍類的所有元素的訪問權(quán)。普通內(nèi)部類內(nèi)不能有域和方法。特點普通內(nèi)部類對象隱式的保存了外部類對象,但嵌套類并非如此。局部內(nèi)部類可以訪問當(dāng)前代碼塊內(nèi)的常量,以及此外圍類的成員。 點擊進(jìn)入我的博客 可以把一個類的定義放在另一個類的定義內(nèi)部,這就是內(nèi)部類。Java最晦澀的部分之一。內(nèi)部類看起來就像是一種代碼隱藏機(jī)制,將類只與其他類的...
摘要:類的成員方法類的成員方法的定義中的使用之靜態(tài)變量我們可以基于一個類創(chuàng)建多個該類的對象,每個對象都擁有自己的成員,互相獨立。靜態(tài)初始化塊只在類加載時執(zhí)行,且只會執(zhí)行一次,同時靜態(tài)初始化塊只能給靜態(tài)變量賦值,不能初始化普通的成員變量。 java類的學(xué)習(xí) 先上一個代碼 package bankCard; import java.util.Scanner; // 銀行卡類 public cl...
閱讀 1844·2021-09-22 15:55
閱讀 3534·2021-09-07 10:26
閱讀 642·2019-08-30 15:54
閱讀 697·2019-08-29 16:34
閱讀 849·2019-08-26 14:04
閱讀 3272·2019-08-26 11:47
閱讀 2144·2019-08-26 11:33
閱讀 2303·2019-08-23 15:17