Java中 Int 和Integer 的区别
来源:互联网 发布:安广网络客服电话 编辑:程序博客网 时间:2024/06/03 16:43
Java中 Int 和Integer 的区别
1. int 是基本数据类型(原始数据类型),直接存数值;integer是int 的封装类,是对象类型
2. int默认值为0,integer默认值为null
3. 范型只支持对象类型
向ArrayList里面add,add的必须是Object而不是int
延伸
public class TestInteger { public static void main(String[] args) { int i = 128; Integer i2 = 128; Integer i3 = new Integer(128); //Integer会自动拆箱为int,所以为true System.out.println(i == i2); System.out.println(i == i3); System.out.println("**************"); Integer i5 = 127;//java在编译的时候,被翻译成-> Integer i5 = Integer.valueOf(127); Integer i6 = 127; System.out.println(i5 == i6);//true Integer i55 = 128; Integer i66 = 128; System.out.println(i55 == i66);//false Integer ii5 = new Integer(127); System.out.println(i5 == ii5); //false Integer i7 = new Integer(128); Integer i8 = new Integer(123); System.out.println(i7 == i8); //false }}
JDK源码的valueOf函数式这样的:
public static Integer valueOf(int i) { assert IntegerCache.high >= 127; if (i >= IntegerCache.low && i <= IntegerCache.high) return IntegerCache.cache[i + (-IntegerCache.low)]; return new Integer(i);}
总结
1. 无论值是否相同,Integer与new Integer都不会相等,结果为false。
2. 两个都是非new出来的Integer,如果数在-128到127之间,值相同则是true,否则为false
Java在编译Integer 的时候,被翻译成 Integer i = Integer.valueOf(值);而valueOf()函数会对-128到127之间的数进行缓存
3. 两个都是new出来的,无论堆上的值是否相同,引用地址不同,结果为false
4. int和integer比(无论是否是new出来的),值相同则是true,否则为false, 因为会把Integer自动拆箱为int再去比
阅读全文
0 0
- Java中int 和 Integer 的区别
- Java中int和Integer的区别
- Java中Integer和int的区别
- Java中int和Integer的区别
- Java中int和Integer的区别
- java中 int 和 Integer 的区别
- Java中int和Integer的区别
- Java中int和Integer的区别
- Java中integer和int的区别
- Java中int和Integer的区别
- Java中int和Integer的区别
- java中 int 和 Integer 的区别
- java中int和Integer的区别
- Java中Integer和int的区别
- Java中integer和int的区别
- Java中int和Integer的区别
- Java中int和Integer的区别
- Java中Integer和int的区别
- 1026:求s=a+aa+aaa+aaaa+aa..a的值
- 基于Spring的ApplicationContext获取方式
- Hadoop2.x HDFS架构图
- 线程基础:多任务处理——Fork/Join框架(解决排序问题)
- Servlet之Http协议(二)
- Java中 Int 和Integer 的区别
- #pragma clang diagnostic ignored 作用
- PAT乙级1040. 有几个PAT(25)
- JSON扫盲-JSON和spingmvc中的json格式传递
- Java中String三种加法的区别
- ubuntu下安装nginx服务器
- ECMAScript6 学习笔记
- 剪花布条
- [java]二叉树构建、遍历、深度、平衡性