1.基本数据类型其实也有其针对的类描述
byte - Byte
short - Short
int - Integer
long - Long
float - Float
double - Double
char - Character
boolean - Boolean
Number
|-- Byte Short Integer Long Float Double 【BigDecimal BigInteger】
Object
|-- Character Boolean
package part03.基本数据类型包装类;
public class NumDemo01 {
public static void main(String[] args) {
Byte b=new Byte("10");
Short s=new Short("10");
Integer i1=new Integer(10);
Integer i2=new Integer(10);
Long l=new Long("10");
Float f=new Float("10");
Double d=new Double("10");
Character c=new Character('a');//必须传字符
Boolean bool=new Boolean("true");
//成员函数
System.out.println(i1.compareTo(i2));
System.out.println(i1<i2);
System.out.println(i1+i2);
System.out.println(i1.equals(i2));
System.out.println(i1==i2);
System.out.println(i1.intValue()==i2.intValue());//返回Integer值
System.out.println(i1.toString());//将包装类型转字符串 等效于10+""
//静态函数
//最高支持36进制 10个数字+26字母 radix∈[2,36]
System.out.println(Integer.parseInt("123")+1);//默认以十进制解析
System.out.println(Integer.parseInt("10010101",2));//规定以2进制解析
System.out.println(Integer.parseInt("102201012",3));//以3进制解析字符串
System.out.println(Integer.reverse(123));//返回通过反转指定int值的二进制补码表示形式中位的顺序而获得的值
//将149 转成二进制
System.out.println(Integer.toBinaryString(149));
//将149转成八进制
System.out.println(Integer.toOctalString(149));
//将149转成16进制
System.out.println(Integer.toHexString(149));
//默认转成十进制
System.out.println(Integer.toString(149));//toString不是Object重写而来的
//静态工厂模式
System.out.println(Integer.valueOf(10));//等效于new Interger(10)
}
}
2.自动装箱与自动拆箱
package part03.基本数据类型包装类;
public class NumDemo02 {
public static void main(String[] args) {
Integer i1=3;//new Integer(3) 自动装箱
Integer i2=3;//new Integer(3) 自动装箱
System.out.println(i1==i2);//true
//自动拆箱 i1.intValue()<i2.intValue()
System.out.println(i1<i2);//false
//自动拆箱 i1.intValue()+i2.intValue()
System.out.println(i1+i2);//6
System.out.println(i1.equals(i2));//true
Integer i3=200;
Integer i4=200;
System.out.println(i1==i2); //false
System.out.println(i1<i2);//false
System.out.println(i1+i2);//6
System.out.println(i1.equals(i2));//true
/*
注意在自动装箱的时候 如果值在byte范围内 -128~127 常用数据范围 尽量避免创建冗余的对象
那么此时会对这些对象进行复用
如果超出byte范围 那么就得重新创建对象了
*/
//前提:两者同类型(两者要么都是基本数据类型 ,要么都是引用数据类型) == 永远比的是地址
int a=0;
int b=new Integer(0);
System.out.println(a==b);// a==b.inValue()
}
}