对8种基本数据类型进行面向对象的包装。
基本数据类型和包装数据类型
基本数据类型 | 包装数据类型 |
---|---|
byte | Byte |
short | Short |
int | Integer |
long | Long |
float | Float |
double | Double |
char | Char |
boolean | Boolean |
基本数据类型和包装数据类型的区别
- 包装类是类,属于引用数据类型
- 包装类的默认值数null,基本数据类型是各自的零值
- 泛型只能使用包装类
- 包装类更加符合面向对象的编程思想
- 包装类里面有一些数据的操作方法
包装类的常用方法
1.构造方法:
@Test
public void test1() {
//以对应的基本数据类型为参数
Long l1 = new Long(123L);
System.out.println(l1);
//以字符串为参数(Character除外)
Long l = new Long("123");
Long l2 = new Long("wzy"); // NumberFormatException
System.out.println(l2);
Character char1 = new Character('男');
// Character char2 = new Character("男");
}
- 静态常量
- MAX_VALUE 最大容量
- MIN_VALUE 最小容量
@Test
public void test2() {
byte max = Byte.MAX_VALUE;
byte min = Byte.MIN_VALUE;
System.out.println(max);//127
System.out.println(min);//-128
// System.out.println(Byte.SIZE);
}
- 静态方法
int parseInt(String s)//将字符串转化成int类型的变量
Integer valueOf(String s)//将字符串的变量转化成Integer类型的变量
int sum(int a, int b)
int max(int a, int b)
int min(int a, int b)
@Test
public void test3() {
//parseInt后面的第二个参数radix可以理解为将多少进制的数转化为10进制
int i1 = Integer.parseInt("4d2", 16);
System.out.println(i1);
int i2 = 1234;
String hexStr = Integer.toHexString(i2);
System.out.println(hexStr);
}
- 字符串和数字类型之间的转换
1.数字 -> 字符串
1. toString()方法
2. 字符串的拼接: 1 + ""
3. String.valueOf(123)
2. 字符串 -> 数字
1. int i = Integer.parseInt("123")
2. Integer i = Integer.valueOf("123")
3. Integer i = new Integer("123")
- 自动装箱和拆箱
JDK1.5+允许包装类型和基本数据类型之间的自动转换,允许一起运算。
@Test
public void test4() {
int i = 123;
Integer integer = new Integer("456");
Integer integer2 = i;
Integer integer3 = 456;
int j = integer;
System.out.println(i + integer);
}
- 包装类型的缓存机制
如果使用自动装箱创建包装类对象(Integer i = 123;), 如果数值在[-128 , 127]之间,多次创建对象会公用一个对象。
//这两次创建对象用的是同一个对象,地址是一样的。
Integer i1 = 123;
Integer i2 = 127;