------- android培训、java培训、期待与您交流! ----------
一、静态导入
普通导入,可以导入一个类或某个包中的所有类
Import static 语句导入一个类中的某个静态方法或所有静态方法
二、可变参数
只能出现在参数列表的最后
...位于变量类型和变量名之间,前后有无空格都可以
调用可变参数的方法时,编译器为该可变参数隐含创建一个数组,在方法体中以数组的形式访问可变参数。
三、增强for循环
语法:for(type 变量名 : 集合变量名){。。。}
四、自动装箱、拆箱
注意事项:Integer类的自动装箱的时候,如果数值在一个字节之内(-128~127),编译器就会把他放到同一个包装对象中,超过128就会放到不同的包装对象中,所以:
Integer i1=3;
Integer i2=3;
i1= =i2 为true,而:
Integer i3 = 128;
Integer i4 = 128;
I3= =i4 为false。当然用equals时是true,因为他比较的是对象中的值。
同样的对于boolean,byte相同的值放在同一个包装器对象中,char<=127的放在同一个包装对象中,short和int相同。
这里涉及到一个设计模式:享元模式。
五、枚举(java.lang.Enum)
枚举类中的每个元素都是该类的一个对象,该对象的方法:name()、ordinal(),该类的静态方法: valueof(String s),可根据一个字符串返回该类的一个对象。Values方法,返回所有元素的一个数组。
枚举类的元素列表必须放在最上面。
枚举的构造方法必须私有;如果枚举只有一个元素时,就可以作为一种单例的实现方式。
六、反射(1.2开始)
1、 得到字节码对应的实例对象(Class类型)
类名.class、对象.getClass()、Class.forName(“类名”)。
2、9个预定义Class对象
8个基本类型和void,这些类对象有java虚拟机创建,与其表示的基本类型同名,即boolean,byte,char,short,int,long,float和double。这些对象的isPrimitive方法都返回true,表示是一个基本类型。
int.class == Integer.Type() ==int
new Integer(3).getClass() == Integer.class == class java.lang.Integer
只要是在源程序中出现的类型,都有各自的Class对象,例如:int[],void。
3、 反射
反射就是把java类中的各种成分映射成相应的java类。
(1) 构造方法
(2) 成员变量
(3) 成员方法
(4)对数组的反射