java int和integer的区别_int和Integer的区别
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的区别相关推荐
- java int型最大是多少_int型的数到底最大值是多少?
本文摘自:http://blog.csdn.net/friendbaby/article/details/6822690 刚才在百度知道上看见一个网友问int型的数最大能存多少.这个问题其实计算机系统 ...
- java int 128 ==_Integer128==128?false,Integer和int使用==比较的总结
Integer和int使用==比较的总结 System.out.println("_____________________________"); Integer a = new ...
- java int interger_java面试题之int和Integer的区别
int和Integer的区别 1.Integer是int的包装类,int则是java的一种基本数据类型 2.Integer变量必须实例化后才能使用,而int变量不需要 3.Integer实际是对象的引 ...
- java int == integer_java int与integer的区别
int与integer的区别从大的方面来说就是基本数据类型与其包装类的区别: int 是基本类型,直接存数值,而integer是对象,用一个引用指向这个对象 1.Java 中的数据类型分为基本数据类型 ...
- Java面试题15牛客 以下关于Integer与int的区别错误的是
Java面试题15牛客 以下关于Integer与int的区别错误的是 A int是java提供的8种原始数据类型之一 B Integer是java为int提供的封装类 C int的默认值为0 D In ...
- java可以用 lt =判断int吗_int 和 integer:装箱和拆箱的过程,会用到什么方法
本文转载自[微信公众号:五角钱的程序员,ID:xianglin965],经微信公众号授权转载,如需转载与原文作者联系 原文标题<int 和 integer :装箱和拆箱的过程,会用到什么方法,你 ...
- java int parse_java中Integer.parseInt和Integer.valueOf的区别
展开全部 他们返回类型的不同是最大的原因: static int parseInt(String s) 将字符串参e69da5e6ba9062616964757a686964616f313333613 ...
- Java经典面试题—— int 和 Integer 有什么区别?谈谈 Integer 的值缓存范围
典型回答 int 是我们常说的整型数字,是 Java 的 8 个原始数据类型(PrimitiveTypes,boolean.char.byte.short.int.long.float 和 doubl ...
- Java int 和 Integer 互转原理
文章目录 Java int 和 Integer 互转 Java Integer.int 与 new Integer() Integer.valueOf() new Integer() 为什么 Java ...
最新文章
- linux 环境 安装jdk tomcat mysql git
- 服务器怎么打开数据库文件夹,服务器怎么打开数据库文件夹下
- 请求模式解决共享资源冲突
- 2020-08-29
- ubuntu开启ssh
- 【aspnetcore】添加自定义json配置文件
- 一个html多个html文件怎么打开网页,Firefox如何单窗口多页面浏览
- es统计有多少个分组_ES 24 - 如何通过Elasticsearch进行聚合检索 (分组统计)
- WinForm 快捷键设置
- [bug解决] TensorFlow安装错误:ERROR Cannot uninstall ‘wrapt‘
- Django-----模板嵌套
- 电力监控系统的研究与应用
- mysql中文模糊查询_解决mysql中文模糊查询问题的方法
- excel教程自学网_Excel零基础入门到高级自学视频教程
- 哪些排序是不稳定的?稳定又意味着什么?
- Redis集群管理工具redis-trib
- 字符串匹配——朴素算法Brute-Force(布鲁特-福斯算法)
- pythontrun什么意思_python 新手笔记一
- 从B树谈到R树之B树的c实现
- Bias-Variance Tradeoff(权衡偏差与方差)