现在我们开始来讲java1.5的新特性
1):首先登场的是增强for循环!它主要针对集合类以及数组和链表的遍历!记住内部是链表也可以!
注意:1:但是增强for循环不会得到下标信息!
2:条件是必须实现了Iterater接口的类,这里就是说for的内部是迭代器,只是简化代码!
3:for的功能只能遍历,不能修改!
2):自动装箱与自动拆箱:原理:将基本数据类型的值转换为一个对象来存放!
自动装箱:基本数据类型转换为包装类
自动拆箱:包装类转换为基本数据类型
注意:集合类中只能是包装类型!
3):可变参数:用int... nums表示!表示接受任何个参数都可以!(可以传值,或者数组)
注意:1:可变参数必须要作为方法参数的最后一个!并且只能有一个
4):泛型:实质是类型的参数化!
1):约束类的,用<T>来表示,限制泛型的几种方法:<T extends List>:表示传入的T必须继承List或是实现List
2):约束剑柄的,用GenericFoo<? extends List> foo = null//表示foo只能连接将List的子类作为泛型的实例
3):特例:约束剑柄中,用<?>或<? extends someclass>作为泛型的声明方式 时,只能查看值(getFoo),不能修改值(setFoo)
4):用的最多的是业务逻辑的DAO!
5): 如果父类是泛型,则子类必须是泛型!
5):枚举:枚举是一个类!枚举中多包含一组静态的final的实例!可以通过枚举名.实例名来调用!类似单例模式的实现!
1):运用场合:在对象数特定的情况下使用!
2):构造方法的参数与静态对象的参数必须保持一致!
3):枚举的两个静态的方法values()返回一个静态实例的数组!
valueOf(String s)将字符串转换为一个枚举的实例!
4):其中写方法与类完全一样!
6):现在加入注解
1):注解必须被两个注解修饰:@Target(ElementType.*)//说明这个注解能修饰什么
@Retention(RetentionPolipy.RUNTIME)说明这个注解是运行时的注解!
2):通过反射判断是否有注解,用classType.isAnnotationPresent(Before.class)
3):注解中可以定义成员变量,用String name();但是用的时候必须赋值!也可以默认!
思维导图: