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