JDK技术体系
相信大家都有一段被JDK支配的恐惧,java学习之初配置环境变量的时候肯定特别懵逼,为什么要这所谓的JDK呢?JDK是什么呢?
我们可以把java程序设计语言、java虚拟机、java类库中三部分称为JDK(Java Development Kit)。
JDK用于支持java程序开发的最小环境。SUN公司除了提供JDK,还提供了一种JRE(JavaRuntimeEnvironment)工具,它是Java运行环境,是提供给普通用户使用的。为了方便使用,SUN公司在其JDK工具中自带了一个JRE工具,也就是说开发环境中包含运行环境,这样一来,开发人员只需要在计算机上安装JDK即可,不需要专门安装JRE工具了。
![](https://img-blog.csdnimg.cn/img_convert/5673db780c5eefbe413c33f2f4e89de9.png)
从技术所服务的领域来看,Java技术体系包括以下几个组成部分:
- Java Card:支持Java程序运行在小内存设备(如智能卡)上的平台
- Java ME:支持Java程序运行在移动设备(如手机、PDA)上的平台
- Java SE:支持面向桌面级应用的Java平台
- Java EE:支持使用多层架构的企业级应用
java的发展史
1995年5月23 java(原名Oak)诞生,并且在SunWorld大会上正式发表了java1.0版本。
1996年1月23 JDK1.0发布Java语言有了第一个正式版本的运行环境。JDK1.0提供了一个纯解释执行的Java虚拟机的实现(Sun class VM)。JDK1.0的代表技术:JVM,Applet,AWT.
1997年2月19日,JDK1.1,新特性:JAR文件格式、JDBC、JavaBean、RMI、内部类(Inner class)、反射(Reflection)
1998年12月4日,JDK1.2,新特性:基础体系拆分:J2SE(面向桌面应用程序开发)、J2EE(面向企业级应用开发程序开发)、J2ME(面向手机等移动终端开发),技术:EJB、Java Plug-in、JavaIDL 、Swing、JIT(Just In Time)编译器.
2000年5月8日JDK1.3:使用CORBA IIOP实现RMI的通信协议,改进Java2D,添加JavaSound类库。
2002年2月13日JDK1.4 ,新特性:正则表达式,异常链,NIO,日志类,XML解析器,XLST转换器。
2004年9月30日,JDK1.5,新特性:自动装箱、泛型、动态注解、枚举、可变长参数、遍历循环。
2006年12月11日,JDK1.6,新特性:提供动态语言支持、提供编译API和卫星HTTP服务器API,改进JVM的锁,同步垃圾回收,类加载。
2009年2月19日JDK1.7,新特性:提供GI收集器、加强对非Java语言的调用支持(JSR-292,升级类加载架构。
2014 年 3 月 18 日 JDK1.8新特性:Lambda 表达式、方法引用、默认方法、新工具、Stream API、Date Time API 、Optional 类、Nashorn, JavaScript 引擎。
2017年9月21日jdk9.0,新特性:模块系统、HTTP 2 客户端、多版本兼容 JAR 包、私有接口方法、改进的 Stream API、响应式流(Reactive Streams) API:
2018年3月21日jdk10,新特性:var 局部变量类型推断、统一的垃圾回收接口
2018年9月25日jdk11,新特性:HTTP客户端(标准)、无操作垃圾收集器。首个LTS版本
2019年3月19日jdk12:新增一个名为 Shenandoah 的垃圾回收器、扩展switch语句的功能、改进 G1 垃圾回收器
从JDK1.0发展到现在的JDK16,其中出现了很多里程碑和一些重大的改动。
在这么多的JDK版本中我们应该如何选择呢?
在众多的JDK版本中分为普通版和LTS(长期支持)版,普通版Oracle公司只会维护六个月,LTS版会获得三年的支持和更新,JDK11和JDK8会是LTS版,今后的每六个大版本会成为LTS版,下一次就是JDK17了。所以我们尽量选择LTS版,不应该一味的选择高版本。稳定的版本才是最好的选择。