1.概念
为了方便操作基本数据类型值,将其封装成了对象,在对象中定义了属性和行为,丰富了该数据的操作。用于描述该对象的类就称为基本数据类型对象包装类。
该包装对象主要用于基本类型和字符串之间的转换
byte Byte
short Short
int Integer
long Long
float Float
double Double
char Character
boolean Boolean
System.out.println(Integer.MAX_VALUE);
System.out.println(Integer.toBinaryString(-12));
int num = 3;
Integer i = new Integer(num);
2.字符串转成基本数值
- 使用包装类中的基本方法 xxx parseXxx(“xxx类型的字符串”)
int parseInt(“intString”)
long parseLong(“longString”)
boolean parseBoolean(“booleanString”)
只有character没有parse
System.out.println("54"+1);//541
System.out.println(Integer.parseInt("54")+1);//55
System.out.println(Integer.parseInt("54abc")+1);//NumberFormatException
if(Boolean.parseBoolean("true")) {
}
ps: 基本数据类型转成字符串:
int a = 3;
System.out.println(“”+a+2);//32
System.out.println(String.valueOf(a)+2);//32
- 如果字符串被Integer进行对象的封装,可以使用一个非静态的方法:intValue();
将一个Integer对象转成基本数据类型值。
Integer i = new Integer("34");
System.out.println(i.intValue());
3. 进制转换
3.1 十进制—>其他进制
System.out.println(Integer.toBinaryString(60));//111100
System.out.println(Integer.toOctalString(60));//74
System.out.println(Integer.toHexString(60));//3c
System.out.println(Integer.toString(60,2));//111100
System.out.println(Integer.toString(60,8));//74
System.out.println(Integer.toString(60,16));//3c
3.2 其他进制—>十进制
parseInt(“string”,radix)
System.out.println(Integer.parseInt("111100",2));//60
System.out.println(Integer.parseInt("74",8));//60
System.out.println(Integer.parseInt("3c",16));//60
Integer a = new Integer("3");
Integer b = new Integer(3);
System.out.println(a==b);//false
System.out.println(a.equals(b));//true Integer类型的equals方法被改写,改成比较值的大小
Integer c = new Integer("54");
Integer d = new Integer(3);
System.out.println(c.compareTo(d));//1
4.自动装箱拆箱
int num = 4;
num = num+4;
Integer i = 4;//Integer i = Integer.valueOf(4) ;自动装箱,简化书写
i = i+4;//i = Integer.valueOf(i.intValue() + 4) ;自动拆箱,再自动装箱
System.out.println("i:"+i);//System.out.println(new StringBuilder("i:").append(i).toString() );
Integer ii = null;
ii += 3;//NullPointerException
Integer.valueOf():返回一个拥有int类型值的Integer类型对象。
intValue():将Integer的值作为int返回。
Integer i1 = new Integer(127);
Integer i2 = new Integer(127);
System.out.println(i1 == i2);//false
System.out.println(i1.equals(i2));//true
Integer i3 = new Integer(128);
Integer i4 = new Integer(128);
System.out.println(i3 == i4);//false
System.out.println(i3.equals(i4));//true
Integer i5 = 127;
Integer i6 = 127;
System.out.println(i5 == i6);//true
System.out.println(i5.equals(i6));//true
Integer i7 = 128;
Integer i8 = 128;
System.out.println(i7 == i8);//false
System.out.println(i7.equals(i8));//true
针对-128——127之间的数据,做了一个缓冲池,如果数据是该范围内的,则不创建新的空间,因此上述代码的s5==s6,即s5的地址等于 s6的地址。