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

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

基本数据类型 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一个元素。
*/

 

好的,我可以为您解答这个问题。 在 Java 中,基本数据类型包装类之间可以相互转换。常见的基本数据类型有 int、double、float、boolean、byte、short 和 long,而对应的包装类则是 Integer、Double、Float、Boolean、Byte、Short 和 Long。 将基本数据类型转换包装类可以使用自动装箱的方式,例如: ``` int num = 10; Integer integer = num; // 自动装箱 ``` 将包装类转换基本数据类型可以使用自动拆箱的方式,例如: ``` Integer integer = 10; int num = integer; // 自动拆箱 ``` 另外,在 Java 中,字符串类型 String 也可以转换基本数据类型包装类。例如,将一个字符串转换成整型: ``` String str = "123"; int num = Integer.parseInt(str); ``` 这里使用了 Integer 类的静态方法 parseInt() 将字符串转换为整型。类似的,还有 Double.parseDouble()、Float.parseFloat()、Boolean.parseBoolean()、Byte.parseByte()、Short.parseShort() 和 Long.parseLong() 方法,可以将字符串转换为对应的基本数据类型。 反过来,将一个基本数据类型包装类转换成字符串,可以使用 String.valueOf() 方法,例如: ``` int num = 123; String str = String.valueOf(num); ``` 这里使用了 String 类的静态方法 valueOf() 将整型转换为字符串。类似的,还有 Double.valueOf()、Float.valueOf()、Boolean.valueOf()、Byte.valueOf()、Short.valueOf() 和 Long.valueOf() 方法,可以将基本数据类型包装类转换为对应的字符串。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值