8种基本类型对应的包装类:
基本类型包括整数类型(byte,short,int,long),字符类型 char,浮点类型(float、double),布尔类型 boolean
基本数据类型 | 包装类 |
byte 1字节 -128(-2^7) ~ 127(2^7 -1) | Byte |
short 2字节 0x8000(-2^15) ~ 0xffff(2^15 - 1) | Short |
int 4字节 0x80000000(-2^31) ~ 0xffffffff(2^31 -1) | Integer |
long 8字节 | Long |
char 2字节 | Character |
float 4字节 | Float |
double 8字节 | Double |
boolean (没强制指定,一般是 1字节) | Boolean |
以Integer为例,
装箱:将基本类型转换为包装类
Integer i1 = new Integer(10);
Integer i2 = Integer.valueOf(10);//推荐,带有缓存
拆箱:将包装类转换为基本类型
int val = i1.intValue();
jdk1.5后,提供自动装箱(Autoboxing)和自动拆箱(AutoUnboxing)
Integer i1 = 10;
int value = i1;
String对象 <--> 基本类型变量
String --> int 等 :
int Integer.parseInt(String str)
int 等 --> String
String String.valueOf(int val) 或者 10 + “”;
当然,可以构造为Integer,然后自动拆箱;这样就麻烦了。。
String <--> 包装类
String --> Integer
Integer i1 = new Integer("12"); 或者 Integer i1 = Integer.valueOf("12")
包装类 --> String
String str = 任何对象.toString();
例子:
// String --> Integer Integer i1 = Integer.valueOf("12");//12 // Integer --> String String str = i1.toString();//"12" // int --> Integer Integer i2 = 12;//这是自动装箱 还可以手动 Integer i2 = Integer.valueOf(12); // Integer --> int int val = i2;//这是自动拆箱 还可以手动 int val = i2.intValue(); // String -->int int i3 = Integer.valueOf("12");//12 这是 String --> Integer 后自动拆箱 -> int int i4 = Integer.parseInt("12");//12 直接使用 Integer 的 static函数 更便捷。 // int --> String String str2 = i3 + "";//数和String加,自动变为String String str3 = String.valueOf(12);//"12"