java-JVM

JVM第一章
1.原碼、反碼、補(bǔ)碼怎么表示?

二進(jìn)制的第一位為符號位,0為正數(shù),1為負(fù)數(shù)
原碼:正數(shù)的原碼符號位為0,負(fù)數(shù)的原碼符號位為1
5 的原碼 為 00000000 00000000 00000000 00000101
-5 的原碼為 10000000 00000000 00000000 00000101
反碼:符號位不變、其他位取反
5的反碼 是:01111111 11111111 11111111 11111010
-5 的反碼是 11111111 11111111 11111111 11111010
補(bǔ)碼:正數(shù)的補(bǔ)碼是原碼本身,負(fù)數(shù)的補(bǔ)碼是反碼+1
5的補(bǔ)碼 :01111111 11111111 11111111 11111010
-5 的補(bǔ)碼:11111111 11111111 11111111 11111011

2.計(jì)算機(jī)中用什么來表示整數(shù)?

補(bǔ)碼

3.jvm中使用補(bǔ)碼表示整數(shù)的好處是什么?

1:統(tǒng)一了整數(shù)0 的表示方式,0是正數(shù)時(shí)是二進(jìn)制的32個0,負(fù)數(shù)用補(bǔ)碼表示也是32個0
2:方便加減運(yùn)算,可以直接用補(bǔ)碼做加減法

4.基本數(shù)據(jù)類型的長度?

byte 1字節(jié) 8bit
short、char 2字節(jié) 16bit
int、float 4字節(jié) 32bit
long、double 8字節(jié) 64bit
boolean 如果表示變量用4字節(jié)、如果是數(shù)組,那么每個元素就是1字節(jié)

JVM第二章
5.JVM內(nèi)包括那幾部分?

類加載子系統(tǒng)、java棧、方法區(qū)Java堆、本地方法棧、PC寄存器、執(zhí)行引擎、垃圾回收系統(tǒng)、直接內(nèi)存

6.本地方法棧和java棧的區(qū)別?

本地方法棧用于本地函數(shù)的調(diào)用,java棧用于java函數(shù)的調(diào)用

7.PC寄存器的作用是什么?

PC寄存器是每個線程的私有空間,jvm為每個線程創(chuàng)建一個PC寄存器,在任意時(shí)刻,一個線程總是在執(zhí)行一個方法,如果當(dāng)前線程執(zhí)行的線程不是本地方法,PC寄存器會存儲它的指令,如果是本地方法,則存儲undefined。

8.java堆的結(jié)構(gòu)?

Java堆分為新生代和老年代,其中新生代放新生對象和年齡不大的對象,老年代則放年老的對象。新生代有可能分為eden區(qū)、S0區(qū)、S1區(qū),也是From區(qū)和To區(qū),是大小相等可以互換角色的內(nèi)存空間。對象首先分配在Eden區(qū),在一次新生代回收后,如果對象存活,則進(jìn)入S0或者S1區(qū),之后,沒經(jīng)過一次新生代回收,對象如果存活,年齡就會加1.當(dāng)對象的年齡達(dá)到一定條件后,就會被認(rèn)為是老年對象,從而進(jìn)入老年代。

9.操作數(shù)棧的作用?

保存計(jì)算過程的中間結(jié)果

10.方法區(qū)(永久區(qū))的作用?

保存類的信息、字段、方法、常量池等,在java8中已經(jīng)被移出,用元數(shù)據(jù)區(qū)替代,是堆外的直接內(nèi)存,如果沒有配置的話,默認(rèn)會用完機(jī)器的全部內(nèi)存。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容