Integer和int最本质的区别就是:Integer是封装类,int是基本数据类型(这是废话)。
本文是希望能对Integer和int的区别进行更详细的对比说明并加以举例
Integer和int的区别
- Integer的默认初始值是null,而int的初始值是int,也就是说Integer能够区分出未赋值和值为0的区别,而int却不能表达出未赋值的情况,所以int不适合作为web层的表单数据填写。(例如:一个学生参加考试且成绩为0,和没参加考试成绩为null)
- Integer是类,自带很多方法供使用,而int只能做一些基本的±*/=的操作
- Integer变量必须先实例化,int变量直接使用
关于Integer
在说明Integer的时候有几个小知识点提一下:
- 拆箱和装箱
- 什么时候拆箱:基本数据类型和引用数据类型做运算时什么时候装箱:基本数据类型赋值给引用数据类型时
- “==”和“equals()”
- “==”:在比较基本数据类型时比较的是数值,比较引用数据类型时比较的是对象堆内存地址equals():在Object类中是通过“==”来比较的,但大多时候,我们会将其进行重写
- 在Integer类中,“==”用来比较对象地址是否相同,而equals()被重写,他会先判断参数中对象是否为Integer类型,如果是则判断值是否相同。
?
1
2
3
4
5
6
|
public boolean equals(Object obj) {
if (obj instanceof Integer) {
return value == ((Integer)obj).intValue();
}
return false ;
}
|
几点说明
?
1
2
3
|
Integer a = new Integer( 1 );
int b = 1 ;
System.out.println(a == b); //true
|
两个通过new生成的Integer变量是永远不相等的(因为new生成的是两个新对象,内存地址不同)
?
1
2
3
|
Integer a = new Integer( 1 );
Integer b = new Integer( 1 );
System.out.println(a == b); //false
|
两个通过非new产生的Integer变量也是不相等的(因为非new产生的Integer变量指向Java常量池中的对象,而new产生的变量指向堆中新建对象,他俩所在的内存地址不同)
?
1
2
3
|
Integer a = new Integer( 1 );
Integer b = 1 ;
System.out.println(a == b); //false
|
两个非new产生的Integer变量比较:当值在-128~127之间时,结果为true,当值在此区间外结果为false(因为Integer常量池的存储范围是[-128,127],在此范围内是直接存储于常量池的,都指向同一个地址。在此范围外的数需要通过堆内存创建一个新对象。比如Integer a=1会将1写入缓存中,下次再写Integer b=1时会直接从缓存中去,不用new了,所以取到的地址也是相同的)
?
1
2
3
4
5
6
7
|
Integer a = 1 ;
Integer b = 1 ;
System.out.println(a == b); //true
Integer a = 129 ;
Integer b = 129 ;
System.out.println(a == b); //false
|
到此这篇关于Integer和int的区别实例详解的文章就介绍到这了,更多相关Integer和int的区别内容请搜索快网idc以前的文章或继续浏览下面的相关文章希望大家以后多多支持快网idc!
原文链接:https://blog.csdn.net/smart_1234/article/details/114238587
相关文章
猜你喜欢
- 64M VPS建站:怎样优化以提高网站加载速度? 2025-06-10
- 64M VPS建站:是否适合初学者操作和管理? 2025-06-10
- ASP.NET自助建站系统中的用户注册和登录功能定制方法 2025-06-10
- ASP.NET自助建站系统的域名绑定与解析教程 2025-06-10
- 个人服务器网站搭建:如何选择合适的服务器提供商? 2025-06-10
TA的动态
- 2025-07-10 怎样使用阿里云的安全工具进行服务器漏洞扫描和修复?
- 2025-07-10 怎样使用命令行工具优化Linux云服务器的Ping性能?
- 2025-07-10 怎样使用Xshell连接华为云服务器,实现高效远程管理?
- 2025-07-10 怎样利用云服务器D盘搭建稳定、高效的网站托管环境?
- 2025-07-10 怎样使用阿里云的安全组功能来增强服务器防火墙的安全性?
快网idc优惠网
QQ交流群
您的支持,是我们最大的动力!
热门文章
-
2025-06-04 67
-
网站服务器出租:云服务器 vs 传统物理服务器,哪个更合适?
2025-05-27 75 -
2025-06-04 38
-
2025-05-27 12
-
2025-05-25 82
热门评论