




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、內(nèi)存分析引用傳遞,Java中的內(nèi)存,一般Java在內(nèi)存分配時會涉及到以下區(qū)域: 寄存器:我們在程序中無法控制 棧:存放基本類型的數(shù)據(jù)和對象的引用,但對象本身不存放在棧中,而是存放在堆中 堆:存放用new產(chǎn)生的對象和數(shù)組 靜態(tài)域:存放在對象中用static定義的靜態(tài)成員 常量池:存放常量,棧與堆,在函數(shù)中定義的一些基本類型的變量和對象的引用變量都在函數(shù)的棧內(nèi)存中分配。 當(dāng)在一段代碼塊定義一個變量時,Java就在棧中為這個變量分配內(nèi)存空間,當(dāng)超過變量的作用域后,Java會自動釋放掉為該變量所分配的內(nèi)存空間,該內(nèi)存空間可以立即被另作他用。 堆內(nèi)存用來存放由new創(chuàng)建的對象和數(shù)組。 在堆中分配的內(nèi)存,
2、由Java虛擬機(jī)的自動垃圾回收器來管理。 在堆中產(chǎn)生了一個數(shù)組或?qū)ο蠛?,還可以在棧中定義一個特殊的變量,讓棧中這個變量的取值等于數(shù)組或?qū)ο笤诙褍?nèi)存中的首地址,棧中的這個變量就成了數(shù)組或?qū)ο蟮囊米兞?。(引用變量就相?dāng)于是 為數(shù)組或?qū)ο笃鸬囊粋€名稱,以后就可以在程序中使用棧中的引用變量來訪問堆中的數(shù)組或?qū)ο?。?數(shù)組和對象在沒有引用變量指向它的時候,才變?yōu)槔?,不能在被使用,但?然占據(jù)內(nèi)存空間不放,在隨后的一個不確定的時間被垃圾回收器收走(釋放掉)。 實際上,棧中的變量指向堆內(nèi)存中的變量,這就是Java中的指針!,返回,內(nèi)存分析1-Person類,public class Person Str
3、ing name;/ 表示人的姓名 int age ;/ 表示人的年齡 public void tell()/ 定義說話的方法 System.out.println(姓名: + name + ,年齡: + age) ; public static void main(String args) Person per1 = null ;/ 聲明對象 Person per2 = null ;/ 聲明對象 per1 = new Person() ;/ 實例化對象 - per2 = per1 ; Person per3 = new Person() ;/ 實例化對象 - = 張三 ;
4、/ 為名字賦值 per1.age = 30 ;/ 為年齡賦值- per2.age = 100; - per1.tell() ;/ 調(diào)用方法 per2.tell() ; per3.tell() ; ,內(nèi)存分析1-Person類,棧內(nèi)存,堆內(nèi)存,Person per1 = null ;/ 聲明對象 Person per2 = null ; per1 = new Person() ;/ 實例化對象,per1,name=null age=0,per2,棧內(nèi)存,堆內(nèi)存,per1,name=null age=0,per2,per2 = per1 ; per3 = new Person() ;/ 實例化對象
5、,棧內(nèi)存,堆內(nèi)存,per1,name=“張三” age=30,per2, = 張三“ per1.age = 30 ;,棧內(nèi)存,堆內(nèi)存,per1,name=“張三” age=100,per2,per2.age = 100 ;,name=null age=0,per3,name=null age=0,per3,name=null age=0,per3,內(nèi)存分析例子2,class Demo int x = 10 ; ; public class TestDemo public static void main(String args) Demo d = new Demo() ; d
6、.x = 22 ; fun(d) ; System.out.println(d.x) ; public static void fun(Demo temp) temp.x = 55 ; ;,內(nèi)存分析例子2,棧內(nèi)存,p,堆內(nèi)存,對象,x=10,Person p = new Person,棧內(nèi)存,p,堆內(nèi)存,對象,x=22,p.x=22,棧內(nèi)存,p,堆內(nèi)存,對象,x=22,fun(Person temp),temp,棧內(nèi)存,p,堆內(nèi)存,對象,x=55,temp.x=55,temp,值傳遞與引用傳遞,值傳遞: 方法調(diào)用時,實際參數(shù)把它的值傳遞給對應(yīng)的形式參數(shù),方法執(zhí)行中形式參數(shù)值的改變不影響實際參
7、數(shù)的值。(發(fā)生改變的只是實參的備份,方法調(diào)用完畢后備份自動消失。) 引用傳遞: 也稱為傳地址。在方法執(zhí)行中,對形式參數(shù)的操作實際上就是對實際參數(shù)的操作,方法執(zhí)行中形式參數(shù)值的改變將會影響實際參數(shù)的值。 方法調(diào)用時,實際參數(shù)的引用(地址,而不是參數(shù)的值)被傳遞給方法中相對應(yīng)的形式參數(shù), 值傳遞-傳遞基本數(shù)據(jù)類型參數(shù)。 引用傳遞-引用數(shù)據(jù)類型作為參數(shù)。,舉例,public class Test public static void main(String args) Stu stu = new Stu(); System.out.println(stu.getAge(); stu.age = 20
8、; System.out.println(stu.getAge(); int b = 121; stu.fun1(b); System.out.println(b); stu.fun2(stu); System.out.println(stu.getAge(); ,public class Stu public int age=12; public void fun1(int a) a=1000; public void fun2(Stu stu) stu.age=1000; public int getAge() return age; public void setAge(int age) this.age = age; ,引用傳遞-特殊的String類,public class Demo02 public static void main(String args
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 構(gòu)建人工智能企業(yè)治理結(jié)構(gòu)中的利益相關(guān)者平衡機(jī)制
- 高職院校勞動教育課程設(shè)置與實踐路徑探索
- 產(chǎn)教融合模式在新工科人才培養(yǎng)中的意義與發(fā)展趨勢
- 2025至2030纖維水泥行業(yè)產(chǎn)業(yè)運行態(tài)勢及投資規(guī)劃深度研究報告
- 2025至2030中國人才測評行業(yè)市場發(fā)展現(xiàn)狀分析及有效策略與實施路徑評估報告
- 招聘信息定制化設(shè)計與應(yīng)用推廣合同
- 固件升級安全保障:行業(yè)現(xiàn)狀與未來趨勢分析
- 民族樂器演奏用鼓風(fēng)機(jī)的創(chuàng)新研究
- 船舶制造行業(yè)市場分析及投資策略研究報告
- 張至順給中醫(yī)講課
- 護(hù)理核心制度考試試卷(附答案)
- 尾礦工安全培訓(xùn)
- 西安高新區(qū)管委會招聘筆試真題2024
- 2025年中國工商銀行招聘筆試備考題庫(帶答案詳解)
- 研發(fā)項目工時管理制度
- 消防水池 (有限空間)作業(yè)安全告知牌及警示標(biāo)志
- 大眾文化導(dǎo)論完整版課件最全電子教案
- 原創(chuàng)領(lǐng)袖的風(fēng)采-易發(fā)久
- DB33∕642-2019 熱電聯(lián)產(chǎn)能效、能耗限額及計算方法
- 考試錄用公務(wù)員筆試監(jiān)考工作培訓(xùn)
- GM∕T 0036-2014 采用非接觸卡的門禁系統(tǒng)密碼應(yīng)用指南
評論
0/150
提交評論