基本数据类型 | 包装类 |
char | Character |
byte | Byte |
short | Short |
int | Integer |
long | Long |
float | Float |
double | Double |
boolean | Boolean |
其中Character 、Boolean的父类是Object,其余的父类是Number
public void test1() { Integer a = 10; //等价于 Integer a = Integer.valueOf(10); }
public void test1() { int a = new Integer(10); //等价于int a = new Integer(10).intValue(); }
既然知道了装箱和拆箱,那么下面的代码,我们就可以很明白的分析出来为什么会报空指针的异常了:
public void test1() { Integer a = null; int b = a; }
前面已经讲解了基本数据类型以及包装类之间的相互转换,即自动装箱和拆箱;下面看看基本数据类型与String类之间的转换、String类与包装类之间的转换。
public void test1() { int a = 3; String s = String.valueOf(a); System.out.println(s.getClass()); //class java.lang.String }
public void test2() { String s = "12"; int a = Integer.parseInt(s); }
public void test3() { String s = "12"; Integer a = new Integer(s); System.out.println(a.getClass()); //class java.lang.Integer }
public void test4() { Integer a = new Integer(12); String s = a.toString(); String s1 = Integer.toString(a); System.out.println(s.getClass()); System.out.println(s1.getClass()); //class java.lang.String }复制代码
试着写一写,看看自己会不会:
@Test public void test5() { Integer i = new Integer(1); Integer j = new Integer(1); System.out.println(i == j); Integer m = 1; Integer n = 1; System.out.println(m == n); Integer x = 128; Integer y = 128; System.out.println(x == y); }复制代码
输出结果:false、true、false
用一张图片来收尾~
留言与评论(共有 0 条评论) “” |