包装类
Java 中提供了两个类型系统,基本数据类型 和 引用数据类型。可以把基本数据类型转换为引用数据类型的类就叫做包装类。
Java 针对 8 种基本数据类型都定义了对应的 包装类(封装类):
基本数据类型 | 包装类 |
---|---|
byte | Byte |
short | Short |
int | Integer |
long | Long |
float | Float |
double | Double |
boolean | Boolean |
char | Character |
java
public static void main(string[] args) {
int num = 520;
// Integer obj = new Integer(520); // 已弃用
Integer obj = Integer.valueOf(520);
}
自定义包装类
理解包装类内部是什么实现的。
java
class MyInteger {
int value;
public MyInteger() {
}
public MyInteger(int value) {
this.value = value;
}
@Override
public String toString() {
return String.valueOf(this.value);
}
}
包装类和基本数据类型转换
基本类型 转 包装类(装箱)
基本数据类型只能表示单一的值,把他变为包装类之后,就可以拥有和 类 一样的多的方法使用了。
方式一:使用包装类的构造函数(已过时)javapublic class warpperTest { @Test public void junitTest() { int num = 10; Integer i1 = new Integer(num); //基本数据类型转为包装类 System.out.println(i1.toString()); float num1 = 12.5F; Float f1 = new Float(num1); System.out.println(f1.toString()); boolean bool = false; Boolean b1 = new Boolean(bool); System.out.println(b1); //false Boolean b2 = new Boolean("TRue"); System.out.println(b2); //true } }
TIP
Boolean 包装类比较特殊,它是忽略大小写和 "true" 进行比较,如果是和 "true" 相同,就返回 true,其他情况都返回 false。
方式二:使用包装类的
valueOf()
方法javapublic class warpperTest { @Test public void junitTest() { Integer num = Integer.valueOf(100); System.out.println(num.toString()); boolean bool = Boolean.valueOf("FALSE"); System.out.println(bool); } }
TIP
无论是 构造函数的方式,还是
valueOf()
的方式,都是可以传递一个字符串作为参数的,只不过该字符串必须和基本数据类型对应,例如 "12.3F" 对应 12.3F,"true" 对应 true。
包装类 转 基本类型(装箱)
基本数据类型 转 包装类需要使用 xxxValue()
方法,例如:Integer -> intValue()。
java
@Test
public void test1() {
Integer i = Integer.valueOf(10);
int i1 = i.intValue();
System.out.println(i1); //10
Boolean b = Boolean.valueOf(true);
boolean b1 = b.booleanValue();
System.out.println(b1); //true
}
自动装箱与拆箱
由于上述的转换在开发中使用的太过频繁,因此从 JDK 5.0 开始,基本数据类型和包装类的装箱、拆箱可以自动完成。
自动装箱:
java@Test public void test3() { Integer i = 100; System.out.println(i); //100 }
自动拆箱:
java@Test public void test3() { Integer i = 100; int i1 = i; System.out.println(i1); //100 }
字符串与包装类转换
字符串 转 基本类型/包装类
字符串 转 基本数据类型/包装类 时,使用 包装类.parsexxx() 方法。
java
public class warpperTest {
@Test
public void junitTest() {
String s1 = "123";
int i = Integer.parseInt(s1);
System.out.println(i);
String s2 = "true";
boolean b = Boolean.parseBoolean(s2);
System.out.println(b);
}
}
基本类型/包装类 转 字符串
基本数据类型/包装类 转 字符串时,有 3 中方式:
- 使用 toString() 方法
- 使用 String.valueOf() 方法
- 使用 变量 + "" 方法
java
public class warpperTest {
@Test
public void junitTest() {
Integer i1 = Integer.valueOf(100);
//使用 String.valueOf()
String s3 = String.valueOf(i1);
//使用 toString()
String s4 = i1.toString();
//使用 变量 + ""
String s5 = i1 + "";
}
}