堆棧 jvm 太難懂?買房子總能理解了吧

jvm

java零基礎入門-面向對象篇(一) 基礎類型和引用類型

友情提示:本章開始可能會有部分較深入的內容买决,不說又不行,說了又很難解釋清楚吼畏,因為里面的技術細節(jié)實在太多太復雜督赤,所以我會屏蔽部分技術細節(jié),只展示當前需要了解的基礎知識泻蚊,避免出現講了半天還是沒人懂的情況躲舌。隨著我們的知識增長,后面會逐步的將細節(jié)補充完整性雄。

學習編程没卸,一定要把思路放開枯冈,不能太局限,多多進行思維能力的鍛煉才能提高自己的內功办悟。比如我們很常見的買房啊尘奏,哪里修商場啊,其實跟我們的內存結構是很類似的病蛉。他們都涉及到一個資源規(guī)劃的問題炫加,來吧,一起來鍛煉下思維能力吧铺然。

最近全國除了最火的搶人大戰(zhàn)俗孝,其實前段時間還有一個東西很火,那就是城市規(guī)劃魄健。比如我們的首都北京赋铝,選擇了雄安進行首都功能疏解,其實很多城市都有類似的規(guī)劃沽瘦,比如天津濱海新區(qū)革骨,深圳前海新區(qū)等等。政府設立了一個即將開發(fā)的新區(qū)后析恋,會干嘛良哲?招商引資,首先是大的企業(yè)進來修路蓋高樓大廈助隧,然后修住宅筑凫,再賣給老百姓。我們來看看具體過程并村。

首先巍实,政府畫了一個圈,“走過路過不要錯過哈哩牍,新鮮出爐的地塊棚潦,各種優(yōu)惠政策,減稅減稅再減稅姐叁,快來看看啊~”瓦盛,然后一堆大企業(yè)蜂擁而上,“給我留一塊~”外潜,“我也要~”原环。然后各種大企業(yè)開始修辦公樓啊,房地產開發(fā)商開始修海景房啊处窥,然后輪到地產開發(fā)商要喝了嘱吗,“走過路過不要錯過啊,海景房值得擁有,機不可失谒麦,搶到了幸福生活俄讹,沒搶到繼續(xù)干活~”。然后輪到搶房大軍蜂擁而上了绕德。


給我房;继拧!耻蛇!

再來看看電腦內存踪蹬,其實我們的電腦就是政府部門,每一次一開機臣咖,就開始要喝跃捣,“內存開始大派送啦,需要的快來領啊”夺蛇,然后各種開機啟動的應用程序開始搶內存疚漆,什么聊天的啊,殺毒的啊刁赦,瀏覽器啊娶聘,當然還有系統(tǒng)自帶的功能,統(tǒng)統(tǒng)需要內存截型。當然趴荸,內存不是一開機就分完了的,還有很多是我們啟動了新的應用程序才會劃分內存給你宦焦,比如我們的java。


應用程序和系統(tǒng)程序占用內存

電腦開機進行的內存免費大派送跟我們的政府規(guī)劃很像顿涣,在座的各位都是大佬波闹,內存要多少有多少。然后我們打開java的時候涛碑,java也成功的分到了一塊內存空間精堕。java這個房地產商跟別的有點區(qū)別,他很牛蒲障,拿的地很大歹篓,他要自己規(guī)劃自己的地,也就是說它不僅僅要做房地產揉阎,他還要修商場庄撮,建公園,這個就厲害了~


java虛擬機

看見沒有毙籽,系統(tǒng)給了一塊內存java 洞斯,然后他在自己的一畝三分地上,開始干自己的規(guī)劃了坑赡,這是個很高級的房產開發(fā)商烙如。java有個名詞叫java虛擬機(JVM)么抗,你就可以理解為他是一個虛擬的系統(tǒng),他干了很多和系統(tǒng)類似的活亚铁,系統(tǒng)把內存交給java以后蝇刀,就由 jvm 來負責規(guī)劃內存。就像我們上面說的徘溢,政府部門劃了地給開發(fā)商熊泵,java自己也劃地分給他下面的小弟。那么java里面的小弟又是啥甸昏?繼續(xù)往下看

首先我們看看普通人眼里的內存顽分,他就是一塊綠色的板子,上面有很多電路施蜜,下面有一條金光閃閃的東西卒蘸,好了,理解完了翻默。

普通人看內存

再來看看硬件工程師眼里的內存缸沃,他就是各種電路啊,電容啊修械,門啊之類的東西趾牧,其實我也不是很懂,大概是這樣肯污。

硬件工程師看內存

接下來看軟件工程師眼里的內存翘单,這個圖是指分給java的內存,也就是jvm管理的內存蹦渣。我們只看java這個開發(fā)商哄芜,自己已經分到的內存,其他軟件柬唯,系統(tǒng)占用的內存我們不去管他认臊。我們看到 jvm 劃分的內存大概有以下這么幾個區(qū)域:本地方法棧虛擬機棧锄奢,程序計數器失晴,方法區(qū)拘央,這些就是 java 自己的小弟了涂屁。

jvm內存

我們看看這些顏色是咋回事,和上面的規(guī)劃圖顏色說明差不多堪滨,紅色的是 胯陋,可以理解成商業(yè)用地,綠色的是方法區(qū),可以理解成公園遏乔,這兩個區(qū)域的特點是义矛,他們是公共用地,不管哪個小區(qū)的居民盟萨,都可以來壓壓馬路凉翻,看看風景。再看上面的捻激,本地方法棧程序計數器是灰色制轰,你可以理解為市政設施,每個片區(qū)都有警察局胞谭,有困難找警察叔叔垃杖,我們姑且不去管他,知道就行了丈屹。主要看看 虛擬機棧调俘,這個下面簡稱為,這個很重要旺垒。我們可以理解成居民小區(qū)彩库,每個人只能出入自己的小區(qū),去別人小區(qū)可不行先蒋,保安不讓進骇钦。

所以總結一下,堆和方法區(qū)是公共的竞漾,每個小區(qū)的居民都可以去玩眯搭,而棧是私有的,不能隨便串門的畴蹭。這個理解到這里就行了坦仍。接下來我們講講最重要的 ,方法區(qū)就是個大草地叨襟,暫時不用管他。

基礎類型 和 引用類型

我們首先明確一個觀念幔荒,我們的數據都是存在內存里的糊闽,但是不同的數據,在內存中存放的區(qū)域是不同的爹梁。有的數據存放在棧右犹,有的數據存放在堆。具體誰放在哪姚垃,我們首先要明確數據的類型念链。

基礎類型(又叫值類型):我前面講的都是基礎類型,byte,short掂墓,int谦纱,long,float君编,double跨嘉,boolean,char吃嘿,基礎類型全部存在里面祠乃。

引用類型:數組,類兑燥,接口亮瓷,引用類型變量存在,對象存在降瞳,通過引用確定關系嘱支。

基礎類型比較好理解,創(chuàng)建的時候往棧里面一丟力崇,搞定斗塘,打完收工。而引用類型就比較復雜了亮靴,引用類型的變量就是引用馍盟,啥叫引用?來吧茧吊,話不多贞岭,懵的時候就上圖

內存地址

好吧,肯定有同學又要問搓侄,內存地址又是個啥瞄桨?


內存地址

地址就是找人找東西時候用的,內存地址就是讓內存劃分的空間有個標記讶踪,我通過這個標記可以找到內存芯侥。所以引用類型里面存的不是你定義給他的值,而是存的內存地址乳讥。那我定義的數組啊柱查,數組跑哪去了?它在堆里面云石,而這個棧里面存的地址就是堆里面放的那個數組的地址唉工。又懵了?圖圖圖~

地址

我們將紅色箭頭干的事汹忠,叫做:引用變量指向內存淋硝。堆里面的數據雹熬,只有當有引用變量指向它的時候,才能存在谣膳,如果沒人指向堆里面的數據了竿报,就會有一位親切的清潔工阿姨把他當垃圾處理掉。所以棧里面的變量参歹,紅色箭頭仰楚,堆里面的數據這三個東西是一體的,他們不能分開犬庇。他們在一起僧界,才是定義了一個完整的引用類型。

其實這一段對于初學者來說是有難度的臭挽,概念比較多捂襟,步驟繁瑣,圖也都是平面圖欢峰,有沒有更加通俗易懂的方式來解釋這個問題呢葬荷,來吧,本教程獨家三維圖雙手奉上纽帖。

棧是一種數據結構宠漩,他的特點就是先進后出,后進先出懊直。只有棧頂可以操作扒吁,棧底是固定的,插入操作又叫入棧室囊,刪除叫出棧雕崩。理解這么多就可以了。


棧結構


入棧


出棧


相對于棧的有序融撞,堆是無序的盼铁,可以理解成隨機劃分一塊空間來儲存對象。

堆是無序的

我們用三維圖再來看看剛才的例子

首先是基礎類型

定義變量
入棧

再來看引用類型

定義變量
開辟空間尝偎,建立引用


本篇文章為接下來的數組饶火,類打基礎,堆和棧的理解對我們更好的學面向對象很有幫助致扯,請好好理解趁窃,多多參悟。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
  • 序言:七十年代末急前,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子瀑构,更是在濱河造成了極大的恐慌裆针,老刑警劉巖刨摩,帶你破解...
    沈念sama閱讀 217,657評論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現場離奇詭異世吨,居然都是意外死亡澡刹,警方通過查閱死者的電腦和手機,發(fā)現死者居然都...
    沈念sama閱讀 92,889評論 3 394
  • 文/潘曉璐 我一進店門耘婚,熙熙樓的掌柜王于貴愁眉苦臉地迎上來罢浇,“玉大人,你說我怎么就攤上這事沐祷∪卤眨” “怎么了?”我有些...
    開封第一講書人閱讀 164,057評論 0 354
  • 文/不壞的土叔 我叫張陵赖临,是天一觀的道長胞锰。 經常有香客問我,道長兢榨,這世上最難降的妖魔是什么嗅榕? 我笑而不...
    開封第一講書人閱讀 58,509評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮吵聪,結果婚禮上凌那,老公的妹妹穿的比我還像新娘。我一直安慰自己吟逝,他們只是感情好帽蝶,可當我...
    茶點故事閱讀 67,562評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著澎办,像睡著了一般嘲碱。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上局蚀,一...
    開封第一講書人閱讀 51,443評論 1 302
  • 那天麦锯,我揣著相機與錄音,去河邊找鬼琅绅。 笑死扶欣,一個胖子當著我的面吹牛,可吹牛的內容都是我干的千扶。 我是一名探鬼主播料祠,決...
    沈念sama閱讀 40,251評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼澎羞!你這毒婦竟也來了髓绽?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 39,129評論 0 276
  • 序言:老撾萬榮一對情侶失蹤妆绞,失蹤者是張志新(化名)和其女友劉穎顺呕,沒想到半個月后枫攀,有當地人在樹林里發(fā)現了一具尸體,經...
    沈念sama閱讀 45,561評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡株茶,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,779評論 3 335
  • 正文 我和宋清朗相戀三年赫编,在試婚紗的時候發(fā)現自己被綠了点弯。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片僚稿。...
    茶點故事閱讀 39,902評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡葛家,死狀恐怖,靈堂內的尸體忽然破棺而出僵闯,到底是詐尸還是另有隱情卧抗,我是刑警寧澤,帶...
    沈念sama閱讀 35,621評論 5 345
  • 正文 年R本政府宣布棍厂,位于F島的核電站颗味,受9級特大地震影響,放射性物質發(fā)生泄漏牺弹。R本人自食惡果不足惜浦马,卻給世界環(huán)境...
    茶點故事閱讀 41,220評論 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望张漂。 院中可真熱鬧晶默,春花似錦、人聲如沸航攒。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,838評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽漠畜。三九已至币他,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間憔狞,已是汗流浹背蝴悉。 一陣腳步聲響...
    開封第一講書人閱讀 32,971評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留瘾敢,地道東北人拍冠。 一個月前我還...
    沈念sama閱讀 48,025評論 2 370
  • 正文 我出身青樓,卻偏偏與公主長得像簇抵,于是被迫代替她去往敵國和親庆杜。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,843評論 2 354

推薦閱讀更多精彩內容