一、基本数据类型的包装类
1.让基本数据类型通过包装,也成为一个类,就可以创建对象了,让基本数据类型也能体现面向对象的象征
2.有些场景下,是只能使用对象,例如集合中的元素只能是引用数据类型,此时我们就可以使用包装类的对象来代替基本数据
3.对象比基本数据类型的变量要强大
4.基本数据类型使用上的效率要比包装类型要高
基本数据类型 包装类 父类
byte Byte
short Short
int Integer
long Long
float Float
double Double Number(数字类型的包装类的父类) 为抽象类,不能实例化
boolean Boolean Object
char Character Object
eg:
int a = null; 该行报错
Integer a = new Integer(10);
Integer b = new Integer(10);
System.out.println(a + 5); //10 + 5为15
System.out.println(a == b); //此处比较内存地址 false
System.out.println(a.equals(b)); //比较用 equals或者compare true
二、自动装箱和自动拆箱
int a = 10;
//自动装箱:将基本数据类型转换为对应的包装类型
Integer b = a;
//自动拆箱:将包装类型转换为对应的基本数据类型
a = b;
b = 1000; //b = 100;
Integer c = 1000; //Integer c = 100;
System.out.println(b == c); //100 true ; 1000 false
在内存中为包装类型的整数型提供了一个常量池,该常量池大小为一个字节[-128 127]
直接为整数型赋值数字时,如果在该范围内,直接引用该内存;如果没有在该范围内,才会去创建对象
1.将Integer转换为int 作用就等同于自动拆箱
int temp = b.intValue();
2.将Double转换为double
Double d = 15.5;
d.doubleValue();
3.比较两个数字的大小 b > c返回值为1;b == c 返回值为0;b < c返回值为-1
int r = b.compareTo(c);
System.out.println(r); //0
三、静态方法
1.将字符串类型的数字转换为数字类型 (""内数字只能是十进制数字)
int x = Integer.parseInt("10");
System.out.println(x); //10
2.将数字转换为指定格式的字符串
十进制
String str = Integer.toString(x);
System.out.println(str); //10
二进制
str = Integer.toBinaryString(x);
System.out.println(str); //1010
八进制
str = Integer.toOctalString(x); //12
System.out.println(str);
十六进制
str = Integer.toHexString(x); //a
System.out.println(str);
3.可以将指定的数字转换为指定进制的方式显示 (指定的数字,几进制)
str = Integer.toUnsignedString(100, 16);
System.out.println(str);
4.取反 int y = Integer.reverse(189); 先转换为二进制再按位取反
5.返回较大值 Integer.max(10, 20); 20
6.将基本数据类型转换为包装类型,就是自动装箱
Integer.valueOf(10);
7.最大的表数
System.out.println(Byte.MAX_VALUE); //127
8.最小的表数
System.out.println(Byte.MIN_VALUE); //-128
int[] ii = new int[Integer.MAX_VALUE]; //使数组长度最大
9.字节数
System.out.println(Byte.BYTES); //1
10.二进制的位数
System.out.println(Byte.SIZE); //8