JVM相关(一)

来源:互联网 发布:打不开painter2017软件 编辑:程序博客网 时间:2024/06/06 01:20

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

0 0
原创粉丝点击