包装类
大约 2 分钟
包装类
包装类的分类
WrapperType.java
- 针对八种基本数据类型相应的引用类型一包装类
- 有了类的特点,就可以调用类中的方法

包装类和基本数据的转换
演示
Integer01.java
包装类 和 基本数据类型的相互转换,这里以 int 和 Integer 演示
- jdk5 前的手动装箱和拆箱方式,装箱: 基本类型 --> 包装类型,反之,拆箱
- jdk5 以后(含jdk5)的自动装箱和拆箱方式
- 自动装箱底层调用的是 valueOf 方法,比如 Integer.valueOf()
- 其它包装类的用法类似,
public class Integer01 {
public static void main(String[] args) {
/**
* jdk5前是手动装箱和拆箱
* 演示 int <---> Integer 的装箱和拆箱
*/
// 手动装箱 int ---> Integer
int n1 = 100;
Integer integer = new Integer(n1);
//或
Integer integer1 = Integer.valueOf(n1);
// 手动拆箱 int <--- Integer
int i = integer.intValue();
/**
* jdk5 后是自动装箱和拆箱
* 演示 int <---> Integer 的装箱和拆箱
*/
// 自动装箱 int ---> Integer
int n2 = 100;
Integer integer2 = n2;
// 自动拆箱 int <--- Integer
int i2 = integer;
}
测试题
WrapperExercise01.java
下面的代码是否正?为什么?
Double d = 100d; Float f = 1.5f;
如下两个题目输出结果相同吗?各是什么?
Object obj1 = true? new Integer(1) : new Double(2.0); System.out.println(obj1); // 输出什么?
Object obj2; if(true) obj2 = new Integer(1); else obj2 = new Double(2.0); System.out.println(obj2); // 输出什么 ?
包装类型和 String 类型的相互转换
WrapperVsString.java
案例演示, 以 Integer 和 String 转换为例,其它类似
包装类型 --> String 类型
Integer i = 10; // 方式1: String s1 = i.toString(); // 方式2: String s2 = String.valueOf(i); // 方式3: String s3 = i + ""; System.out.println(s3);
String类 --> 包装类
String i2 = "十"; // 方式1: Integer j = new Integer(i2); // 方式2: Integer j2 = Integer.valueOf(i2);
Integer 类和 Character 类的常用方法
- 返回最小值
Integer.MIN_VALUE
- 返回最大值
Integer.MAX_VALUE
- 判断是不是数字
Character.isDigit('a')
- 判断是不是字母
Character.isLetter('a')
- 判断是不是大写
Character.isUpperCase('a')
- 判断是不是小写
Character.isLowerCase('a')
- 判断是不是空格
Character.isWhitespace('a')
- 转成大写
Character.toUpperCase('a')
- 转成小写
Character.toLowerCase('A')
包装类面试题
WrapperExercise02.java
看看下面代码,输出什么结果?为什么?
public class WrapperExercise02 {
public static void main(String[] args) {
Integer i = new Integer(1);
Integer j = new Integer(1);
System.out.println(i == j); // false
Integer m = 1;
Integer n = 1;
System.out.println(m == n); // true
Integer x = 128;
Integer y = 128;
System.out.println(x == y); // false
}
}