-
有时候需要将int这样的基本类型转换为对象。所有的基本类型都有着与之对应的类,像Integer类对应着基本类型int。通常这些类称为包装器
-
这些包装器有显而易见的名字,Integer,Long,Double,Float,Short,Byte,Character,Boolean(前留个类派生于公共的超类Number)
-
包装器类是不可变的,即一旦构造了包装器,就不允许更改包装在其中的值。
-
同时包装器类还是final,因此不能派生它们的子类
-
假设想要定义一个整型数组列表,但是尖括号中的不能是基本类型,在这里就可以用到Integer包装器类。我们可以声明一个Integer类的对象类表
var list=new ArrayList
(); -
由于每个值分别包装在对象中,所以ArrayList
()的执行效率要远远低于int[]数组。因此,只有在程序员操作的方便性比执行效率更重要时,才会考虑对较小的集合使用这种构造
-
-
自动装箱与自动拆箱:
-
如果要在整型数组列表中添加元素会自动装箱可以调用:
list.add(3); //这个语句将自动转化为 list.add(Integer.valueOf(3));
-
如果将一个Integer对象赋值给一个int值时,会自动拆箱
int n=list.get(i); //这个语句将自动转化为 int n=list.get(i).intValue();
-
自动装箱自动拆箱也能用于算数表达式,可以将一个自增运算符引用与一个包装器引用
-
另外,如果在一个包装器中混合使用了Integer和Double类型,Integer就会拆箱,提升为double,再装箱为Double
-
将数字字符串转化为数字:想要将字符串转化为整型就要使用Integer.parseInt()方法
-
-
省略号...是Java代码的一部分,它表明这个方法可以接受任意数量的对象
-
通过一个例子来学习以下多参数的传递:
-
如果一个方法的从最后一个参数是一个数组的话就把它定义为有可变参数的方法,例如,像main方法的参数String[] args,就可以定义为String...args
-
public enum Size{SMALL,MEDIUM,LARGE,EXTAR_LARGE} -
这个声明定义的是一个枚举类,它刚好有三个实例,不可能在构造新的对象,如果需要比较两个枚举类型的值时,只需要用==就行了
-
还可以为枚举类增加构造器,方法和字段。当然,构造器只是在构造枚举常量时使用
-
所有的枚举类型都是Enum类的子类,他们继承了这个类的许多方法
-
toString方法返回枚举常量名
Size.SMALL.toString();
-
valueOf方法
Size s=Enum.valueOf(Size.class,"SMALL");
将s设置为Size.SMALL
-
values方法,返回一个包含全部枚举值的数组
Size[] values=Size.values()
-
ordinal方法返回enum声明中枚举常量的位置,位置从0开始
Size.SMALL.ordinal();//返回0
参考书籍:Java核心技术 卷1(原书第11版)
-



