for-each:语法简便,可避免数组越界,无法更新(更新是指把集合内的某一个对象替换成另一个,不是对象内部值的修改)和删除集合内对象,无法知道当前元素的位置索引
枚举:JDK5提出的,用enum进行声明,表示一组限定值的集合,有几个值,该枚举就会有几个实例对象,打点调用,不能new出来,内部也可以声明属性,方法,构造方法
不定长参数:JDK5提出的,一个方法只能有一个不定长参数,且需要位于形参最后,例如:
public void test(int i;String... str);String...就是一个不定长参数
import static:静态导入,可用于导入一个类的静态方法
自动装箱与自动拆箱是对于基本数据类型和其包装类型来说的,基本类型的引用指向包装类型,自动拆箱,包装类型的引用指向基本类型,自动装箱,当两者进行比较或计算时,自动拆箱
JDK7引入多异常并列的写法,即可以同时catch多个异常,例如 try{ 代码 } catch(异常1 | 异常2 ex ),异常之间不能有继承关系
JDK7也引入数字赋值的优化,例如用二进制直接给整形赋值,或者数字之间增加下划线,增强数字的可读性
JDK7之后接口也可以有具体实现了的方法了,但是要声明成default或者static或private才行,例如public default void test(String ing){代码},接口中的成员变量默认声明成 public static final ,方法默认声明成 public abstract
JDK7开始使用try-with-resource语法可以实现资源的自动关闭,前提是当前资源实现了AutoCloseable这个接口中close方法
JDK9之后ResourceBundle开始以UTF-8编码进行资源文件加载,这个时候再编写文件时不用再转Unicode编码了
JDK5 switch开始支持枚举类型,JDK7支持String,之前支持char,byte,short,int,JDK12支持多分支写法