对象包装器与自动装箱

所有基本数据类型都有一个与之对应的类,这些类称为包装器。Integer,Long,Float,Double,Short,Byte,Character,Void,Boolean(前6个类派生于公共的超类Number)
对象包装器类是不可变的,一旦构造了包装器,就不允许更改包装在其中的值。同时,包装器类还是final,因此不能定义它们的子类。如果想编写一个修改数值的方法,就需要使用在org.omg.CORBA包中定义的持有者类型(holder),包括IntHolder,BooleanHolder等。每个持有者类型都包含一个共有域值,通过它可以访问存储在其中的值。

public static void triple(IntHolder x)(
x.value = 3 * x.value;
)

java.lang.Integer

  • int intValue()
    以int的形式返回Integer对象的值(在Number类中覆盖了intValue方法。)
  • static String toString(int i)
    以一个新String对象的形式返回给定数值i的十进制表示。
  • static String toString(int i, int radix)
    返回数值i的基于给定radix参数进制的表示。
  • static int parseInt(String s)
    static int parseInt(String s, int radix)
    返回字符串s表示的整型数值,给定字符串表示的是十进制的 整数(第一种方法)或者返回radix参数进制的整数(第二种方法)
  • static Integer valueOf(String s)
    static Integer valueOf(String s, int radix)
    返回用s表示的整型数值进行初始化后的一个新Integer对象,给定字符串表示的是十进制的整数(第一种方法),或者是radix参数进制的整数(第二种方法)

java.text.NumberFormat

  • Number parse(String s)
    返回数值,假设给定的s表示了一个数值。

自动装箱与拆箱

ArrayList list = new ArrayList<>();
list.add(3);将自动变换成
list.add(Integer.valueOf(3));这种变换被称为自动装箱(autoboxing)
将一个Integer赋值给一个int值,将会自动拆箱。
int n = list.get(i);
翻译成
int n = list.get(i).intValue();

你可能感兴趣的:(对象包装器与自动装箱)