一、包装类的分类
1、八种基本数据类型相应的引用类型—包装类
|
基本数据类型 | 包装类 |
| boolean | Boolean |
| char | Character |
| bety | Bety |
| short | Short |
| int | Integer |
| long | Long |
| float | Float |
| double | Double |
2、类图

二、包装类和基本数据的转换(以Integer为例)
jdk5 前:手动装箱和拆箱
1、手动装箱 int->Integer
int n1 = 100;
Integer integer = new Integer(n1);//方式 1
Integer integer1 = Integer.valueOf(n1);//方式 2
注意:关于valueOf方法
如果 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);
}
2、手动拆箱 Integer -> int
int i = integer.intValue();
jdk5 后:自动装箱和拆箱
1、自动装箱 int->Integer
int n2 = 200;
Integer integer2 = n2; //底层使用的是 Integer.valueOf(n2)
2、自动拆箱 Integer->int
int n3 = integer2; //底层仍然使用的是 intValue()方法
三、包装类型(以Integer为例)和 String 类型的相互转换
1、包装类->String
Integer i = 100;//自动装箱
String str1 = i + "";//方式 1
String str2 = i.toString();//方式 2
String str3 = String.valueOf(i);//方式 3
2、String -> 包装类
String str4 = "12345";
Integer i2 = Integer.parseInt(str4);//使用到自动装箱
Integer i3 = new Integer(str4);//构造器
四、Integer 类和 Character 类的常用方法
1、Integer 类(方法都是静态的)
System.out.println(Integer.MIN_VALUE); //返回最小值
System.out.println(Integer.MAX_VALUE);//返回最大值
toString(int i, int radix):String//将i转成radix进制的String字符串,并返回
toUnsignedString(int i, int radix):String//将i转成无符号的radix进制的String字符串,并返回
toHexString(int i):String//将i转成16进制的String字符串,并返回
toOctalString(int i):String//将i转成8进制的String字符串,并返回
toBinaryString(int i):String//将i转成2进制的String字符串,并返回
toString(int i):String//将i转成String字符串,并返回
toUnsignedString(int i):String//将i转成无符号的String字符串,并返回
parseInt(String s, int radix):int//将s看成radix进制的有符号整型,将其转化为十进制的int整型,并返回
parseInt(String s):int//将s转成十进制的int整型,并返回
parseUnsignedInt(String s, int radix)//将s看成无符号的radix进制的有符号整型,将其转化为十进制的int整型,并返回
parseUnsignedInt(String s)//调用parseUnsignedInt(s, 10)
2、Character 类
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'));//转成小写
五、equals和==的区别
1、==是一个比较运算符
A)既可以判断基本类型,又可以判断引用类型
B)如果判断基本类型,判断的是值是否相等
C)如果判断引用类型,判断的是地址是否相等,即判定是不是同一个对象
2、equals:是Object类中的方法,只能判断引用类型
默认判断的是地址是否相等,子类中往往重写该方法,用于判断内容是否相等。
String s = new String("123");
boolean x = "123".equals(s);//true
Integer n = new Integer(123);
boolean x = new Integer(123).equals(n);//true
备注:
以上若有明显错误的地方,可以私信我哦,谢谢~
2万+

被折叠的 条评论
为什么被折叠?



