包装类
在java中面相对象的思想总结为万物皆对象,但是基本数据类型与引用数据类型对象的概念有冲突,由此创建了包装类(针对每一种数据类分别创建了一个引用类型对应的类biang提供方法),在需要使用方法时,现将基本数据类型转换为对应的包装类进行方法的调用。
包装类均位于java.lang包,使用时不需要导入,系统自动导入。
Java中的8个包装类分别是:Byte,Short,Integer,Long,Float,Double,Character,Boolean它们的使用方式都是一样的,可以实现原生数据类型与包装类型的双向转换。
使用包装类基本只做基本数据类型、包装类、String之间的相互转换,其中Character额外提供了对单个字符操作的方法
// 基本数据类、包装类、String字符串之间相互转换
// 基本数据类型转换为包装类
int i = 123;
// 1使用Integer构造方法转换
Integer integer = new Integer(i);// 使用指定数据创建integer对象
// 2自动装箱
// jdk1.5版本以后基本数据类型与对应包装类可以自动转换
integer = i;
// 3使用Integer静态方法形式将基本数据类型转换为包装类
integer = Integer.valueOf(i);
// 包装类转换为基本数据类型
// 1自动拆箱
// jdk1.5版本以后基本数据类型与对应包装类可以自动转换
i = integer;
// 2使用包装类方法进行转换//
i = integer.intValue();
// 包装类与String之间的转换
// 1使用object继承的toString方法
String str = integer.toString();
// 2使用字符串拼接+ 将其自动转换为字符串(本质上还是调用toString)
str = integer + "";
// 使用String静态方法
str = String.valueOf(integer);
// String转换为包装类
// 1使用包装类构造方法
integer = new Integer(str);
// 2使用包装类静态方法
// 需要保证字符串为数字字符串
integer = Integer.valueOf(str);
// 任意基本类型转换为string
// 1使用String静态方法
str = String.valueOf(i);
// 2使用字符串拼接的形式换行
str = "" + i;
//string转换为基本数据类型需要使用包装类
JDK5新特性自动装箱拆箱
- 自动装箱:把基本类型转换为包装类类型 int基本类型可以直接赋值给包装类对象
- 自动拆箱:把包装类类型转换为基本类型 包装类对象可以直接与基本类型进行计算 直接计算时需要进行滤空操作
- java虚拟机为了优化8种基本数据类型的包装对象都提供了缓冲池,缓冲池有大小,一个字节。
char类型包装类Character在拥有基础方法外额外拥有一些对于字符操作的方法
注意:Character提供的方法大部分为静态方法可以使用类名.方法名进行调用
// isDigit(char ch)
// 确定指定字符是否为数字。
char c='a';
System.out.println(c);
System.out.println("是否是数字:"+Character.isDigit(c));
// isLetter(char ch)
// 确定指定字符是否为字母。
System.out.println("是否是字母:"+Character.isLetter(c));
// isLetterOrDigit(char ch)
// 确定指定字符是否为字母或数字。
System.out.println("是否是字母或数字:"+Character.isLetterOrDigit(c));
// isLowerCase(char ch)
// 确定指定字符是否为小写字母。
System.out.println("是否是小写字母:"+Character.isLowerCase(c));
// isUpperCase(char ch)
// 确定指定字符是否为大写字母。
System.out.println("是否是大写字母:"+Character.isUpperCase(c));
// toLowerCase(char ch)
// 使用取自 UnicodeData 文件的大小写映射信息将字符参数转换为小写。
System.out.println("转换为小写字母:"+Character.toLowerCase(c));
// toUpperCase(char ch)
// 使用取自 UnicodeData 文件的大小写映射信息将字符参数转换为大写。
System.out.println("转换为大写字母:"+Character.toUpperCase(c));