Java常用类学习:包装类(重点看Integer的equals比较)
-
一般的,当需要使用数字的时候,我们通常使用内置数据类型
int a=10;
float b=12.4f;
byte c=0x4a;
-
然而,在实际开发中,我们经常会遇到需要使用对象,而不是内置数据类型;为了解决这个问题,Java语言为每个数据类型提供了对应的包装类;
-
所有的包装类(Integer , Long ,Byte , Double ,Float ,Short)都是抽象类Number的子类;Number类属于java.lang包
包装类 | 基本数据类型 |
---|---|
Boolean | boolean |
Byte | byte |
Short | short |
Integer | int |
Long | long |
Character | char |
Float | float |
Double | double |
-
这种由编译器特别支持的包装称为装箱;
-
当内置数据类型被当作对象使用的时候,编译器会把内置数据类型装箱为包装类;反之为拆箱;
-
自动装箱,自动拆箱;不需要强转;
-
-
代码案例:
public class NumberDemo01 {
public static void main(String[] args) {
Integer x=5;//自动装箱
int y=x+5;//自动拆箱
System.out.println(x);//5
System.out.println(y);//10
}
}
-
重点:Integer类重写了equals方法
-
Integer包装类:重写了equals方法:
-
如果参数值>-128 && 参数值<127 ,则按==比较;也就是说,比较的是内存地址;
-
如果参数值不在其中,则按value比较,也就是值比较;
-
-
-
代码案例:Integer类重写了equals方法
/**
* 笔记:
* Integer包装类:重写了equals方法:
* 1,如果参数值>-128 && 参数值<127 ,则按==比较;也就是说,比较的是内存地址;
* 2,如果参数值不在其中,则按value比较,也就是值比较;
*/
public class Test {
public static void main(String[] args) {
Integer a1=225;
Integer a2=new Integer(225);
Integer a3=new Integer(225);
System.out.println(a1==a2);//false
System.out.println(a1.equals(a2));//true
System.out.println(a2.equals(a3));//true
}
}
/*
Integer a1=5;
Integer a2=new Integer(5);
System.out.println(a1 == a2);//false
System.out.println(a1.equals(a2));//true
*/
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律