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