Java 中的包装类
相信各位小伙伴们对基本数据类型都非常熟悉,例如 int、float、double、boolean、char 等。基本数据类型是不具备对象的特性的,比如基本类型不能调用方法、功能简单。。。,为了让基本数据类型也具备对象的特性, Java 为每个基本数据类型都提供了一个包装类,这样我们就可以像操作对象那样来操作基本数据类型。
基本类型和包装类之间的对应关系:
包装类主要提供了两大类方法:
1. 将本类型和其他基本类型进行转换的方法
2. 将字符串和本类型及包装类互相转换的方法
我们以 Integer 包装类为例,来看下包装类的特性。
Integer 包装类的构造方法:
如下代码所示:
Integer包装类的常用方法:
Java 中基本类型和包装类之间的转换
基本类型和包装类之间经常需要互相转换,以 Integer 为例(其他几个包装类的操作雷同哦):
在 JDK1.5 引入自动装箱和拆箱的机制后,包装类和基本类型之间的转换就更加轻松便利了。
那什么是装箱和拆箱呢?我们分别来看下
装箱:把基本类型转换成包装类,使其具有对象的性质,又可分为手动装箱和自动装箱
// 自动封箱/拆箱是JDK1.5的特性之一 // 将基本类型的数据直接赋值给了对应的引用类型的对象 --- 自动封箱 // 自动封箱在底层会默认调用Integer类身上的静态方法valueOf Integer in = Integer.valueOf(i); Integer in = i;
拆箱:和装箱相反,把包装类对象转换成基本类型的值,又可分为手动拆箱和自动拆箱
Integer in = new Integer(5); // 将引用类型的对象直接赋值给了对应的基本类型的变量 --- 自动拆箱 // 自动拆箱在底层会默认调用对象身上的***Value() // int i = in.intValue(); int i = in;
实例:
public class IntegerDemo2 { public static void main(String[] args) { // Integer i1 = Integer.valueOf // 如果值不在-128~127范围内 // 底层的valueOf方法是调用了构造方法来返回一个新的对象 // 如果值在-128~127的范围内的时候 // 从cache数组中的对应下标位置上取值 Integer i1 = -125; Integer i2 = -125; System.out.println(i1 == i2); Integer in = 400; int i = 400; // 当包装类和对应的基本类型在运算的时候会进行自动拆箱 System.out.println(in == i); } }
Java 中基本类型和字符串之间的转换
在程序开发中,我们经常需要在基本数据类型和字符串之间进行转换。
其中,基本类型转换为字符串有三种方法:
1. 使用包装类的 toString() 方法
2. 使用String类的 valueOf() 方法
3. 用一个空字符串加上基本类型,得到的就是基本类型数据对应的字符串
再来看,将字符串转换成基本类型有两种方法:
1. 调用包装类的 parseXxx 静态方法
2. 调用包装类的 valueOf() 方法转换为基本类型的包装类,会自动拆箱
注:其他基本类型与字符串的相互转化方法都类似
实例:
public class IntegerDemo3 { public static void main(String[] args) { Integer in = new Integer("-284"); System.out.println(in); int i = Integer.parseInt("259"); System.out.println(i); Double dou = new Double("3.954"); System.out.println(dou); // 不考虑大小写的情况只要不是true那么就是false Boolean b = new Boolean("true"); System.out.println(b); // NaN是唯一的一个值 // NaN与任何东西都不相等,包括自己本身 // System.out.println(Double.NaN == Double.NaN); System.out.println(Double.isNaN(5.8 / 4.32)); } }
运行结果:
-284 259 3.954 true false
Character 方法
下面是Character类的方法:
序号 | 方法与描述 |
---|---|
1 | isLetter() 是否是一个字母 |
2 |
isDigit() 是否是一个数字字符 |
3 |
isWhitespace() 是否是一个空格 |
4 |
isUpperCase() 是否是大写字母 |
5 |
isLowerCase() 是否是小写字母 |
6 |
toUpperCase() 指定字母的大写形式 |
7 |
toLowerCase() 指定字母的小写形式 |
8 |
toString() 返回字符的字符串形式,字符串的长度仅为1 |
对于方法的完整列表,请参考的 java.lang.Character API 规范。