*3 静态导入和自动装拆箱
1)静态导入可以导入对象,属性,方法,*
2)语法:
import static java.lang.Math.PI;
import static java.lang.Math.pow;
import static java.lang.System.out;
3)在JDK5中,编译器自动将基本类型和对应的包装类型,自动转换
例如:int<->Integer
*4 增强for循环
1)循环迭代数组/List/Set/Map集合
2)对Map集合的二种迭代方式:
a)keySet()
b)entrySet()
3)在迭代集合时,一定要动态通知Iterator,而不要动态通知List集合,应选用ListIterator。
*5 可变参数
1)参数的个数不确定的
2)可变参数只能放置在参数的最后,即最右边
3)可变参数最少0个,最多1个
4)编译器将可变参数当作一个一维数组来对待
*6 枚举
1)当取值是某范围中的之一,这时可以使用枚举
2)当向用户提示严重的错误时,尽可以使用抛异常的方式通知客户端
3)可以对枚举在运行时验证
4)可以对枚举在编译时验证
5)枚举值相当于实例变量
6)枚举类与普通一致,可以继承或实现,如果有抽像方法的话,可以利用每个枚举值以匿名内部类的方式去实现
7)枚举值可以用在switch()语句中
8)枚举类常用方法如下:
a)name():显示枚举值
b)ordinal():显示枚举值对应的索引,从0开始
c)values():取得该枚举类对应的所有枚举值,是一个数组
d)valueOf():判段某个字符串是否属性枚举值之一
*7 反射
1)解析一个类的各个部分,形成一个对象。
2)外存中的类,加载到内存中,会形成该对象的Class类,例如:String类,加载到内存中,就是StringClass对象。
3)使用不同的方式,取得同一个类型的字节码对象Class是相同的。
4)通过getXxxxx()只能取得该类public的类型
通过getDeclaredXxxxxx()可以取得该类非public的类型
设置非public类型的可访问性,默认为false,不可访问
c.setAccessible(true);
5)反射可以反射private/public的构造方法,字段,普通方法
6)在反射main方法时,编译器会将数组自动拆分,取第一个值
解决方案:
//m.invoke(null,(Object)new String[]{"A","B","C","D"});,将数组当作对象,此时编译器不进行拆分
m.invoke(null,new Object[]{new String[]{"A1","B1","C1","D1"}});在数组中嵌入另一个数组
1)静态导入可以导入对象,属性,方法,*
2)语法:
import static java.lang.Math.PI;
import static java.lang.Math.pow;
import static java.lang.System.out;
3)在JDK5中,编译器自动将基本类型和对应的包装类型,自动转换
例如:int<->Integer
*4 增强for循环
1)循环迭代数组/List/Set/Map集合
2)对Map集合的二种迭代方式:
a)keySet()
b)entrySet()
3)在迭代集合时,一定要动态通知Iterator,而不要动态通知List集合,应选用ListIterator。
*5 可变参数
1)参数的个数不确定的
2)可变参数只能放置在参数的最后,即最右边
3)可变参数最少0个,最多1个
4)编译器将可变参数当作一个一维数组来对待
*6 枚举
1)当取值是某范围中的之一,这时可以使用枚举
2)当向用户提示严重的错误时,尽可以使用抛异常的方式通知客户端
3)可以对枚举在运行时验证
4)可以对枚举在编译时验证
5)枚举值相当于实例变量
6)枚举类与普通一致,可以继承或实现,如果有抽像方法的话,可以利用每个枚举值以匿名内部类的方式去实现
7)枚举值可以用在switch()语句中
8)枚举类常用方法如下:
a)name():显示枚举值
b)ordinal():显示枚举值对应的索引,从0开始
c)values():取得该枚举类对应的所有枚举值,是一个数组
d)valueOf():判段某个字符串是否属性枚举值之一
*7 反射
1)解析一个类的各个部分,形成一个对象。
2)外存中的类,加载到内存中,会形成该对象的Class类,例如:String类,加载到内存中,就是StringClass对象。
3)使用不同的方式,取得同一个类型的字节码对象Class是相同的。
4)通过getXxxxx()只能取得该类public的类型
通过getDeclaredXxxxxx()可以取得该类非public的类型
设置非public类型的可访问性,默认为false,不可访问
c.setAccessible(true);
5)反射可以反射private/public的构造方法,字段,普通方法
6)在反射main方法时,编译器会将数组自动拆分,取第一个值
解决方案:
//m.invoke(null,(Object)new String[]{"A","B","C","D"});,将数组当作对象,此时编译器不进行拆分
m.invoke(null,new Object[]{new String[]{"A1","B1","C1","D1"}});在数组中嵌入另一个数组