包装类

1.包装类概述
  在进行类型转换的范畴内,有一种特殊的转换,需要将int这样的基本数据类型转换成对象;
  所有基本类型都有一个与之对应的类,即包装类(wrapper).
  包装类是不可变类,在构造了包装类对象后,不允许更改包装在其中的值;
  包装类是final的,不能定义他们的子类
  int       java.lang.Integeer       java.lang.Number
  long      java.lang.Long        java.lang.Number
  double      java.lang.Double      java.lang.Number
  short      java.lang.Short        java.lang.Number
  float      java.lang.Float        java.lang.Number
  byte      java.lang.Byte        java.lang.Number
  char      java.lang.Character      java.lang.Object
  boolean    java.lang.Boolean        java.lang.Object
2.Number及其主要方法
  抽象类Number是Byte、Double、Float、Integer、Long和Short类的父类;
  Number的子类必须提供将表示的数值转换为byte,double,float,int,long和short的方法:
    doubleValue() 以double形式返回指定的数值
    intValue() 以int形式返回指定的数值
    floatValue() 以float形式返回指定的数值
3.Integer常用功能
  该类提供了多个方法,能在int类型和String类型之间互相转换,还提供一些常量例如:
    static int MAX_VALUE 值为2^31-1的常量,表示int类型能表示的最大值
    static int MIN_VALUE 值为-2^31的常量,表示int类型能表示的最小值
  Integer的静态方法parseInt用于将字符串转换为int.
4.Double常用功能
  在Double类的对象中包装一个基本类型double的值
  构造方法:
    Double(double value)
    Double(String s)
  方法
    double doubleValue() 返回此Double对象的double值
    static double parseDouble(String s) 返回一个新的double值,该值被初始化为用指定的String表示的值
5.自动装箱和拆箱操作
  从Java5.0版本以后加入到了autoboxing功能
  自动“拆箱”和“装箱”是依靠JDK5的编译器在编译期的“预处理”工作
  下列代码写法均为正确形式:
    Integer a = 100; //装箱
    Integer b = 200; //装箱
    Integer c = a+b; //拆箱再装箱
    double d = c; //拆箱
  拆箱和装箱是“编译器”认可的,而不是虚拟机。编译器在生成类的字节码时插入必要的方法调用
    Integer a = 100 => Integer a = Integer.valueOf(100)
    Integer b = 200 => Integer b = Integer.valueOf(200)
    Integer c = a+b => Integer c = Integer.valueOf(a.intValue() + b.intValue())
    int d = c => int d = c.intValue()

你可能感兴趣的:(包装类)