JAVA
java之父
詹姆斯·高斯林 (James Gosling)是一名软件专家,1955年5月19日出生于加拿大,Java编程语言的共同创始人之一,一般公认他为“Java之父”
詹姆斯·高斯林毕业后到IBM工作,设计IBM第一代工作站NeWS系统,但不受重视。后来转至Sun公司。1990年,与Patrick Naughton和Mike Sheridan等人合作“绿色计划”,
后来发展一套语言叫做“Oak”,后改名为Java。1994年底,James Gosling在硅谷召开的“技术、教育和设计大会”上展示Java程式。2000年,Java成为世界上最流行的电脑语言
Java发展史
1995年5月23日,Java语言诞生
1996年1月,第一个JDK–JDK1.0诞生
1996年4月,10个最主要的操作系统供应商申明将在其产品中嵌入JAVA技术
1996年9月,约8.3万个网页应用了JAVA技术来制作
1997年2月18日,JDK1.1发布
1997年4月2日,JavaOne会议召开,参与者逾一万人,创当时全球同类会议规模之纪录
1997年9月,JavaDeveloperConnection社区成员超过十万
1998年2月,JDK1.1被下载超过2,000,000次
1998年12月8日,JAVA2企业平台J2EE发布
1999年6月,SUN公司发布Java的三个版本:标准版(J2SE)、企业版(J2EE)和微型版(J2ME)
2000年5月8日,JDK1.3发布
2000年5月29日,JDK1.4发布
2001年6月5日,NOKIA宣布,到2003年将出售1亿部支持Java的手机
2001年9月24日,J2EE1.3发布
2002年2月26日,J2SE1.4发布,自此Java的计算能力有了大幅提升
2004年9月30日18:00PM,J2SE1.5发布,成为Java语言发展史上的又一里程碑。为了表示该版本的重要性,J2SE1.5更名为Java SE 5.0(因为新特新增加特别多,所以起了个高大上的名字!)
2005年6月,JavaOne大会召开,SUN公司公开Java SE 6。此时,Java的各种版本已经更名,以取消其中的数字“2”:J2EE更名为Java EE,J2SE更名为Java SE,J2ME更名为Java ME
2006年12月,SUN公司发布JRE6.0
2009年12月,SUN公司发布Java EE 6
2011年7月28日,Oracle公司发布Java SE 7
2014年3月18日,Oracle公司发表Java SE 8
2018年03月21日,Oracle公司发表Java SE 10
2018年09月25日,Oracle公司发表Java SE 11
从Java SE9开始遵循半年一个版本的更新速度,Oracle将每三年指定一个版本作为长期支持(LTS)版本。到目前为止,已经发布了Java SE11、Java SE12
目前Java SE 8是市场的主流版本
Java版本新特性
Java 1.0
Java虚拟机
Applet
AWT
Java 1.1
JAR文件格式
JDBC
Java Beans
RMI
Java 1.2
EJB
Java Plug-in
Java IDL
Swing
Java 1.3
Math
Timer API
JNDI
RMI-IIOP
Java 2D API
Java Sound
Java 1.4
Regular Expressions
异常链
NIO
日志类
XML解析器
XSLT解析器
Java 1.5
自动装箱与拆箱
泛型
动态注解
枚举
可变长参数
遍历循环
静态导入
Java 6
提供动态语言支持
Desktop类和SystemTray类
使用JAXB2来实现对象与XML之间的映射
理解STAX
使用Compiler API
轻量级 Http Server API
插入式注解处理 API
使用Console开发控制台程序
Common Annotations
Java GUI界面的显示
嵌入式数据库Derby
Web服务元数据
Jtable的排序和过滤
更简单更强大的JAX-WS
Java 7
switch语句中可以使用字符串
泛型实例化类型自动推断
自定义自动关闭类
新增一些读取环境信息的工具方法
Boolean类型反转,空指针安全,参与位运算
两个char之间的equals
更加安全的加减乘除
对Java集合( Collections)的增强支持
数值可加下划线
支持二进制数字
Java 8
接口的默认方法
1.允许在接口中定义非抽象方法,但是需要关键字default修饰
接口中默认方法的定义格式:
格式:public default 返回值类型 方法名(参数列表){}
范例:public default void show(){}
接口中默认方法的注意事项:
默认方法不是抽象方法,不强制被重写。重写的时候去掉default关键字
public 可以省略,default不能省略
如果实现了多个接口,而且存在相同的方法声明,子类必须对该方法重写
2.允许定义static静态方法
静态方法的定义格式:
格式:public static 返回值类型 方法名(参数列表){}
范例:public static void show(){}
静态方法的注意事项:
静态方法只能通过接口名调用,不能通过实现类名或者对象名调用
public 可以省略,static不能省略
Lambda表达式
函数式接口
方法与构造函数引用
扩展了集合类
新的Date API
Annotation多重注解
Streams API
Parallel Streams
Map数据结构改进
Java 9
Jigsaw模块化项目
简化进程API
轻量级JSON API
钱和货币的API
改善锁竞争机制
代码分段缓存
智能java编译
HTTP2.0客户端
Kulla计划
Java 10
局部变量的类型推断
GC改进和内存管理
线程本地握手
备用内存设备上的堆分配
其他Unicode语言 - 标记扩展
基于Java的实验性JIT编译器
开源根证书
根证书颁发认证(CA)
将JDK生态整合单个存储库
删除工具javah
Java REPL(JShell)
Java 11
本地变量类型推断
字符串增强
集合增强
Stream 增强
Optional 增强
InputStream 增强
标准化HTTP Client API
单个命令编译运行源代码
Java 12
Switch表达式
Shenandoah垃圾回收集
JVM Constants API
Default CDS Archives