关于int
int是Java八种基本数据类型之一。
哪八种?如下:
- byte 位
- short 短整
- int 整
- long 长整
- float 单精度
- double 双精度
- char 字符
- boolean 布尔
关于Integer
它是int的包装类,在-128~127之间它是直接使用缓冲区读取,超出之后就会new一个对象。
Integer num1 = -128;
Integer num1_1 = -128;
Integer num2 = 127;
Integer num2_1 = 127;
Integer num3 = 129;
Integer num3_1 = 129;
System.out.println(num1 == num1_1);
System.out.println(num2 == num2_1);
System.out.println(num3 == num3_1);
/*
输出:
true
true
false
*/
也就是说在范围之外,使用==是不能正确的比较两个数是否相等的,此时使用equals方法或者.intValue()进行比较才是正确的方法。
最后
在Integer的源码中可以找到int的实际value是用final关键字修饰,也就是说它是不可变的,所以当进行加减乘除的时候都是创建了一个新的对象进行操作的。