4.3-全棧Java筆記:面向對象的內存分析

面向對象的內存分析

為了讓大家對于面向對象編程有更深入的了解,我們要對程序的執(zhí)行過程中庆尘,內存到底發(fā)生了什么變化驶忌,進行剖析位岔,讓大家做到“心中有數”杨刨,通過更加形象的方式理解程序的執(zhí)行方式擦剑。

老鳥建議:????????

本節(jié)是為了讓初學者更深入了解程序底層執(zhí)行情況惠勒,為了完整的體現內存分析流程纠屋,會有些新的名詞售担,比如:線程族铆、Class對象。大家暫時可以不求甚解的了解,后期學了這兩個概念再回頭來看我們這篇內存分析逝淹,肯定收獲會更大箩做。

Java虛擬機的內存可以分為三個區(qū)域:棧stack、堆heap醉蚁、方法區(qū)method area网棍。

棧的特點如下

1.??棧描述的是方法執(zhí)行的內存模型氏身。每個方法被調用都會創(chuàng)建一個棧幀(存儲局部變量、操作數如贷、方法出口等)

2.??JVM為每個線程創(chuàng)建一個棧尚猿,用于存放該線程執(zhí)行方法的信息(實際參數凿掂、局部變量等)

3.??棧屬于線程私有庄萎,不能實現線程間的共享!

4.??棧的存儲特性是“先進后出脱羡,后進先出”

5.??棧是由系統(tǒng)自動分配,速度快脓规!棧是一個連續(xù)的內存空間侨舆!

堆的特點如下

1.??堆用于存儲創(chuàng)建好的對象和數組(數組也是對象)

2.??JVM只有一個堆,被所有線程共享

3.??堆是一個不連續(xù)的內存空間臭笆,分配靈活愁铺,速度慢茂洒!

方法區(qū)(又叫靜態(tài)區(qū))特點如下

1.??JVM只有一個方法區(qū)获黔,被所有線程共享!

2.??方法區(qū)實際也是堆,只是用于存儲類赞辩、常量相關的信息辨嗽!

3.??用來存放程序中永遠是不變或唯一的內容糟需。(類信息【Class對象】洲押、靜態(tài)變量、字符串常量等)

? ?內存分析圖(4.2章節(jié)中示例2)

對象的使用及內存分析

【示例1】編寫Person

public class Person{

??? String name;

??? int age;

??? public void setAge(int age){

?????? this.age=age;

??? }

}

【示例2】創(chuàng)建Person類的對象并使用

public static void ? main(String [] args){

???????//必須使用new關鍵字創(chuàng)建對象

?????? Person person=new Person();

???????//使用對象(引用).成員變量來引用對象的成員變量

?????? person.age=24;

???????//使用對象(引用).方法(參數列表)來調用對象的方法

?????? person.setAge(23);

}

【示例3】創(chuàng)建Person類對象的提升

public static void ? main(String [] args){

??? ????//創(chuàng)建p1對象

?????? Person p1=new Person();

?????? p1.age=24;

?????? p1.name="張三";

?????? p1.show();

?????? //創(chuàng)建p2對象

?????? Person p2=new Person();

?????? p2.age=35;

?????? p2.name="李四";

?????? p2.show();

}

示例3?運行效果圖

?示例3?內存分析圖


內存分析圖可以得出如下結論:

??同一類的每個對象有不同的成員變量存儲空間回怜。

??·?同一類的每個對象共享該類的方法翔试。




「全棧Java筆記」是一部能幫大家從零到一成長為全棧Java工程師系列筆記。筆者江湖人稱 Mr. G,10年Java研發(fā)經驗怔球,曾在神州數碼竟坛、航天院某所研發(fā)中心從事軟件設計及研發(fā)工作,從小白逐漸做到工程師崭歧、高級工程師、架構師普泡。精通Java平臺軟件開發(fā)歧匈,精通JAVAEE,熟悉各種流行開發(fā)框架。


筆記包含從淺入深的六大部分:

A-Java入門階段

B-數據庫從入門到精通

C-手刃移動前端和Web前端

D-J2EE從了解到實戰(zhàn)

E-Java高級框架精解

F-Linux和Hadoop?

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市超棺,隨后出現的幾起案子棠绘,更是在濱河造成了極大的恐慌氧苍,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,692評論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現場離奇詭異麸俘,居然都是意外死亡,警方通過查閱死者的電腦和手機拜效,發(fā)現死者居然都...
    沈念sama閱讀 92,482評論 3 392
  • 文/潘曉璐 我一進店門昌渤,熙熙樓的掌柜王于貴愁眉苦臉地迎上來膀息,“玉大人甸赃,你說我怎么就攤上這事络断○埃” “怎么了妓羊?”我有些...
    開封第一講書人閱讀 162,995評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長裕循。 經常有香客問我,道長硅则,這世上最難降的妖魔是什么株婴? 我笑而不...
    開封第一講書人閱讀 58,223評論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮大审,結果婚禮上座哩,老公的妹妹穿的比我還像新娘。我一直安慰自己根穷,他們只是感情好,可當我...
    茶點故事閱讀 67,245評論 6 388
  • 文/花漫 我一把揭開白布圈澈。 她就那樣靜靜地躺著尘惧,像睡著了一般谅将。 火紅的嫁衣襯著肌膚如雪似踱。 梳的紋絲不亂的頭發(fā)上酵熙,一...
    開封第一講書人閱讀 51,208評論 1 299
  • 那天,我揣著相機與錄音,去河邊找鬼譬猫。 笑死肌索,一個胖子當著我的面吹牛站宗,可吹牛的內容都是我干的蒸其。 我是一名探鬼主播靠汁,決...
    沈念sama閱讀 40,091評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼澳叉,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了碌燕?” 一聲冷哼從身側響起慈鸠,我...
    開封第一講書人閱讀 38,929評論 0 274
  • 序言:老撾萬榮一對情侶失蹤督笆,失蹤者是張志新(化名)和其女友劉穎料扰,沒想到半個月后桐智,有當地人在樹林里發(fā)現了一具尸體,經...
    沈念sama閱讀 45,346評論 1 311
  • 正文 獨居荒郊野嶺守林人離奇死亡氮块,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,570評論 2 333
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片融蹂。...
    茶點故事閱讀 39,739評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡届良,死狀恐怖慢显,靈堂內的尸體忽然破棺而出应狱,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 35,437評論 5 344
  • 正文 年R本政府宣布,位于F島的核電站赁温,受9級特大地震影響,放射性物質發(fā)生泄漏内狗。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,037評論 3 326
  • 文/蒙蒙 一妙真、第九天 我趴在偏房一處隱蔽的房頂上張望薄料。 院中可真熱鬧获列,春花似錦、人聲如沸又跛。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,677評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽揍庄。三九已至东抹,卻和暖如春寞蚌,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背艘刚。 一陣腳步聲響...
    開封第一講書人閱讀 32,833評論 1 269
  • 我被黑心中介騙來泰國打工炸庞, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留纸颜,地道東北人浊洞。 一個月前我還...
    沈念sama閱讀 47,760評論 2 369
  • 正文 我出身青樓,卻偏偏與公主長得像峡懈,于是被迫代替她去往敵國和親与斤。 傳聞我的和親對象是個殘疾皇子荚恶,可洞房花燭夜當晚...
    茶點故事閱讀 44,647評論 2 354

推薦閱讀更多精彩內容

  • 1. Java基礎部分 基礎部分的順序:基本語法梅鹦,類相關的語法,內部類的語法嗤栓,繼承相關的語法箍邮,異常的語法茉帅,線程的語...
    子非魚_t_閱讀 31,624評論 18 399
  • (一)Java部分 1堪澎、列舉出JAVA中6個比較常用的包【天威誠信面試題】 【參考答案】 java.lang;ja...
    獨云閱讀 7,101評論 0 62
  • Java8張圖 11味滞、字符串不變性 12、equals()方法剑鞍、hashCode()方法的區(qū)別 13、...
    Miley_MOJIE閱讀 3,701評論 0 11
  • 剛開始踏入憧憬的大學之前便脊,想著自己在大學里要好好學習光戈,拿獎學金;做兼職為家里減輕負擔久妆;好好談一場轟轟烈烈的戀愛,心...
    樂遠心閱讀 471評論 0 0
  • 這里介紹這幅圖指中的js文件 這里主要是拿來做一個導入路徑時可以找到絕對路徑肋演,所以這里做一個別名奸笤,首先要兩步: 一...
    zero風來閱讀 669評論 0 0