Java中的包装类(Wrapper Classes)是基本数据类型的对象包装类。Java为每个基本数据类型(如int
、char
等)提供了对应的包装类,使得基本类型可以被当作对象来处理。这些包装类位于java.lang
包中。
包装类的用途
- 对象化:包装类将基本数据类型包装成对象,因此可以存储在集合类中,例如
ArrayList
、HashMap
等,这些集合只能存储对象而不是基本类型。 - 类型转换:包装类提供了一些有用的方法,可以将字符串等类型转换为基本数据类型。
- 操作功能:包装类提供了额外的功能,比如
Integer
类的parseInt
方法可以将字符串转换为整数。
在JDK5的时候提出了一个机制:自动装箱和自动拆箱自动装箱
自动装箱:把基本数据类型会自动的变成其对应的包装类
自动拆箱:把包装类自动的变成其对象的基本数据类型
在底层,此时还会去自动调用静态方法valueof得到一个Integer对象,只不过这个动作不需要我们自己去操作了。
Integer i1=10
Integer i2 = new Integer( value:10);
//自动拆箱的动作
int i = i2;
//在JDK5以后,int和Integer可以看做是同一个东西,因为在内部可以自动转化。
总结:
成员方法:
数值进制转换
包装类还提供了一些用于数值进制转换的方法,例如toBinaryString()
、toHexString()
等。
-
toBinaryString(int i)
: 将整数转换为二进制字符串。String binaryStr = Integer.toBinaryString(10); // "1010"
-
toHexString(int i)
: 将整数转换为十六进制字符串。String hexStr = Integer.toHexString(255); // "ff"
- toOctalstring(int i) :将整数转换为八进制字符串。
String str2 =Integer.toOctalstring(100); System.out.printin(str2);//144
parseXXX(String s)
parseXXX
方法是静态方法,用于将字符串转换为对应的基本数据类型。它是直接将字符串解析为原始的数值类型。
在类型转换的时候,括号中的参数只能是数字不能是其他,否则代码会报错细节。
8种包装类当中,除了character都有对应的parsexxx的方法,进行类型转换。
-
Integer.parseInt(String s)
: 将字符串转换为int
类型。String str = "123"; int num = Integer.parseInt(str);
-
Double.parseDouble(String s)
: 将字符串转换为double
类型。String str = "3.14"; double num = Double.parseDouble(str);
-
Boolean.parseBoolean(String s)
: 将字符串转换为boolean
类型。String str = "true"; boolean bool = Boolean.parseBoolean(str);
键盘录入的问题:
当我们在使用next,nextInt,nextDouble在接收数据的时候,遇到空格,回车,制表符的时候就停止了键盘录入的是123 123那么此时只能接收到空格前面的数据但是我想要的是接收一整行数据
约定:
以后我们如果想要键盘录入,不管什么类型,统一使用nextLine特点遇到回车才停止。此时数据是String类型,这个时候只需要强制转化即可。
String line=sc.nextLine();
System.out.println(line);
double v=Double.parseDouble(line);
System.out.println(v);