中文字幕免费精品_亚洲视频自拍_亚洲综合国产激情另类一区_色综合咪咪久久

Java中的JVM基礎(chǔ):數(shù)據(jù)類型和堆棧
來源:易賢網(wǎng) 閱讀:1211 次 日期:2015-03-27 11:30:49
溫馨提示:易賢網(wǎng)小編為您整理了“Java中的JVM基礎(chǔ):數(shù)據(jù)類型和堆棧”,方便廣大網(wǎng)友查閱!

數(shù)據(jù)類型

Java虛擬機中,數(shù)據(jù)類型可以分為兩類:基本類型和引用類型。基本類型的變量保存原始值,即:他代表的值就是數(shù)值本身;而引用類型的變量保存引用值。“引用值”代表了某個對象的引用,而不是對象本身,對象本身存放在這個引用值所表示的地址的位置。

基本類型包括:byte, short, int, long, char, float, double, Boolean, returnAddress

引用類型包括:類類型,接口類型和數(shù)組。

堆與棧

堆和棧是程序運行的關(guān)鍵,很有必要把他們的關(guān)系說清楚。

棧是運行時的單位,而堆是存儲的單位。

棧解決程序的運行問題,即程序如何執(zhí)行,或者說如何處理數(shù)據(jù);堆解決的是數(shù)據(jù)存儲的問題,即數(shù)據(jù)怎么放、放在哪兒。

在Java中一個線程就會相應(yīng)有一個線程棧與之對應(yīng),這點很容易理解,因為不同的線程執(zhí)行邏輯有所不同,因此需要一個獨立的線程棧。而堆則是所有 線程共享的。棧因為是運行單位,因此里面存儲的信息都是跟當前線程(或程序)相關(guān)信息的。包括局部變量、程序運行狀態(tài)、方法返回值等等;而堆只負責存儲對 象信息。

為什么要把堆和棧區(qū)分出來呢?棧中不是也可以存儲數(shù)據(jù)嗎?

第一,從軟件設(shè)計的角度看,棧代表了處理邏輯,而堆代表了數(shù)據(jù)。這樣分開,使得處理邏輯更為清晰。分而治之的思想。這種隔離、模塊化的思想在軟件設(shè)計的方方面面都有體現(xiàn)。

第二,堆與棧的分離,使得堆中的內(nèi)容可以被多個棧共享(也可以理解為多個線程訪問同一個對象)。這種共享的收益是很多的。一方面這種共享提供了一種有效的數(shù)據(jù)交互方式(如:共享內(nèi)存),另一方面,堆中的共享常量和緩存可以被所有棧訪問,節(jié)省了空間。

第三,棧因為運行時的需要,比如保存系統(tǒng)運行的上下文,需要進行地址段的劃分。由于棧只能向上增長,因此就會限制住棧存儲內(nèi)容的能力。而堆不同,堆中的對象是可以根據(jù)需要動態(tài)增長的,因此棧和堆的拆分,使得動態(tài)增長成為可能,相應(yīng)棧中只需記錄堆中的一個地址即可。

第四,面向?qū)ο缶褪嵌押蜅5耐昝澜Y(jié)合。其實,面向?qū)ο蠓绞降某绦蚺c以前結(jié)構(gòu)化的程序在執(zhí)行上沒有任何區(qū)別。但是,面向?qū)ο蟮囊耄沟脤Υ龁栴}的 思考方式發(fā)生了改變,而更接近于自然方式的思考。當我們把對象拆開,你會發(fā)現(xiàn),對象的屬性其實就是數(shù)據(jù),存放在堆中;而對象的行為(方法),就是運行邏 輯,放在棧中。我們在編寫對象的時候,其實即編寫了數(shù)據(jù)結(jié)構(gòu),也編寫的處理數(shù)據(jù)的邏輯。不得不承認,面向?qū)ο蟮脑O(shè)計,確實很美。

在Java中,Main函數(shù)就是棧的起始點,也是程序的起始點。

程序要運行總是有一個起點的。同C語言一樣,java中的Main就是那個起點。無論什么java程序,找到main就找到了程序執(zhí)行的入口:)

堆中存什么?棧中存什么?

堆中存的是對象。棧中存的是基本數(shù)據(jù)類型和堆中對象的引用。一個對象的大小是不可估計的,或者說是可以動態(tài)變化的,但是在棧中,一個對象只對應(yīng)了一個4btye的引用(堆棧分離的好處:))。

為什么不把基本類型放堆中呢?因為其占用的空間一般是1~8個字節(jié)——需要空間比較少,而且因為是基本類型,所以不會出現(xiàn)動態(tài)增長的情況——長度 固定,因此棧中存儲就夠了,如果把他存在堆中是沒有什么意義的(還會浪費空間,后面說明)。可以這么說,基本類型和對象的引用都是存放在棧中,而且都是幾 個字節(jié)的一個數(shù),因此在程序運行時,他們的處理方式是統(tǒng)一的。但是基本類型、對象引用和對象本身就有所區(qū)別了,因為一個是棧中的數(shù)據(jù)一個是堆中的數(shù)據(jù)。最 常見的一個問題就是,Java中參數(shù)傳遞時的問題。

Java中的參數(shù)傳遞時傳值呢?還是傳引用?

要說明這個問題,先要明確兩點:

1. 不要試圖與C進行類比,Java中沒有指針的概念

2. 程序運行永遠都是在棧中進行的,因而參數(shù)傳遞時,只存在傳遞基本類型和對象引用的問題。不會直接傳對象本身。

明確以上兩點后。Java在方法調(diào)用傳遞參數(shù)時,因為沒有指針,所以它都是進行傳值調(diào)用(這點可以參考C的傳值調(diào)用)。因此,很多書里面都說Java是進行傳值調(diào)用,這點沒有問題,而且也簡化的C中復雜性。

但是傳引用的錯覺是如何造成的呢?在運行棧中,基本類型和引用的處理是一樣的,都是傳值,所以,如果是傳引用的方法調(diào)用,也同時可以理解為“傳引 用值”的傳值調(diào)用,即引用的處理跟基本類型是完全一樣的。但是當進入被調(diào)用方法時,被傳遞的這個引用的值,被程序解釋(或者查找)到堆中的對象,這個時候 才對應(yīng)到真正的對象。如果此時進行修改,修改的是引用對應(yīng)的對象,而不是引用本身,即:修改的是堆中的數(shù)據(jù)。所以這個修改是可以保持的了。

對象,從某種意義上說,是由基本類型組成的。可以把一個對象看作為一棵樹,對象的屬性如果還是對象,則還是一顆樹(即非葉子節(jié)點),基本類型則為 樹的葉子節(jié)點。程序參數(shù)傳遞時,被傳遞的值本身都是不能進行修改的,但是,如果這個值是一個非葉子節(jié)點(即一個對象引用),則可以修改這個節(jié)點下面的所有 內(nèi)容。

堆和棧中,棧是程序運行最根本的東西。程序運行可以沒有堆,但是不能沒有棧。而堆是為棧進行數(shù)據(jù)存儲服務(wù),說白了堆就是一塊共享的內(nèi)存。不過,正是因為堆和棧的分離的思想,才使得Java的垃圾回收成為可能。

Java中,棧的大小通過-Xss來設(shè)置,當棧中存儲數(shù)據(jù)比較多時,需要適當調(diào)大這個值,否則會出現(xiàn)java.lang.StackOverflowError異常。常見的出現(xiàn)這個異常的是無法返回的遞歸,因為此時棧中保存的信息都是方法返回的記錄點。

更多信息請查看IT技術(shù)專欄

更多信息請查看網(wǎng)絡(luò)編程
易賢網(wǎng)手機網(wǎng)站地址:Java中的JVM基礎(chǔ):數(shù)據(jù)類型和堆棧

2026上岸·考公考編培訓報班

  • 報班類型
  • 姓名
  • 手機號
  • 驗證碼
關(guān)于我們 | 聯(lián)系我們 | 人才招聘 | 網(wǎng)站聲明 | 網(wǎng)站幫助 | 非正式的簡要咨詢 | 簡要咨詢須知 | 新媒體/短視頻平臺 | 手機站點 | 投訴建議
工業(yè)和信息化部備案號:滇ICP備2023014141號-1 云南省教育廳備案號:云教ICP備0901021 滇公網(wǎng)安備53010202001879號 人力資源服務(wù)許可證:(云)人服證字(2023)第0102001523號
聯(lián)系電話:0871-65099533/13759567129 獲取招聘考試信息及咨詢關(guān)注公眾號:hfpxwx
咨詢QQ:1093837350(9:00—18:00)版權(quán)所有:易賢網(wǎng)
中文字幕免费精品_亚洲视频自拍_亚洲综合国产激情另类一区_色综合咪咪久久
欧美日韩一区三区四区| 在线免费精品视频| 亚洲免费久久| 影音先锋日韩有码| 国产日韩高清一区二区三区在线| 欧美成人在线免费视频| 久久只精品国产| 欧美资源在线观看| 午夜在线精品偷拍| 午夜精品成人在线视频| 亚洲一区二区欧美日韩| 中日韩美女免费视频网址在线观看| 亚洲国产经典视频| 在线不卡a资源高清| 黄色一区二区三区四区| 国产有码一区二区| 激情欧美一区| 亚洲国产精品成人| 亚洲精品久久| 在线中文字幕一区| 亚洲免费在线| 久久久久久9| 免费在线观看一区二区| 蜜桃av一区二区| 欧美另类一区二区三区| 欧美三级在线| 国产日韩精品一区二区浪潮av| 国产日韩在线看| 亚洲国产精品久久久久秋霞不卡| 亚洲人成高清| 亚洲一区二区在| 久久久久国产精品www| 欧美国产激情| 国产精品久久久久久久app| 国产亚洲精品美女| 最新日韩精品| 午夜精品www| 欧美成人免费在线视频| 欧美精品三级日韩久久| 国产精品外国| 91久久精品国产| 亚洲影院在线| 欧美高清自拍一区| 国产日韩欧美在线观看| 91久久久亚洲精品| 亚洲欧美国产三级| 欧美国产大片| 韩国美女久久| 亚洲视频精品在线| 久久人人爽人人爽| 国产精品卡一卡二| 91久久午夜| 久久久精彩视频| 欧美视频在线免费| 亚洲福利国产| 午夜欧美理论片| 欧美日韩国产色视频| 国语自产偷拍精品视频偷| 一区二区三区精密机械公司| 久久婷婷av| 国产麻豆综合| 在线综合亚洲欧美在线视频| 老司机免费视频一区二区| 国产老肥熟一区二区三区| 亚洲美女福利视频网站| 狼人天天伊人久久| 国产一区二区三区观看| 亚洲午夜精品网| 欧美麻豆久久久久久中文| 在线欧美视频| 久久亚洲私人国产精品va| 国产乱码精品一区二区三区av| 日韩亚洲精品视频| 免费欧美视频| 亚洲高清二区| 老司机午夜精品视频在线观看| 国产午夜亚洲精品不卡| 亚洲欧美日韩国产成人| 国产精品久久久久久av下载红粉 | 久久福利视频导航| 欧美日韩国产一中文字不卡| 亚洲第一精品电影| 久久精品一区二区三区四区| 国产精品入口日韩视频大尺度| 一区二区av| 欧美视频一区在线| 亚洲午夜伦理| 欧美午夜视频一区二区| aa成人免费视频| 欧美日韩国产小视频| 99视频超级精品| 欧美日韩国产在线观看| 日韩亚洲欧美中文三级| 欧美日韩国产综合视频在线观看中文 | 美女啪啪无遮挡免费久久网站| 国产精品日韩高清| 亚洲自拍16p| 国产免费成人在线视频| 午夜欧美大尺度福利影院在线看| 国产精品青草久久| 亚洲男人天堂2024| 国产欧美日韩在线播放| 久久成人羞羞网站| 在线成人h网| 欧美成人a视频| 一本色道久久综合一区 | 国产欧美日韩一区| 久久精品国产久精国产一老狼| 国产一区二区高清| 久久一区亚洲| 亚洲剧情一区二区| 国产精品日韩在线| 欧美中文在线字幕| 亚洲电影第1页| 欧美日韩一区二区三区在线| 亚洲专区一区二区三区| 国内精品久久久久影院薰衣草| 美日韩精品视频免费看| 一本久道久久综合婷婷鲸鱼| 国产嫩草影院久久久久| 久久精品免费电影| 亚洲精品乱码视频| 国产精品三上| 久久午夜精品一区二区| 亚洲另类一区二区| 国产精品美女久久久| 久久精品首页| 亚洲电影网站| 欧美性色综合| 久久久久久黄| 9国产精品视频| 国语自产精品视频在线看抢先版结局| 另类激情亚洲| 一级日韩一区在线观看| 国产精品久久久久aaaa九色| 久久国产精品久久久久久久久久| 亚洲欧洲在线观看| 国产日韩欧美一区二区三区四区| 国产一区在线免费观看| 免费毛片一区二区三区久久久| 一区二区av在线| 狠狠色伊人亚洲综合网站色| 欧美日韩成人一区二区| 久久精品免费播放| 中文日韩电影网站| 亚洲国产福利在线| 国产手机视频精品| 欧美性猛交xxxx乱大交蜜桃| 免费久久久一本精品久久区| 性欧美videos另类喷潮| 一区二区免费看| 亚洲国产乱码最新视频| 国产在线成人| 国产精品一区二区在线| 欧美日韩伦理在线| 毛片精品免费在线观看| 欧美在线观看视频| 亚洲欧美韩国| 亚洲色图在线视频| 99热免费精品| 亚洲精品免费一区二区三区| 伊人男人综合视频网| 国内精品嫩模av私拍在线观看| 国产精品视频xxxx| 欧美日韩中文在线| 欧美日韩视频一区二区三区| 欧美高清自拍一区| 蘑菇福利视频一区播放| 麻豆91精品91久久久的内涵| 亚洲欧美一区二区激情| 亚洲一区一卡| 亚洲无吗在线| 亚洲自拍偷拍福利| 亚洲影院色无极综合| 亚洲一区二区影院| 亚洲香蕉网站| 亚洲综合精品四区| 先锋资源久久| 久久成人综合视频| 久久久人成影片一区二区三区 | 99国产精品视频免费观看一公开| 一区二区三区在线免费视频| 国产一区二区三区免费在线观看| 国产精品免费看久久久香蕉| 国产精品高潮视频| 国产精品视频一| 欧美色欧美亚洲另类二区| 国产精品久久久久久超碰| 国产精品久久波多野结衣| 国产精品久久久久久久一区探花| 国产精品美女黄网| 国产精品亚洲一区| 红桃视频欧美| 亚洲美女在线一区| 亚洲在线免费视频| 久久久久九九九| 欧美激情a∨在线视频播放| 欧美日韩成人在线视频| 国产精品女主播在线观看| 国内精品久久国产|