Java常用类库03
基本数据类型的包装类
- 在Java中 8个基本数据类型 都有其对应的包装类
- 这八个包装类均为引用数据类型
基本数据类型 | 包装类型 | 父类 |
---|---|---|
byte | java.lang.Byte | Number |
short | java.lang.Short | Number |
int | java.lang.Integer | Number |
long | java.lang.Long | Number |
float | java.lang.Float | Number |
double | java.lang.Double | Number |
boolean | java.lang.Boolean | Object |
char | java.lang.Character | Object |
在JDK1.5之后 Java提供了自动装箱与自动拆箱机制
当普通的字面值赋给包装类时 会自动装箱成包装类
当包装类的对象赋值给基本数据类型的变量时 会自动拆箱成基本数据类型
频繁的装箱拆箱会消耗额外的资源 尽量根据实际情况选择适合的类型
Integer类
- 最常用的包装类 其他包装类都与其类似
- 构造方法
new Integer(10)
new Integer("20")
在JDK9之后 构造方法被标记为已弃用 不建议使用
可以使用
Integer.valueOf(int)
/Integer.parseInt(String)
构建对象
Integer静态常量
static final int MAX_VALUE
INT类型的最大取值static final int MIN_VALUE
INT类型的最小取值
Integer静态方法
parseInt()
- 将字符串转换为Integer对象
- 如果给定字符串是非法格式 会抛出
java.lang.NumberFormatException
异常
toBinaryString()
- 将指定整数以二进制格式返回 (字符串形式)
toHexString()
- 将指定整数以十六进制格式返回 (字符串形式)
toOcatlString()
- 将指定整数以八进制格式返回 (字符串形式)
valueOf()
- 将int类型变量转换为Integer类型对象
Integer整形常量池
- Java中 为了提高整数的使用效率 处于
[-128, 128)
范围的数字会创建在整数常量池中- 当程序员新建这个范围内的整形变量 不会新创建一个对象 而是在整数常量池中 直接取出并使用
- 不会重新开辟空间 使用了缓存机制 提高这些数字的访问效率
- 在底层源码中 Integer类中存在一个静态内部类
IntegerCache
这个类就是负责整数常量池的创建和使用的
Arrays工具类
- 用于数组操作的工具类
- 位于
java.util
包中
Arrays的常用方法
static void sort(...)
- 对指定数组进行排序 可以指定排序范围
- 可以指定一个比较器用于排序
- JDK8之前 底层使用传统快速排序
- JDK8之后 底层使用双轴快速排序
static int binarySearch(...)
- 根据给定值 在数组中查询
- 使用二分法查找 需要数组有序
- 可以指定搜索的范围
- 未能找到元素时 返回
-1
Enum类
- Java中的枚举类型 在JDK1.5后提供
enum WeekDay {
MONDAY, THESDAY, WEDNESDAY,
THURDAY, FRIDAY, SATURDAY, SUNDAY
}
- 使用枚举可以定义一些单独的常量
- 枚举是一种特殊的类 系统编译时会继承Enum类
// 为枚举类中的常量定义值
enum WeekDay {
MON("星期一"),
THE("星期二"),
WED("星期三"),
THU("星期四"),
FRI("星期五"),
SAT("星期六"),
SUN("星期日");
}
WeekDay day = WeekDay.MON;
System.out.println(day.name());