基本数据类型、包装类、String三者之间的转化

本文详细介绍了Java中基本数据类型与包装类之间的相互转换方法,包括手动装箱、拆箱及字符串转换等内容,并通过实例展示了不同情况下的转换过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

基本数据类型与包装类之间的转化

基本数据类型 To 包装类:调用包装类的构造方法,可以查看源码查看可以通过哪些构造方法进行转化。

Integer a = new Integer(123);
Integer b = new Integer("123");

包装类 To 基本数据类型:调用包装类的xxxValue()方法

Integer a = new Integer(12);
int b = a.intValue();

JDK 5.0新特性:自动装箱和自动拆箱

自动装箱(基本数据类型 To 包装类):直接将基本数据类型定义变量的值赋给包装类变量。

// 自动装箱
int num = 10;
Integer a = num;

boolean b = true;
Boolean b_B = b;

自动拆箱(包装类 To 基本数据类型):直接将包装类变量赋值给基本数据类型。

// 自动拆箱
Integer a= new Integer("123");
int b = a;

基本数据类型、包装类和String之间的转化

基本数据类型、包装类 To String

// 1.直接在基本数据类型后加 “ ”
int a = 10;
String str = a + "";

// 2.调用String重载方法valueOf()
float f = 1.3f;
String str2 = String.valueOf(f); // 包装类同样传入参数即可(自动装箱)

String To 基本数据类型、包装类

String str = "123";
String b = "true";
String b2 = "true1";
/* 报错
int num = (int)str;
Integer int1 = (Integer)str; // 不存在父子类关系,不能强转
*/


// 调用包装类的parseXXX方法
Integer.parseInt(str); // 123
Boolean.parseBoolean(b); // ture
Boolean.parseBoolean(b2); // false。只有标准形式“true”,不忽略大小写。其他都为false。

练习题

// 1
Object obj = true ? new Integer(1) : new Double(2.0);
System.out.println(obj) // 1.0
// 编译时 Integer 类型已经提升为 Double 类型

// 2
Object obj2;
if(true)
    obj2 = new Integer(1);
else
    obj2 = new Double(2.0);
System.out.println(obj2); // 1

// 3
Integer i = new Integer(1);
Integer j = new Integer(1);
System.out.println( i == j ); // false

Integer m = 1;
Integer n = 1;
System.out.println( m == n ); // true。从IntegerCache从提取

Integer x = 128;
Integer y = 128;
System.out.println( x == y ); // false。超过了IntegerCache存储数值范围,则new。
/*
Integer内部定义了IntegerCache结构,IntegerCache中定义了Integer[],保存了从-128~127之间的整数。如果使用自动装箱的方式给Integer赋的值在此范围内,则Integer会直接使用数组中的元素,不会再new一个元素。
*/

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值