1. Java中的数据类型
2. 基本数据类型及对应的包装类
基本数据类型 | 对应的包装类 |
---|---|
int | Integer |
char | Character |
float | Float |
double | Double |
long | Long |
short | Short |
boolean | Boolean |
byte | Byte |
3. 装箱和拆箱
实现基本数据类型和包装类的转换:
- 装箱(Boxing) 是将基本数据类型转换为对应的包装类对象;
int num = 10;
Integer boxedNum = new Integer(num); // 手动装箱
int num = 10;
Integer boxedNum = num; // 自动装箱
- 拆箱(Unboxing) 则是将包装类对象转换回基本数据类型。
Integer boxedNum = new Integer(10);
int num = boxedNum.intValue(); // 手动拆箱
Integer boxedNum = new Integer(10);
int num = boxedNum; // 自动拆箱
基本数据类型和字符串的转换:
package learn;public class WrapTest1 {public static void main(String[] args) {// 1. 基本数据类型转字符串int t1 = 2;String t2 = Integer.toString(t1);System.out.println("int转String类型对象t2:"+t2);// 2. 字符串转基本数据类型// 2-1. 包装类的parseint t3 = Integer.parseInt(t2);System.out.println("String转int类型对象t3:"+t3);// 2-2. 包装类的valueOfint t4 = Integer.valueOf(t2);System.out.println("String转int类型对象t4:"+t4);}
}
int转String类型对象t2:2
String转int类型对象t3:2
String转int类型对象t4:2
3. 思考
package learn;public class WrapTest1 {public static void main(String[] args) {Integer one = new Integer(100);Integer two = new Integer(100);// 比较的是两个对象的引用,falseSystem.out.println("one=two? " + (two==one)); Integer three = 100;// trueSystem.out.println("three=100? " + (three==100));Integer four = 100;//没超出字面量,引用的是缓冲区的three,返回trueSystem.out.println("three=four? " + (three==four)); Integer five = 200; //trueSystem.out.println("five=200? " + (five==200));Integer six = 200; //超出字面量范围-128-127,每次装箱都会new一个新对象,所以返回falseSystem.out.println("five=six? " + (five==six));Double seven = Double.valueOf(100);Double eight = Double.valueOf(100);// falseSystem.out.println("seven=eight? " + (seven==eight));}
}