“自动装箱” 用于将原始数据types转换为其包装类对象。 包装类提供了对原始types执行的各种function。 最常见的例子是:
int a = 56; Integer i = a; // Auto Boxing
这是需要的,因为程序员很容易能够直接编写代码,JVM会照顾拳击和拆箱。
当我们使用java.util.Collectiontypes时,自动装箱也会派上用场。 当我们想要创build一个原始types的集合,我们不能直接创build一个原始types的集合,我们只能创build对象的集合。 例如 :
ArrayList al = new ArrayList(); // not supported ArrayList al = new ArrayList(); // supported al.add(45); //auto Boxing
包装类
每个Java的8个基本types(byte,short,int,float,char,double,boolean,long)都有一个独立的Wrapper类。 这些Wrapper类具有预定义的方法,用于对基本数据types执行有用的操作。
使用包装类
String s = "45"; int a = Integer.parseInt(s); // sets the value of a to 45.
Wrapper类提供了许多有用的函数。 看看这里的java文档
拆箱与自动装箱相反,我们将包装类对象转换回原始types。 这是由JVM自动完成的,以便我们可以使用包装类进行某些操作,然后将它们转换回原始types,因为原语会导致int处理更快。 例如 :
Integer s = 45; int a = s; auto UnBoxing;
如果集合与对象一起使用,则仅使用自动拆箱。 就是这样 :
ArrayList al = new ArrayList(); al.add(45); int a = al.get(0); // returns the object of Integer . Automatically Unboxed .