-
装箱和拆箱
- 装箱:基本数据类型转为包装类
- 拆箱:包装类转为基本数据类型
- jdk1.5(即jdk5.0)之后的版本都提供了自动装箱和自动拆箱功能
-
基本数据类型的包装类
-
举两个例子,看一下
1 public class Demo01 { 2 3 public static void main(String[] args) { 4 5 6 7 int i = 3;//基本数据类型 8 Integer i1 = new Integer(i);//包装类 装箱 9 System.out.println(i); 10 System.out.println(i1); 11 12 13 //把字符串的100 转成 数字的100 14 String s = "100"; 15 //String s = "abc"; 错误的, java.lang.NumberFormatException 16 Integer i2 = new Integer(s); 17 System.out.println(i2); 18 19 20 int i3 = i1.intValue();//拆箱 21 System.out.println(i3); 22 23 24 // s -- > int 25 int i4 = Integer.parseInt(s);//将字符串转换为数字的方式 26 System.out.println(i4); 27 28 29 30 //jdk 1.5 后 实现自动的装箱和拆箱 31 int j = 5; 32 33 Integer j1 = j; // 自动装箱 //Integer j3 = new Integer(j); 34 35 int j2 = j1; // 自动拆箱 36 37 38 //打印int类型的最大值和最小值 39 System.out.println(Integer.MAX_VALUE); 40 System.out.println(Integer.MIN_VALUE); 41 42 43 //进制转换 44 //十进制转十六进制 45 System.out.println(Integer.toHexString(1000)); 46 //十进制转八进制 47 System.out.println(Integer.toOctalString(9)); 48 //十进制转二进制 49 System.out.println(Integer.toBinaryString(3)); 50 51 52 53 Integer ii1 = new Integer(1234);//堆内存中取 54 Integer ii2 = 1234;//去方法区中找 55 int ii3 = 1234; //ii1 拆箱 int 56 57 System.out.println(ii1 == ii3);//T 58 59 //虽然属性值相同, 但是引用的地址不同, “==” 比较的是引用的地址 60 System.out.println(ii1==ii2);//F 61 62 //Integer 类中重写了equals方法, 比较的是属性值 63 System.out.println(ii1.equals(ii2));//T 64 65 66 //byte [-128 - 127] 67 68 Byte b1 = -123; 69 Byte b2 = -123; 70 71 System.out.println(b1 == b2); 72 System.out.println(b1.equals(b2)); 73 74 75 76 }
1 public class Demo02_Character { 2 3 public static void main(String[] args) { 4 5 System.out.println((int)'1'); 6 7 char c1 = 'A'; 8 char c2 = 49; 9 System.out.println("c2 = " + c2); 10 11 Character c3 = c1; //Character c4 = new Character(c1); 12 13 System.out.println(Character.isDigit(c1));//判断字符是否为数字 F 14 System.out.println(Character.isLetter(c1));//判断字符是否为字母 T 15 System.out.println(Character.isLowerCase(c1));//判断是否为小写字母 F 16 System.out.println(Character.isUpperCase(c1));//判断是否为大写字母 T 17 18 System.out.println(Character.toLowerCase('C'));//大写转小写 c 19 System.out.println(Character.toUpperCase('a'));//小写转大写 A 20 21 }
-
对于byte/short/long/float/double和Integer(int)类用法类似