JDK 5 新特性
自动装箱和拆箱
泛型
增强for循环
静态带入
可变参数
枚举
枚举概述
是指将变量的值一一列举出来,变量的值只限于列举串来的值的范围内,举例:一周只有7天,一年只有12个月等
回想单例设计模式:单例类是一个类只有一个实例
那么多列类就是一个类有多个实例,单不是无限个数的实例,而是有限个数的实例,这才是枚举类。
enum 修改类
枚举项,枚举项,枚举项;
高级应用
可以在把变量名当做当前的构造实例使用 也可以重写当前类的方法
枚举项(){
}
注意事项:
enum
enum 类的子类
枚举项放在第一行
后面没有东西分好可以省略
可以有构造器 但必须是private 默认private 构造; 枚举的特殊用法 枚举(“”)
枚举类可以有抽象方法,但是枚举项必须重写该方法
枚举在switch 中结合使用
枚举中的常用方法
int compareTo(E o); //进行索引比较
String name(); 当前枚举项
int ordinal(); 索引
String toString(); //当前toString() 方法
<T> T valueOf(Class<T> type,String name); //获取到到当前实例对象
values() 遍历
此方法虽然在JDK文档中查找不到,但每个枚举类都具有该方法,他遍历枚举类的所有枚举值非常方便
jdk 7 特性
二进制字面量
jdk7 可以使用二进制来表示整数(byte,short,int 和long) .使用二进制字面量的好处是,可以使代码更容易被理解。语法非常简单,只要在二进制数值前面加OB 或者OB
int x = Ob100101;
数字字面量可以出现下划线
int y = 1_1123_1000;
//不能出现在进制标识和数值之间
int z = 0x111_2222;
switch语句可以使用字符串
泛型简化
ArrayList<String> array = new ArrayList<>();
异常的多个catch合并
try-with-resources 语句
public method(){
//try (必须是java.lang.AutoCloseable的子类对象){。。。}
try(当前需要关闭的异常类){
}catch(){
}
}
jdk 8 特性
允许接口中有默认方法
定义default 方法
定义static 方法
lambda 表达式
一般都是3个版本为一个节点,jdk5/8都是用的最普遍的,而且官方也宣布jdk11将会是后面几年持续更新修复的版本。