java包装类
包装类就是将基本数据类型封装起来。
class IntTest{
private int val;
public IntTest(int val){
this.val = val;
}
public int Intvalue(){
return this.val;
}
}
- 数值型包装类(Number类的子类):
Byte、 Double、Short、 Long、Float、Integer(int) - 对象型包装类(Object类的直接子类)
Boolean 、 Character(char) - 装箱与开箱:
装箱: 将基本数据类型变为包装类对象,利用每个包装类提供的构造方法实现装箱处理
拆箱: 将包装类中包装的基本数据类型的值取出
jdk 1.5 之后提供了自动拆装箱机制,使用包装类对象和使用基本数据类型一摸一样。本质上是不同的
对于Integer var = ?(自动装箱)?在-128~127之间赋值,Integer对象在Integer常量池中产生,会复用已有的对象。在这个区间外的所有数据在堆上产生,不会复用已有对象
判断两个包装类对象是否相等。使用equals方法比较
如何选择:
1. 强制要求:所有POJO类(自定义的类)的属性均使用包装类
2. 推荐:所有局部变量使用基本类型
字符串与包装类型的数据类型装换
- String -> 基本类型
使用包装类提供的parseXXX方法
eg:Integer.parseInt(“123”); - 基本类型-> 字符串
- “”+基本数据类型
- 调用String.valueOf(各种数据类型)
记录一些常用的操作
//十进制 ====》 二进制字符串
int a = 537562;
String s = Integer.toBinaryString(a);
System.out.println(s);
//二进制字符串 == 》 十进制
int b = Integer.parseInt(s,2); //2 代表的时当前字符串的进制
System.out.println(b);
//十进制 ===》 十六进制
System.out.println(Integer.toHexString(a));
//十进制 ===》 任意进制(查看源码 为 2 到 36 进制之间)(返回值为String)
System.out.println(Integer.toString(a,16));