动手动脑
枚举不属于原始数据类型,它的每个具体值都引用一个特定的对象。相同的值则引用同一个对象。 可以使用“==”和equals()方法直接比对枚举变量的值,换句话说,对于枚举类型的变量,“==”和equals()方法执行的结果是等价的。
原码:计算机中对数字的二进制定点表示方法,将某其他进制数字变为二进制数字,若为正数在此二进制数前加0,若为负数前加1。
反码:正数的反码是其本身,负数反码是除第一位(即符号位)不变外,其余各个位取反(即1变0,0变1)。
补码:正数补码是其本身,负数补码是其反码最后一位再加一位,这位为1。
若为原码, 在二进制中00000001+10000001=10000010,换算成十进制为-2。显然出错,故java中数值并非是由原码储存
若为反码 (00000001) 反+ (11111110)反 = (11111111)反 = ( -0 )
若为补码,(00000001)补 + (11111111)补 = (00000000)补 = ( 0 )
所以在java中,数值是由补码表示的
若为反码 (00000001) 反+ (11111110)反 = (11111111)反 = ( -0 )
若为补码,(00000001)补 + (11111111)补 = (00000000)补 = ( 0 )
所以在java中,数值是由补码表示的
同名变量的屏蔽原则
![](https://img2018.cnblogs.com/blog/1721040/201909/1721040-20190920074411324-719029232.png)
byte 字节型 1字节(8bit) 初始值:0
char 字符型 2字节(16bit) 初始值:空格
short 短整型 2字节(16bit) 初始值:0
int 整型 4字节(32bit) 初始值:0
long 长整型 8字节(64Bit) 初始值:0L
float 单精度浮点型 4字节(32bit) 初始值:0.0f
double 双精度浮点型 8字节(64bit) 初始值:0.0d
boolean java未明确指出的大小(可能1bit、1byte、4byte) 初始值:false
char 字符型 2字节(16bit) 初始值:空格
short 短整型 2字节(16bit) 初始值:0
int 整型 4字节(32bit) 初始值:0
long 长整型 8字节(64Bit) 初始值:0L
float 单精度浮点型 4字节(32bit) 初始值:0.0f
double 双精度浮点型 8字节(64bit) 初始值:0.0d
boolean java未明确指出的大小(可能1bit、1byte、4byte) 初始值:false
可长转短,不可短转长
第一种输出相当于将两个int型数据连接,第二个为计算