Java 9
- 目录结构
- repl工具 jShell命令
- 模块化
- 多版本兼容jar包
- 接口方法的改进(在接口中 jdk7 只能声明全名常量和抽象方法 jdk8 添加了静态方法和默认方法 jdk9添加了私有方法)
- 钻石操作符升级 可以有{}
- 异常处理try升级
- 下划线标识符命名的限制 _ 不允许了
- String底层存储结构的变更(char数组变成byte字节数组)
- 增强了Stream API(在java8基础上,新增加4个方法)
- jdk9 中引入httpClient api 代替原有的HttpURLConnection
Java 1.8(TODO)
Java新特性
- Lambda表达式和函数式接口
- 接口的默认方法和静态方法
- 方法引用
- 重复注释
- 更好的类型推断
- 注解的扩展
Java编译器的新特性
- 参数名字
Java 库的新特性
- Optional
- Stream
- 日期时间API(JSR310)
- Nashorn javascript引擎
- Base64
- 并行数组
- 并发
新的工具
- Nashorn引擎:jjs
- 类依赖分析工具:jdeps
JVM的新特性
JVM内存永久区已经被metaspace替换(JEP 122)。JVM参数 -XX:PermSize 和 –XX:MaxPermSize被XX:MetaSpaceSize 和 -XX:MaxMetaspaceSize代替。
Java 1.7(TODO)
- switch中可以使用字串
- 泛型实例化类型自动推断,例如List list = new ArrayList<>();
- 在一个语句块中捕获多种异常;
- 自定义自动关闭类(AutoCloseable接口 )
- 数字字面量下划线支持
- 二进制字面量
Java 1.6
- Web服务元数据(java6 原生webService注解应用)
- 脚本语言支持 (Java SE 6 新特性
对脚本语言的支持) - JTable的排序和过滤(完整代码示例)
- 更简单,更强大的JAX-WS (JDK6的新特性之十一:更简单,更强大的JAX-WS)
- 轻量级Http Server (Java SE 6 新特性
HTTP 增强) - 嵌入式数据库 Derby (学习Java6-嵌入式数据库 Derby)
Java 1.5
特性
- 泛型(Generic)(Java泛型)
- 类型安全枚举(Java enum的用法详解)
- 内省(Introspector)(深入理解Java:内省(Introspector))
- 静态导入
- 可变长参数(Varargs)
- 遍历循环(foreach循环)
- 自动装箱与拆箱(Java中的自动装箱与拆箱)
- 元数据(动态注解)
类变化
- Scanner
Java 1.4
- 正则表达式
- 异常链(Java异常学习三:异常链)
- NIO
- 日志类(JDK Logging深入分析、Java 日志系列篇一 原生 Java.util.logging)
- XML解析器
- XSLT转换器
Java 1.3
- 类库改进(数学运算、Timer API等)
- JNDI服务作为平台级服务提供
- 引入Java Sound API
Java 1.2
- 引入集合框架;
- 对字符串常量做内存映射;
- 引入JIT(Just In Time)编译器
- 引入对打包的Java文件进行数字签名;
- 引入控制授权访问系统资源的策略工具;
- 引入JFC(Java Foundation Classes), 包括Swing 1.0, 拖放和Java2D类库;
- 引入Java插件;
- 在JDBC中引入可滚动结果集,BLOB,CLOB,批量更新和用户自定义类型;
- 在Applet中添加声音支持.
Java 1.1
特性
- 引入JDBC(Java DataBase Connectivity);
- 支持内部类;
- 引入Java Bean;
- 引入RMI(Remote Method Invocation)
- 引入反射(仅用于内省)
类变化
- 输入系统Reader及其子类,输出系统Writer及其子类
Java 1.0
特性
- Java虚拟机
- Applet
- AWT
常用类
- 输入系统InputStream及其子类;输出系统OutputStream及其子类
- File