java基础复习一:int与Integer
来源:互联网 发布:js获取指定的时间戳 编辑:程序博客网 时间:2024/06/06 01:27
java的一些基础总是忘记,有必要写一遍加深一下记忆。
int是java的基础类型,4个字节,在java.lang这个包中。
Integer是int的包装类,可以在一些需要使用int,但又没法用的地方代替int使用。
比较大小
– **如果两个变量都是int类型的,不存在任何异议
int a = 2; int b = 2; System.out.println(a == b);
结果:
true
– 如果是两个变量都是Integer类型的
Integer a = 2; Integer b = 2; System.out.println(a == b);
执行结果:
true
改一下:
Integer a = 127; Integer b = 127; System.out.println(a == b);
结果:
true
再改一下:
Integer a = 128; Integer b = 128; System.out.println(a == b);
结果:
false
再改一下:
Integer a = -128; Integer b = -128; System.out.println(a == b);
结果:
true
再改一下:
Integer a = -129; Integer b = -129; System.out.println(a == b);
结果:
false
可以看到== 比较大小,对于Integer不是完全适用,只试用于-128-127,也就是一个低位字节。Integer赋值的时候,会判断时候超出这个范围,如果超出了就新建一个对象, 不同的对象有不同的引用地址,所以==为false;
虽然很多人都知道这个,但是在项目组还是有很多人犯这个错。
这是检查数值大小的源码:
if (i >= IntegerCache.low && i <= IntegerCache.high) return IntegerCache.cache[i + (-IntegerCache.low)]; return new Integer(i);
如果超出这个范围,可以使用自动拆箱装箱,比较大小,如下:
Integer a = 129; int b = 129; System.out.println(a == b);
结果:
true
总结
如果两个Integer比较大小,这样写Integer == Integer.intValue(),这样就不要考虑数值范围的问题了。
如果int与Integer比较,统一用==就行了。
阅读全文
0 0
- java基础复习一:int与Integer
- Int与Integer(Java复习一)
- java基础 复习boolean和Boolean,类似int和Integer
- java基础问题----Integer与int的区别
- java基础之int与integer的区别
- 【JAVA基础小问题】Integer与int的区别
- Java(30):基础:Integer 与 int 的区别
- java基础 6、Integer与int的区别
- Java知识点总结(一)---int与Integer的区别
- java int 与Integer区别
- java中的Integer与int
- Java中的Integer与int
- java中的Integer与int
- java,Integer[]与int[]区别
- Java基础复习(一)
- 【Java基础】list转为Integer[]、list转为int[]、Integer[]转为int[]、int[]转为Integer[]
- Java Integer与int,栈与堆
- java基本数据类型&&int与Integer区别
- 使用gradle指令运行测试脚本
- CSS3中text-overflow支持以...代替超出文本
- Mongoose populate方法
- 使用sklearn进行集成学习——理论
- c primer plus 第十章编程题
- java基础复习一:int与Integer
- spring boot下非web应用,mysql数据源报错问题
- Gson
- JavaScript专题系列20篇正式完结!
- Java高级开发工程师考纲
- win7安装adb
- Linux执行JAVA JAR出现java.io.IOException: Permission denied
- A Dynamic Algorithm for Local Community Detection in Graphs--阅读笔记
- redhat下的 cpu-tensorflow安装及远程开启notebook