Java发展史
# Java发展
本文主要介绍Java为什么得到广泛应用,Java技术体系,Java发展史,Java虚拟机发展。
# Java概述
Java从狭义上面指的是一门编程语言,从广义上讲指的是由一系列计算机软件和规范组成的技术体系。如今已经发展出一套成熟开发生态,广泛应用于嵌入式程序、服务器编程,大数据领域。
以下是2022年8月TIOBE编程指数——编程语言流行度度量,可以从图片中看到,Java仍然处于流行语言前三行列。
2022年8月TIOBE指数 图片来源:https://www.tiobe.com/tiobe-index/
Java获得广泛认可的原因:
- 1)是一门结构严谨、面向对象的编程语言;
- 2)摆脱了硬件束缚,实现“一次编译,到处运行”;
- 3)提供了相对安全的内存管理和访问机制,避免内存泄漏和指针越界问题;
- 4)实现了热点代码检测和运行时编译及优化;
- 5)拥有一套完整的应用程序开发接口,并且有丰富的第三方类库
# Java技术体系
Java技术体系划分有按照组成部分和按照服务领域两种划分方式;
按照技术体系划分如下:
- Java程序设计语言
- Java虚拟机
- Java类库
- Class文件格式
- 第三方Java类库 把Java程序设计语言、Java虚拟机、Java类库统称为JDK(Java Development Kit),是用于支持开发Java程序的最小环境;其中Java虚拟机和Java类库统称为JRE(Java Runtime Enviroment),是用于支持Java程序运行的标准环境。
按照服务领域划分:
- Java Card:支持Java程序运行在小内存设备(如智能卡)上的平台;
- Java ME:支持Java程序运行在移动终端(如诺基亚手机)上的平台,对Java核心API有所精简;
- Java SE:支持面向桌面级应用(如Windows)的平台,提供完整的Java核心API;
- JAVA EE:支持多层架构的企业硬应用(如CRM )的平台,除了提供Java SE API以外,还做针对性补充并提供相关部署支持;
# Java发展史
比较重要的时间点梳理:
1996年,1995年正式将Oak语言更改为Java之后,在1996-1-23号正式发布JDK1.0;
2004年,正式将产品版本号从
JDK1.x
修改成JDK.x
,该年发布JDK 5;- 增加自动装箱、泛型、动态注解、枚举、可变长参数、遍历循环(foreach)等语法特性;
2009年,Oracle以74亿美元,正式收购Sun公司,接替JDK 7的开发;
- 提供新的G1收集器
2014年,正式发布JDK 8
- 提供Lambda表达式支持,使得Java语言拥有流程函数式表达能力;
- 提供新的时间、日期API;
- 彻底移出HotSpot的永久代;
- ...
2017年,正式发布JDK 9,为避免众多功能特性集中捆绑在一个JDK版本导致引发的交付风险,将会在以后每年3月和9月各发布一个大版本,每六个版本(三年)推出一个长期支持(Long Term Support, LTS)版;
- 长期支持版有:JDK8、JDK11(2018年)、JDK17(2021年)
2018年,正式发布JDK 11,Oracle将JDK 11代码全部开源给Open JDK;
Oracle JDK和Open JDK本质上完全相同,共享大部分源码,功能几乎一样;
Orack JDK和Open JDK的核心差异:
- 前者个人免费,生产环境中使用必须收费,可以有三年的更新支持;
- 后者完全免费,可以在开发、测试、和生产环境中使用,但是只有半年时间更新支持;
总结就是,Oracle在迫使商业用户要么不断升级JKD版本,要么就去购买商业支持,并非是Java就要收费。
# Java虚拟机
- 虚拟机始祖:Sun Classic/Exact VM
- 武林盟主:HotSpot VM
- 小家碧玉:Mobile/Embedded VM
- 天下第二:BEA JRockit/IBM J9 VM
- 软硬合璧:BEA Liquid VM/Azul VM
- 挑战者:Apache Harmony/Google Android Dalvik VM
# 参考与感谢
编辑 (opens new window)
上次更新: 2022/11/26, 22:18:38
- 01
- 基于微服务案例的Maven实战05-08
- 02
- 使用Seata彻底解决Spring Cloud中的分布式事务问题11-26
- 03
- Spring Boot整合RabbitMQ实现延迟消息11-26