四:包装类
①:包装类的定义
在Java中,很多类的方法都需要接收引用类型的对象,此时就无法将一个基本数据类型的值传入。为了解决这样的问题,JDK中提供了一系列的包装类,通过这些包装类可以将基本数据类型的值包装为引用数据类型的对象。包装类都在java.lang包中。
②:包装类的继承关系
③:装箱和拆箱(基本数据类型和引用数据类型的相互转换)
装箱:基本数据类型=>引用数据类型
拆箱:引用数据类型=>基本数据类型
例:
public class Example {
public static void main(String[] args) {
//装箱:基本数据类型=>引用数据类型
//【1】调用构造方法--不推荐使用
int num=20;
Integer integer=new Integer(num);
System.out.println(integer.toString());//运行结果: 20
//【2】调用静态方法valueOf()--推荐使用
System.out.println(Integer.valueOf(num).toString());//运行结果: 20
//拆箱:引用数据类型=>基本数据类型
int sum=integer.intValue();
System.out.println(sum);//运行结果:20
}
}
④:分析包装类构造方法和相应的方法
- 构造方法 说明
- Byte(byte value) 构造一个新分配的 Byte 对象,以表示指定的 byte 值。
- Short(short value) 构造一个新分配的 Short 对象,用来表示指定的 short 值。
- Integer(int value) 构造一个新分配的 Integer 对象,它表示指定的 int 值。
- Long(long value) 构造新分配的 Long 对象,表示指定的 long 参数。
- Float(float value) 构造一个新分配的 Float 对象,它表示基本的 float 参数。
- Double(double value) 构造一个新分配的 Double 对象,它表示基本的 double 参数。
- 包装类静态方法 说明
- static Byte.valueOf(byte b) 返回表示指定 byte 值的一个 Byte 实例
- static Short.valueOf(short s) 返回表示指定 short 值的 Short 实例
- static Integer.valueOf(int i) 返回一个表示指定的 int 值的 Integer 实例。
- static Long.valueOf(Long l) 返回表示指定 long 值的 Long 实例。
- Static Float.valueOf(float f) 返回 float 参数的字符串表示形式。
- Static Double.valueOf(double d) 返回表示指定的 double 值的 Double 实例。
例:(Integer类)
- Intger类除了具有Object类的所有方法外(Integer类继承于Number,Number继承于Object),还有一些特有的方法
+方法 - int intValue() 将Integer类型的值以int类型返回
System.out.println(Integer.valueOf(10).intValue());//运行结果:10(返回的值是int类型)
+静态方法
- static String toBinaryString(int i) 以二进制无符号整数形式返回一个整数的字符串
System.out.println(Integer.toBinaryString(10));//运行结果:1010(十进制10对应二进制为1010)
`
- static String toHexString(int i) 以十六进制无符号整数形式返回一个整数的字符串
System.out.println(Integer.toHexString(10));//运行结果:a(十进制10对应十六进制a)
- static String toOctalString(int i) 以八进制无符号整数形式返回一个整数的字符串
System.out.println(Integer.toOctalString(10));//运行结果:12(十进制10对应八进制12)
- static int compare(int x, int y) 比较两int数值。 x>y 返回 1;x<y 返回 -1;x=y 返回 0
System.out.println(Integer.compare(30, 20));//运行结果: 1
- static Integer valueOf(int i) 返回Integer实例表示指定的int价值。
System.out.println(Integer.valueOf(10));//运行结果:10 (注意:返回的数据类型是Integer)
- static Integer valueOf(String s) 返回Integer对象保存指定值的String.
System.out.println(Integer.valueOf("10"));//运行结果:10(注意:返回的数据类型是Integer)
- static Integer valueOf(String s, int radix) 返回Integer对象保存从指定的String中用第二个参数给出的基数进行解析时。
System.out.println(Integer.valueOf("3",2));//运行结果报错
//radix的参数为2表示第一个参数s必须为二进制数的字符串(注意:返回的数据类型是Integer)
System.out.println(Integer.valueOf("10",2));//运行结果:2(二进制10对应十进制结果为2)
//注意:返回的数据类型是Integer
- static int parseInt(String s) 将字符串参数解析为带符号的十进制整数。
System.out.println(Integer.parseInt("0000023000"));//运行结果:23000
例:(Character类)
+装箱和拆箱
//【1】装箱
char str='a';
//这种方式不建议使用
Character objcharacter1=new Character(str);
//推荐使用这种方式
Character objcharacter2=Character.valueOf(str);
//【2】拆箱
char str2=objcharacter2.charValue();
- static char toUpperCase(char ch) 使用UnicodeData文件中的大小写映射信息将字符参数转换为大写。
System.out.println(Character.toUpperCase('a'));//运行结果:A
- static char toLowerCase(char ch) 使用UnicodeData文件中的大小写映射信息将字符参数转换为小写。
System.out.println(Character.toLowerCase('A'));//a
- static boolean isWhitespace(char ch) 根据Java确定指定字符是否为空白。
System.out.println(Character.isWhitespace(' '));//运行结果 true
- static boolean isUpperCase(int codePoint) 确定指定字符(Unicode代码点)是否为大写字符。
System.out.println(Character.isUpperCase('A'));//运行结果 true
- static boolean isLowerCase(char ch) 确定指定字符是否为小写字符。
System.out.println(Character.isLowerCase('a'));//运行结果 true
注:其他类,方法请查阅相应的API文档
java.lang.Integer
java.lang.Character