av一区二区在线观看_亚洲男人的天堂网站_日韩亚洲视频_在线成人免费_欧美日韩精品免费观看视频_久草视

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

java 基本數(shù)據(jù)類(lèi)型各種情況下在內(nèi)存中存儲(chǔ)位置?

瀏覽:90日期:2024-01-13 17:24:47

問(wèn)題描述

問(wèn)題:

如何理解《Java編程思想-第四版》P23 中,這個(gè)變量直接存儲(chǔ)“值”,并置于堆棧中,因此更加高效一句中的 “堆棧” 兩字,到底是堆還是棧?情況如下:

class demo { private int var1; // 字段1 private Integer var2; // 字段2 public static void main(String[] args) {int var3 = 0; // 變量1demo obj1 = new demo(); // 實(shí)例1 }}我的理解

參考《Java編程思想-第四版》P23 和 《深入理解Java虛擬機(jī):JVM高級(jí)特性與最佳實(shí)踐 第2版》P39-P43,對(duì)于該 demo

實(shí)例1:存儲(chǔ)在堆內(nèi)存中

變量1:存儲(chǔ)在方法棧中

實(shí)例1中的字段1:存儲(chǔ)在堆中

實(shí)例1中的字段2:存儲(chǔ)在堆中

如果是存儲(chǔ)在堆中的話,何來(lái)高效一說(shuō)?

問(wèn)題解答

回答1:

我們不能一概而論的說(shuō),基本類(lèi)型數(shù)據(jù)都是放在棧中的!當(dāng)某個(gè) 類(lèi)實(shí)例 中具有基本類(lèi)型時(shí),基本類(lèi)型就放在堆中!

回答2:

內(nèi)存分為堆和棧,這你已經(jīng)知道了。

堆內(nèi)存是屬于JVM的,棧內(nèi)存是屬于方法的,方法結(jié)束了,棧內(nèi)存也就沒(méi)了。

程序運(yùn)行main函數(shù)時(shí),有一個(gè)堆內(nèi)存,一個(gè)main的棧內(nèi)存

int var3 = 0;這個(gè)var3,是放在main函數(shù)的棧內(nèi)存中的,是一個(gè)值。

之后demo obj1 = new demo();main函數(shù)的棧內(nèi)存中有了一個(gè)引用變量,obj1,指向了堆內(nèi)存中new出來(lái)的這個(gè)實(shí)例。

我們?cè)倏炊褍?nèi)存中的這個(gè)實(shí)例,他有2個(gè)字段,他們都是存放在堆中的。

等到main函數(shù)運(yùn)行結(jié)束時(shí),假如還有別的線程在運(yùn)行,JVM還沒(méi)有結(jié)束,此時(shí),main函數(shù)的棧內(nèi)存被清除,var3,不在了,obj1這個(gè)引用變量也不在了,但是堆內(nèi)存中的那個(gè)實(shí)例依然在,如果沒(méi)有別的引用變量 指向它 ,那么它將在稍后被清除。

回答3:

是翻譯錯(cuò)誤,原文中用的是stack,即棧,而不是堆棧。以下是原文:

Special case: primitive types

One group of types, which you’ll use quite often in your programming, gets special treatment. You can think of these as “primitive” types. The reason for the special treatment is that to create an object with new—especially a small, simple variable—isn’t very efficient, because new places objects on the heap. For these types Java falls back on the approach taken by C and C++. That is, instead of creating the variable by using new, an “automatic” variable is created that is not a reference. The variable holds the value directly, and it’s placed on the stack, so it’s much more efficient.

回答4:

p22,堆棧指的是stack,堆指的是heap

標(biāo)簽: java
相關(guān)文章:
主站蜘蛛池模板: 国产一区二区精 | 日日操操 | 国产在线视频一区二区董小宛性色 | 美国黄色毛片 | 天天色图| 91精品国产一区二区三区香蕉 | 欧美精品中文 | 欧美黑人体内she精在线观看 | 国产精品久久久久久久久免费 | 麻豆国产一区二区三区四区 | 国产最好的av国产大片 | 国产精品久久久久久久岛一牛影视 | 国产精品久久久久久久久久久免费看 | 一级毛片在线播放 | 成人免费视频一区 | 国产欧美日韩在线观看 | 亚洲色图综合网 | 国产精品www | 九九热在线视频 | 女同videos另类| 日本精品一区二区三区视频 | 性色网站| 国产高清一区二区三区 | av中文字幕网 | 日韩国产中文字幕 | 亚洲精品成人网 | 黄色网页在线 | 老司机成人在线 | 一级黄a | 国内精品视频免费观看 | 羞羞视频在线观免费观看 | 中文视频在线 | 亚洲综合色丁香婷婷六月图片 | 欧美在线 | 亚洲永久 | 免费观看一级特黄欧美大片 | 中文字幕第5页 | 99精品一区二区三区 | 伊人网99 | 亚洲欧美激情精品一区二区 | 精品影视 |