水生的网络日志 水生的网络日志
首页
  • 前言
  • Java核心
  • 企业级开发
  • 数据库
  • 计算机基础
  • 求职面试
  • 技术文档
  • GitHub技巧
  • Nodejs
  • 博客搭建
  • 技术文档
  • GitHub技巧
  • Nodejs
  • 博客搭建
  • 分类
  • 标签
  • 归档
关于
GitHub (opens new window)

水生

记录我的所思、所学、所想
首页
  • 前言
  • Java核心
  • 企业级开发
  • 数据库
  • 计算机基础
  • 求职面试
  • 技术文档
  • GitHub技巧
  • Nodejs
  • 博客搭建
  • 技术文档
  • GitHub技巧
  • Nodejs
  • 博客搭建
  • 分类
  • 标签
  • 归档
关于
GitHub (opens new window)
  • 前言

  • Java核心

    • Java概述

      • Java简介
      • Java发展史
        • Java概述
        • Java技术体系
        • Java发展史
        • Java虚拟机
        • 参考与感谢
    • Java基础

  • 企业级开发

  • 数据库

  • 计算机基础

  • 求职面试

  • 知识库
  • Java核心
  • Java概述
水生
2022-11-20
目录

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

# 参考与感谢

  • 深入理解Java虚拟机(第3版) (opens new window)
编辑 (opens new window)
#Java#编程语言
上次更新: 2022/11/26, 22:18:38
Java简介
Java基础编程模型

← Java简介 Java基础编程模型→

最近更新
01
基于微服务案例的Maven实战
05-08
02
使用Seata彻底解决Spring Cloud中的分布式事务问题
11-26
03
Spring Boot整合RabbitMQ实现延迟消息
11-26
更多文章>
Theme by Vdoing | Copyright © 2019-2022 水生 | MIT License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式