一、基本数据类型包装类的概述
想要对基本类型数据进行更多的操作,最方便的方式就是将其封装成对象。因为在对象描述中就可以定义更多的属性和行为对该基本数据类型进行操作。
二、基本数据类型与包装类的对应关系
基本数据类型 包装类
byte Byte
short Short
int Integer
long Long
float Float
double Double
char Character
boolean Boolean
三、基本数据类型包装类的主要功能
3.1 Integer 类
1)Integer.MAX_VALUE 表示 int 类型最大值
2)Integer 构造方法:
-
构造一个新分配的 Integer 对象,它表示指定的 int 值:public Integer(int value)
-
构造一个新分配的 Integer 对象,它表示 String 参数所指示的 int 值:public Integer(String s)
Integer int1 = new Integer(123);
System.out.println(int1);// 123
Integer int2 = new Integer("123");
System.out.println(int2);// 123
3)Integer 面试题
Integer i1 = 97;
Integer i2 = 97;
System.out.println(i1 == i2);// true
System.out.println(i1.equals(i2));// true
System.out.println("-----------");
Integer i3 = 128;
Integer i4 = 128;
System.out.println(i3 == i4);// false
System.out.println(i3.equals(i4));// true,因为比较的是内容
分析:因为 -128 ~ 127 是 byte 的取值范围,如果在这个取值范围内,自动装箱就不会创建新的对象,而是从常量池中获取,超过了 byte 取值范围就会再创建新对象~这个就是 i1 == i2 的结果为 true 的原因了
3.1 基本数据类型 → 字符串
-
方式一:基本数据类型对象包装类中的方法 static String toString(基本类型);
-
方式二:String类中的方法: static String valueOf(基本类型)
-
方式三:基本类型数据 + “”
3.2 字符串 → 基本数据类型
1)使用包装类中的静态方法:xxx parseXxx(String)
// 1、字符串转换为 int类型
// 将字符串转换为int型,即十进制数
int a = Integer.parseInt("123");
System.out.println(a);// 123
// 将字符串 “123” 按照二进制转换成int,即十进制数,则结果为6
int b = Integer.parseInt("110", 2);
// 将字符串 ”120” 按照十进制转换为int,则结果为120
int c = Integer.parseInt("120",10);
// 将字符串 ”12” 按照十六进制转换为int,则结果为18
int d = Integer.parseInt("12",16);
// 将字符串 ”ff” 按照十六进制转换为int,则结果为255
int e = Integer.parseInt("ff",16);
// 2、字符串转换为 float类型
float a = Float.parseFloat("1.2");
// 3、字符串转换为 double类型
double a = Double.parseDouble("12.4444");
//4、字符串转换为 boolean类型
boolean a = Boolean.parseBoolean("true");
System.out.println(a);// true
boolean b = Boolean.parseBoolean("false");
System.out.println(b);// false
// 传入的不是布尔类型相应字符串,输出false
boolean c = Boolean.parseBoolean("falsde");
System.out.println(c);// false
//5、字符串转换为 long类型
long a = Long.parseLong("1122211111111");
System.out.println(a);// 1122211111111
//6、字符串转换为 short类型
short a = Short.MAX_VALUE;
System.out.println(a);// 32767
short b = Short.parseShort("12");
System.out.println(b);// 12
//7、字符串转换为 byte类型
System.out.println(Byte.MAX_VALUE);// 127
byte b = Byte.parseByte("12");
System.out.println(b);// 12
//8、只有Character没有parse方法,本身就是封装了字符,无须转换
2)当字符串被xxx包装类进行对象的封装,使用另一个非静态的方法:xxxValue()
// 将一个xxx包装类对象转成基本数据类型值
Integer a = new Integer(123);
System.out.println(a);// 123 ,输出的是 Integer类
int b = a.intValue();
System.out.println(b);// 123 ,输出的是 int类型
//此时如果要比较对象,得用 int compareTo(anotherInteger)进行比较,返回 0、1 或 -1
Integer x = new Integer(1);
Integer y = new Integer(9);
System.out.println(x.compareTo(y));// -1
3.3 进制转换
-
10 进制转换为 2 进制:static String toBinaryString(int)
-
10 进制转换为 16 进制:static String toHexString(int)
-
10 进制转换为 8 进制:static String toOctalString(int)
int a = 100;
System.out.println(Integer.toBinaryString(a));// 1100100
System.out.println(Integer.toOctalString(a));// 144
System.out.println(Integer.toHexString(a));// 64