包装类
一、简介
针对八种基本数据类型相应的引用类型
| 基本数据类型 | 包装类 |
|---|---|
| boolean | Boolean |
| char | Character |
| byte | Byte |
| short | Short |
| int | Integer |
| long | Long |
| float | Float |
| double | Double |
| 上面几个父类都是Number |
二、包装类和基本数据的转换
例:int和Integer
装箱:基本数据类型->包装类型
拆箱:包装类型->基本数据类型
jdk5以前手动装箱和拆箱
jdk5以后自动装箱和拆箱
public class Integer01 {public static void main(String[] args) {//jdk5以前手动//手动装箱int n1 = 100;Integer integer = new Integer(n1);Integer integer1 = Integer.valueOf(n1);//手动拆箱int i = integer.intValue();//jdk5后,自动装箱拆箱int n2 = 200;Integer integer2 = n2; // 底层Integer.valueOf(n2)int n3 = integer2; //底层integer.intValue();}}
三、包装类型和String类型的相互转换
例:Integer和String转换
public class WrapperVSString {public static void main(String[] args) {//包装类——>StringInteger i = 100;//方式1String str1 = i + "";//方式2String str2 = i.toString();//方式3String str3 = String.valueOf(i);//String -> 包装类(Integer)String str4 = "123456";Integer i1 = Integer.parseInt(str4);//使用到自动装箱Integer integer = new Integer(str4);//构造器}}
四、包装类的常用方法
Integer类和Character类的常用方法
System.out.println(Integer.MIN_VALUE);//返回最小值System.out.println(Integer.MAX_VALUE);//返回最大值System.out.println(Character.isDigit('a'));//判断是不是数字System.out.println(Character.isLetter('a'));//判断是不是字母System.out.println(Character.isUpperCase('a'));//判断是不是大写System.out.println(Character.isLowerCase('a'));//判断是不是小写System.out.println(Character.isWhitespace('a'));//判断是不是空格System.out.println(Character.toUpperCase('a'));//转成大写System.out.println(Character.toLowerCase('A'));//转成小写
五、Integer创建机制
public class WrapperExercise02 {public static void main(String[] args) {// 如果i在IntegerCache.low(-128)~IntegerCache.high(127),之直接从数组返回// 不在-128~127,直接new Integer(i)/*源码public static Integer valueOf(int i) {if (i >= IntegerCache.low && i <= IntegerCache.high)return IntegerCache.cache[i + (-IntegerCache.low)];return new Integer(i);}*/Integer m = 1;Integer n = 1;System.out.println(m == n); // true 在范围内,直接返回Integer x = 128;Integer y = 128;System.out.println(x == y); // false 不在范围内,newInteger i1 = new Integer(127);Integer i2 = new Integer(127);System.out.println(i1 == i2); // false new的对象,不相等Integer i11 = 127;int i12 = 127;// 只有有基本数据类型,判断的是值是否相同System.out.println(i11 == i12); // trueInteger i13 = 128;int i14 = 128;System.out.println(i13 == i14); // true}}


