基本类型包装类
Java中有8种基本数据类型,但基本数据类型并不具备面向对象的特性。想进行面向对象的操作,需要通过基本类型的包装类来进行。
其中需要注意int对应的包装类是Integer,char对应的包装类是Character,其他6个都是基本类型首字母大写即可。
包装类的常用操作:
- 1.字符串与基本类型的转换
将字符串转成基本类型:
Integr.parseInt(String s)
将基本类型转换成字符串:
1.基本类型通过 + 直接与 “” 连接
2.调用String的valueOf(String s)方法
3.调用包装类的toString(String s)法
Integer类还有一个方法 toString(int i,int radix) ,可以将指定进制数值 i 转换成其对应的十进制基本类型
Java中的进制最高支持36进制,因为(0-9,a-z)
- 2.基本数值或字符串转换成包装类对象
1.通过Integer类的构造方法
Integer i = new Integer(4);//使用构造函数函数
Integer ii = new Integer("4");//构造函数中可以传递一个数字字符串
2.通过Integer类的静态方法valueOf
Integer valueOf(int i)
Integer valueOf(String s)
- 3.包装类对象转换成基本类型
通过包装类的xxxValue()方法
Integer.intValue()
自动装箱与自动拆箱
自动装箱与自动拆箱是jdk1.5之后的特性。
自动装箱指的是,基本数据类型自动转换为包装类对象。如Integer i = 1,相当于Integer i = Integer.valueOf(1);
自动拆箱指的是,包装类对象自动转换为基本数据类型。如下代码
Integer i = 1;
i = i + 5;
i=i+5 执行时,先计算i+5,此时发生了自动拆箱,将i转成int类型 ,等价于i.intValue() 。加法操作完成后自动装箱成Integer类型,然后赋值给i。
Integer内部有一个byte常量池,自动装箱时,当数值在byte范围之内时,会先从常量池中获取。常量池中没有时才创建对象。
Integer x = 127;
Integer y = 127;
System.out.println(x==y); //true
System.out.println(x.equals(y)); //true
Integer i = 128;
Integer j = 128;
System.out.println(i==j); //false
System.out.println(i.equals(j)); //true