包装类
包装类
Java核心库提供的包装类型可以把基本类型包装为class
基本数据类型 | 包装类 |
---|---|
boolean | Boolean |
char | Character |
byte | Byte |
short | Short |
int | Integer |
long | Long |
float | Float |
double | Double |
Byte,Short,Integer,Long,Float,Double的父类是Number
装箱拆箱
自动装箱和自动拆箱都是在编译期完成的(JDK>=1.5)
这种直接把int
变为Integer
的赋值写法,称为自动装箱(Auto Boxing),反过来,把Integer
变为int
的赋值写法,称为自动拆箱(Auto Unboxing)。
Integer n = 100; // 编译器自动使用Integer.valueOf(int)
int x = n; // 编译器自动使用Integer.intValue()
-
自动装箱和自动拆箱只发生在编译阶段,目的是为了少写代码。
Double d=100d;//ok 自动装箱 Double.valueOf(100d);
Object obj1=true?new Integer(1):new Double(2.0); System.out.println(obj1);//1.0 //三元运算符是一个整体 提升到最高,其实是Double类
包装类(Integer)-->String
Integer i=100;//自动装箱
//方式1
String str1=i +"";//对i没有影响,不改变
//方式2
String str2=i.toString();
//方式3
String str3=String.valueOf(i);
String-->包装类(Integer)
String str4="1234";
Integer i1=Integer.parseInt(str4);//自动装箱
Integer i3=new Integer(str4);//构造器
包装类的常用方法
使用时查看文档
Integer创建机制
//示例1
Integer i1=new Intrger(127);
Integer i2=new Intrger(127);
System.out.println(i1==i2);//False new 的是对象
//示例2
Integer i3=127;//底层Integer.valueOf(127)
Integer i4=127;//查看源码 范围是-128~127
System.out.println(i3==i4);//true
//示例3
Integer i5=128;//底层Integer.valueOf(127)
Integer i6=128;//查看源码 范围是-128~127
System.out.println(i5==i6);//false 超出范围
//示例4
Integer i7=127;//底层Integer.valueOf(127) 数组里面
Integer i8=new Integer (127);
System.out.println(i7==i8);//false
//示例5
Integer i9=127;//底层Integer.valueOf(127)
Int i10=127;
System.out.println(i9==i10);//true 只要有基本数据类型,判断就是值是否相等
对两个Integer
实例进行比较要特别注意:绝对不能用==
比较,因为Integer
是引用类型,必须使用equals()
比较。
public static void main(String[] args) {
Integer x = 127;
Integer y = 127;
Integer m = 99999;
Integer n = 99999;
System.out.println("x == y: " + (x==y)); // true
System.out.println("m == n: " + (m==n)); // false
System.out.println("x.equals(y): " + x.equals(y)); // true
System.out.println("m.equals(n): " + m.equals(n)); // true
}
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 因为Apifox不支持离线,我果断选择了Apipost!
· 通过 API 将Deepseek响应流式内容输出到前端