Java包装类
什么是包装类
-
基本数据类型所对应的引用数据类型
-
Object可同一所有数据,包装类的默认值是null
基本数据类型 | 包装类型 |
---|---|
byte | Byte |
short | Short |
int | Integer |
long | Long |
float | Float |
double | Double |
boolean | Boolean |
char | character |
类型转换与装箱拆箱
-
8种包装类提供不同类型间的转换方式:
-
Number父类中提供的6个共性方法
-
-
intValue:拆箱
-
package com.lin.box.demo01;
public class Test {
public static void main(String[] args) {
int num1 = 10;
//装箱:把基本数据类型转换为对应的包装类类型
//使用Integer的静态方法valueOf
Integer integer1 = Integer.valueOf(num1);
Integer integer2 = new Integer(num1);
System.out.println("装箱");
System.out.println(integer1);
System.out.println(integer2);
//拆箱:把包装类类型转换为对应的基本数据类型
Integer integer3 = new Integer(10);
int num2 = integer3.intValue();
System.out.println("拆箱");
System.out.println(num2);
//JDK1.5之后,;自动装箱,自动拆箱
int age = 30;
//自动装箱
Integer integer4 = age;
System.out.println("自动装箱");
System.out.println(integer4);
//自动拆箱
int age2 = integer4;
System.out.println("自动拆箱");
System.out.println(age2);
}
}
-
parsexxx提供基本类型和字符串之间的转换
package com.lin.box.demo02;
public class Test {
public static void main(String[] args) {
//1.基本类型转化为字符串
int num1 = 255;
//1.1使用‘+’号
String s1 = num1 + "";
//1.2使用Integer中的toString方法
String s2 = Integer.toString(num1);
String s3 = Integer.toString(num1,16);
System.out.println(s1);
System.out.println(s2);
System.out.println(s3);
//2.字符串转化为基本类型
System.out.println("-------------");
String s4 = "123";
//2.1使用包装类中的parseXXX静态方法
int num2 = Integer.parseInt(s4);
System.out.println(num2);
//boolean字符串形式转成基本类型,“true” ---> true, 非“true” ---> false
String str = "true";
boolean b = Boolean.parseBoolean(str);
System.out.println(b);
String str2 = "true1";
boolean b2 = Boolean.parseBoolean(str2);
System.out.println(b2);
}
}
注意:需要保证类型兼容,否则会抛出NumberFormatException异常。
整数缓冲区
-
Java预先创建了256个常用的整数包装类型对象
-
在实际引用中,对已创建的对象进行服用
package com.lin.box.demo03;
public class Test {
public static void main(String[] args) {
Integer integer1 = new Integer(1);
Integer integer2 = new Integer(1);
System.out.println(integer1 == integer2);//false
//引用类型的数据存储在堆内存中,比较的是地址值,所以结果为false
Integer integer3 = 100;//自动装箱
Integer integer4 = 100;
System.out.println(integer3 == integer4);//true
//Integer缓冲区中默认保存了-128~127的数据,如果是在这个范围内,会直接从缓冲区中取出数据,地址相同,所以结果为true
Integer integer5 = 200;//自动装箱
Integer integer6 = 200;
System.out.println(integer5 == integer6);//false
//超出这个范围,会重新new一个对象,地址不同,所以结果为false
}
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】