包装类:是为了解决基本类型不能直接参与面向对象开发的问题。其中六个数字类型的包装类都继承自 java.lang.Number。其余两个直接继承自Object。Number是一个抽象类,定义了数字类型包装类公有的行为:允许在数字类型之间转换。
public class IntegerDemo {
public static void main(String[] args) {
int d=128;
/**从基本类型转换成包装类--建议使用valueOf方法*/
Integer i1=Integer.valueOf(d);
Integer i2=Integer.valueOf(d);
System.out.println(i1==i2);
System.out.println(i1.equals(i2));
Double double1=Double.valueOf(1.2);
Double double2=Double.valueOf(1.2);
System.out.println(double1==double2);
System.out.println(double1.equals(double2));
/**将包装类转换为基本类型*/
int i=i1.intValue();
double d1=i1.doubleValue();
byte b=i1.byteValue();//溢出
System.out.println(b);
System.out.println(Integer.MAX_VALUE);
System.out.println(Integer.MIN_VALUE);
System.out.println(Long.MAX_VALUE);
System.out.println(Long.MIN_VALUE);
}
}
数字类型的包装类都支持两个常量:
MAX_VALUE,MIN_VALUE用于表示其对应的基本类型数据的取值范围。
包装类提供了一个静态方法:parseXXX(String str),可以将给定的字符串转换为对应的基本类型,前提是该字符串内容要正确的描述基本类型可以保存的值。
package integer;
public class ParseDemo {
public static void main(String[] args) {
String string="123.3";
System.out.println(Integer.parseInt(string));
System.out.println(Double.parseDouble(string));
}
}
自动拆装箱:JDK5发布时推出的一个特性,允许编译器在编译代码时将基本类型与引用类型之间互相赋值时补全代码自动进行转换。
public class Demo {
public static void main(String[] args) {
/**自动拆箱:int d=new Integer(1).intValue()
* .class中有
*/
int d=new Integer(1);
/**自动装箱:Integer i=Integer.valueOf(d); */
Integer i=d;
}
}