第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

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

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

一只斗牛犬 2019-03-01 11:15:56
問(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; // 變量1 demo 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ō)?
查看完整描述

4 回答

?
繁華開滿天機(jī)

TA貢獻(xiàn)1816條經(jīng)驗(yàn) 獲得超4個(gè)贊

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

查看完整回答
反對(duì) 回復(fù) 2019-03-01
?
至尊寶的傳說(shuō)

TA貢獻(xiàn)1789條經(jīng)驗(yàn) 獲得超10個(gè)贊

內(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)有別的引用變量 指向它 ,那么它將在稍后被清除。

查看完整回答
反對(duì) 回復(fù) 2019-03-01
?
拉風(fēng)的咖菲貓

TA貢獻(xiàn)1995條經(jīng)驗(yàn) 獲得超2個(gè)贊

是翻譯錯(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.

查看完整回答
反對(duì) 回復(fù) 2019-03-01
?
慕碼人8056858

TA貢獻(xiàn)1803條經(jīng)驗(yàn) 獲得超6個(gè)贊

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

查看完整回答
反對(duì) 回復(fù) 2019-03-01
  • 4 回答
  • 0 關(guān)注
  • 951 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)