所有基本数据类型都有一个与之对应的类,这些类称为包装器。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<Integer> 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();
网友评论