一,拆箱与装箱
(1)包装类
数据类型 | 包装类 | 细分 | 直接继承 |
---|---|---|---|
byte | Byte | 数值型包装类 | Number类 |
long | Long | 数值型包装类 | Number类 |
int | Integer | 数值型包装类 | Number类 |
float | Float | 数值型包装类 | Number类 |
double | Double | 数值型包装类 | Number类 |
char | Character | 对象型包装类 | Object类 |
boolean | Boolean | 对象型包装类 | Object类 |
(2)装箱:基本数据类型变为包装类型,拆箱:包装类型变为基本数据类型
- 手工装箱与拆箱
package 基本数据包装;
public class TestPack {
public static void main(String[] args) {
Integer in = new Integer(20);//手工装箱
int temp = in.intValue();//手工拆箱
System.out.println(temp*3);
Boolean bo = new Boolean(true);
boolean flag = bo.booleanValue();
System.out.println(flag);
}
}
- 自动装箱与拆箱
package 基本数据包装;
public class TestPack {
public static void main(String[] args) {
Integer in = 20;//自动装箱
int temp = in;//自动拆箱
System.out.println(temp*3);
}
}
- 使用包类的构造方法与直接赋值(类似于String类)
package 基本数据包装;
public class TestPack {
public static void main(String[] args) {
Integer in = 20;
Integer in1 = 20;
Integer in2 = new Integer(20);
System.out.println(in==in1);
System.out.println(in==in2);
System.out.println(in.equals(in1));//进行内容的比较
}
}
调试图:
(3)Object类存放基本数据类型:因为Object可以接收一切的引用类型,也可以接受包装类型,将基本数据类型自动装箱成为包装类型,再自动向上转型成为Object类型
package 基本数据包装;
public class TestPack {
public static void main(String[] args) {
Object obj = 20;//自动装箱与向上转型
int temp = (Integer)obj;//向下转型后自动拆箱
System.out.println(temp);
}
}
二,数据类型的转换(String类型与基本数据类型的转换)
- String—>int ,double,float,boolean
package 基本数据包装;
public class TestPack {
public static void main(String[] args) {
String s1 = "100";
String s2 = "100.0";
String s3 = "true";
String s4 = "falseeee";
System.out.println(Integer.parseInt(s1));
System.out.println(Float.parseFloat(s2));
System.out.println(Double.parseDouble(s2));
System.out.println(Boolean.parseBoolean(s3));
//Boolean.parseBoolean()中的参数如果不是true或false,结果都是输出false
System.out.println(Boolean.parseBoolean(s4));
}
}
- int ,double,float,boolean—>String
1.任何基本数据类型与字符串使用了“+”操作,都表示变为String类,但是会产生“垃圾”
package 基本数据包装;
public class TestPack {
public static void main(String[] args) {
int num = 100;
String s = num + "100";
System.out.println(s);
}
}
2.利用String类的String.valueOf(数据类型)
package 基本数据包装;
public class TestPack {
public static void main(String[] args) {
int num = 100;
float num2 = 100.9f;
double num3 = 100.8;
System.out.println(String.valueOf(num)+9);
System.out.println(String.valueOf(num2));
System.out.println(String.valueOf(num3));
}
}