int和Integer的区别

1、Integer是int的包装类,int则是java的一种基本数据类型

2、Integer变量必须实例化后才能使用,而int变量不需要

3、Integer实际是对象的引用,当new一个Integer时,实际上是生成一个指针指向此对象;而int则是直接存储数据值

4、Integer的默认值是null,int的默认值是0

延伸:

关于Integer和int的比较

1、由于Integer变量实际上是对一个Integer对象的引用,所以两个通过new生成的Integer变量永远是不相等的(因为new生成的是两个对象,其内存地址不同)。Integer i = new Integer(100);

Integer j = new Integer(100);

System.out.print(i == j); //false

2、Integer变量和int变量比较时,只要两个变量的值是向等的,则结果为true(因为包装类Integer和基本数据类型int比较时,java会自动拆包装为int,然后进行比较,实际上就变为两个int变量的比较)Integer i = new Integer(100);

int j = 100;

System.out.print(i == j); //true

3、非new生成的Integer变量和new Integer()生成的变量比较时,结果为false。(因为非new生成的Integer变量指向的是java常量池中的对象,而new Integer()生成的变量指向堆中新建的对象,两者在内存中的地址不同)Integer i = new Integer(100);

Integer j = 100;

System.out.print(i == j); //false

4、对于两个非new生成的Integer对象,进行比较时,如果两个变量的值在区间-128到127之间,则比较结果为true,如果两个变量的值不在此区间,则比较结果为falseInteger i = 100;Integer j = 100;

System.out.print(i == j); //trueInteger i = 128;

Integer j = 128;

System.out.print(i == j); //false

对于第4条的原因:

java在编译Integer i = 100 ;时,会翻译成为Integer i = Integer.valueOf(100);,而java API中对Integer类型的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);

}

java对于-128到127之间的数,会进行缓存,Integer i = 127时,会将127进行缓存,下次再写Integer j = 127时,就会直接从缓存中取,就不会new了

更多编程学习课程,可关注PHP中文网!

java int和integer的区别_int和Integer的区别相关推荐

  1. java int型最大是多少_int型的数到底最大值是多少?

    本文摘自:http://blog.csdn.net/friendbaby/article/details/6822690 刚才在百度知道上看见一个网友问int型的数最大能存多少.这个问题其实计算机系统 ...

  2. java int 128 ==_Integer128==128?false,Integer和int使用==比较的总结

    Integer和int使用==比较的总结 System.out.println("_____________________________"); Integer a = new ...

  3. java int interger_java面试题之int和Integer的区别

    int和Integer的区别 1.Integer是int的包装类,int则是java的一种基本数据类型 2.Integer变量必须实例化后才能使用,而int变量不需要 3.Integer实际是对象的引 ...

  4. java int == integer_java int与integer的区别

    int与integer的区别从大的方面来说就是基本数据类型与其包装类的区别: int 是基本类型,直接存数值,而integer是对象,用一个引用指向这个对象 1.Java 中的数据类型分为基本数据类型 ...

  5. Java面试题15牛客 以下关于Integer与int的区别错误的是

    Java面试题15牛客 以下关于Integer与int的区别错误的是 A int是java提供的8种原始数据类型之一 B Integer是java为int提供的封装类 C int的默认值为0 D In ...

  6. java可以用 lt =判断int吗_int 和 integer:装箱和拆箱的过程,会用到什么方法

    本文转载自[微信公众号:五角钱的程序员,ID:xianglin965],经微信公众号授权转载,如需转载与原文作者联系 原文标题<int 和 integer :装箱和拆箱的过程,会用到什么方法,你 ...

  7. java int parse_java中Integer.parseInt和Integer.valueOf的区别

    展开全部 他们返回类型的不同是最大的原因: static int parseInt(String s) 将字符串参e69da5e6ba9062616964757a686964616f313333613 ...

  8. Java经典面试题—— int 和 Integer 有什么区别?谈谈 Integer 的值缓存范围

    典型回答 int 是我们常说的整型数字,是 Java 的 8 个原始数据类型(PrimitiveTypes,boolean.char.byte.short.int.long.float 和 doubl ...

  9. Java int 和 Integer 互转原理

    文章目录 Java int 和 Integer 互转 Java Integer.int 与 new Integer() Integer.valueOf() new Integer() 为什么 Java ...

最新文章

  1. linux 环境 安装jdk tomcat mysql git
  2. 服务器怎么打开数据库文件夹,服务器怎么打开数据库文件夹下
  3. 请求模式解决共享资源冲突
  4. 2020-08-29
  5. ubuntu开启ssh
  6. 【aspnetcore】添加自定义json配置文件
  7. 一个html多个html文件怎么打开网页,Firefox如何单窗口多页面浏览
  8. es统计有多少个分组_ES 24 - 如何通过Elasticsearch进行聚合检索 (分组统计)
  9. WinForm 快捷键设置
  10. [bug解决] TensorFlow安装错误:ERROR Cannot uninstall ‘wrapt‘
  11. Django-----模板嵌套
  12. 电力监控系统的研究与应用
  13. mysql中文模糊查询_解决mysql中文模糊查询问题的方法
  14. excel教程自学网_Excel零基础入门到高级自学视频教程
  15. 哪些排序是不稳定的?稳定又意味着什么?
  16. Redis集群管理工具redis-trib
  17. 字符串匹配——朴素算法Brute-Force(布鲁特-福斯算法)
  18. pythontrun什么意思_python 新手笔记一
  19. 从B树谈到R树之B树的c实现
  20. Bias-Variance Tradeoff(权衡偏差与方差)

热门文章

  1. 东大《电子商务》在线平时作业123
  2. Java习题练习:带分数
  3. linux 跨进程读取内存,Android之Linux跨进程通信的方式
  4. php 判断是否是ajax请求,php实现判断是否为ajax请求的方法
  5. 复杂网络中的幂律分布函数
  6. 浪潮英信服务器 SA5212M4 用户手册 V1.0
  7. C# 把汉字转成拼音
  8. day_14 常用API
  9. cad布局教程_发布,一个好用的CAD原生批量打印功能
  10. 面试常考!SQL行转列和列转行