Java基础增强(新特性)
本章内容
l JDK5新特性
l JDK6新特性(很少见所以不讲)
l JDK7新特性
l JDK8新特性(我给出资料,自己看一下)
JDK5新特性
l 自动装箱和拆箱
l 泛型
l 增强for循环
l 静态导入
l 可变参数
l 枚举
枚举
l 枚举概述
• 是指将变量的值一一列出来,变量的值只限于列举出来的值的范围内。举例:一周只有7天,一年只有12个月等。
• 回想单例设计模式:单例类是一个类只有一个实例
• 那么多例类就是一个类有多个实例,但不是无限个数的实例,而是有限个数的实例。这才能是枚举类。
枚举
l 通过自己定义一个枚举类来演示案例
• 第一版
• 第二版
• 第三版
l 发现自己定义一个枚举类,比较麻烦,所以,java就提供了枚举类供我们使用。
l 格式是:只有枚举项的枚举类
l public enum 枚举类名{
枚举项1,枚举项2,枚举项3…;
l }
枚举
l 注意事项
• 定义枚举类要用关键字enum
• 所有枚举类都是Enum的子类
• 枚举类的第一行上必须是枚举项,最后一个枚举项后的分号是可以省略的,但是如果枚举类有其他的东西,这个分号就不能省略。建议不要省略
• 枚举类可以有构造器,但必须是private的,它默认的也是private的。枚举项的用法比较特殊:枚举(“”);
• 枚举类也可以有抽象方法,但是枚举项必须重写该方法
• 枚举在switch语句中的使用
枚举类中的几个常见方法
l int compareTo(E o)
l String name()
l int ordinal()
l String toString()
l <T> T valueOf(Class<T>type,String name)
l values()
• 此方法虽然在JDK文档中查找不到,但每个枚举类都具有该方法,它遍历枚举类的所有枚举值非常方便
JDK7新特性
l 二进制字面量
l 数字字面量可以出现下划线
l switch 语句可以用字符串
l 泛型简化
l 异常的多个catch合并
l try-with-resources语句
二进制字面量
l JDK7开始,终于可以用二进制来表示整数(byte,short,int和long)。使用二进制字面量的好处是,可以使代码更容易被理解。语法非常简单,只要在二进制数值前面加 0b或者0B
l 举例:
• intx = ob110110
数字字面量可以出现下划线
l 为了增强对数值的阅读性,如我们经常把数据用逗号分隔一样。JDK7提供了_对数据分隔。
l 举例:
• int x = 100_1000;
l 注意事项:
• 不能出现在进制标识和数值之间
• 不能出现在数值开头和结尾
• 不能出现在小数点旁边
switch 语句可以用字符串
l switch 语句可以用字符串
• 在switch语句中已经演示过了,还可以继续演示一次
泛型简化
l 泛型简化
• 在集合中讲解泛型的时候已经演示过了,还可以在演示一下
异常的多个catch合并
l 异常的多个catch合并
• 在异常的时候,已经讲演示了,还可以在演示一下
try-with-resources 语句
l 格式:
• try(必须是java.lang.AutoCloseable的子类对象){…}
• 好处:
• 资源自动释放,不需要close()了
• 把需要关闭资源的部分都定义在这里就ok了
• 主要是流体系的对象是这个接口的子类(看JDK7的API)