JVM相關(一)

int  i1=3;

int  i2=i1;

i2=4;


====>  i1=3;i2=4;      i1/i2爲不同的變量



class Value {int val;}

Value v1.val=5;

Value v2.val=v1;

v2.val=6;



====>v1.val=6;v2.val=6; v1,v2 爲引用的同一個實例


int 類型在內存中佔8個字節   32位   

float類型 單精度浮點數 在內存中佔8個字節  32位

double 雙精度浮點型 在內存中佔 16個字節  64位

整數與浮點數在內存中的表示

整數:

原碼:第一位表示爲符號位    0表示正數   1表示負數 

反碼:符號位不變  其餘位取反

負數補碼:反碼加上1

正數補碼:與原碼相同


一個整數在內存中表示都是使用補碼的形式,採用補碼錶示的原因:

(1)是0的原因,0既不是正數也不是負數,在有些地方說可以把0看成是正數或者是負數,如果把0看成是正數  則在內存中表示 0000 0000

如果將0看成是負數,則在內存中表示 1000 0000;則中兩種的表示是不一樣的

用反碼錶示:如果0是正數;0000 0000 如果0是負數 1111 1111+1=0000 0000 兩種的表示是一樣的

(2)在計算機中表示減法或者是計算減法是很麻煩的,若是將其轉化爲加法則是比較簡單,補碼錶示可以很容易的額將減法轉化爲加法

2-1可以轉化爲2+(-1)


一個浮點數在內存中的表示形式

float 

s eeee eeee mmmm mmmm mmmm mmmm mmmm mmm

符號位 指數位      附加位

s*m*2^(e-127)

-3.5

1 1000 0000 1100 0000 0000 0000 0000 000

(-1)*2^(128-127*2^0+2^-1+2^-2)=3.5

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章