一、前言

此系列随笔是针对《深入理解Java虚拟机:JVM高级特性与最佳实践 第2版》的总结

上一节,我们搭建好了java的开发环境,这一节,我们来看Java的技术体系

二、Java技术体系

1.按功能划分

如 果 仅 从 传 统 意 义 上 来 看, Sun 官 方 所 定 义 的 Java 技 术 体 系 包 括 以 下 几 个 组 成 部 分:

  • Java程序设计语言
  • Java API,包括 Java API类库 和 来自商业机构以及开源社区的第三方类库
  • Class 文件格式
  • 各种硬件平台上的Java 虚 拟 机

1.1 名词解释

简称 全称 含义
Java SE Java Platform Standard Edition java 平台标准版
JDK Java SE Development Kit Java 语言的软件开发工具包(SDK)
JRE Java Runtime Environment Java运行时环境
JVM Java Virtual Machine Java虚拟机

1.2 JDK

全称:Java SE Development Kit —— Java 语言的软件开发工具包(SDK)

我们可以把 Java程序设计语言Java API类库Java虚拟机这三部分统称为 JDK,JDK是用于支持Java程序开发的最小环境。

JDK的组成结构如下图(来自 JDK8官方文档 首页)

1.3 JRE

全称:Java Runtime Environment —— Java运行时环境

如上图,我们可以把Java API类库中的Java SE API子集Java虚拟机这两部分统称为 JRE( Java Runtime Environment),JRE是支持Java程序运行的标准环境。

1.4 JVM

全称:Java Virtual Machine —— Java虚拟机

JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。

1.5 jdk、jre、jvm的关系

三者的关系为:

JDK包含了JRE

JRE包含了JVM

2.按业务领域划分

如 果 按 照 技 术 所 服 务 的 领 域 来 划 分, 或 者 说 按 照 Java 技 术 关 注 的 重 点 业 务 领 域 来 划 分, Java 技 术 体 系 可 以 分 为 4 个 平 台, 分 别 为:

  • Java Card

支 持 一 些 Java 小 程 序( Applets) 运 行 在小 内 存 设 备( 如 智 能 卡) 上 的 平 台。

  • Java ME( Micro Edition)

支 持 Java 程 序 运 行 在 移 动 终 端( 手 机、 PDA) 上 的 平 台, 对 Java API 有 所 精 简, 并 加 入 了 针 对 移 动 终 端 的 支 持, 这 个 版 本 以 前 称 为 J2ME。

  • Java SE( Standard Edition)

支 持 面 向 桌 面 级 应 用( 如 Windows 下 的 应 用 程 序) 的 Java 平 台, 提 供 了 完 整 的 Java 核 心 API, 这 个 版 本 以 前 称 为 J2SE。

  • Java EE( Enterprise Edition)

支 持 使 用 多 层 架 构 的 企 业 应 用( 如 ERP、 CRM 应 用) 的 Java 平 台, 除 了 提 供 Java SE API 外, 还 对 其 做 了 大 量 的 扩 充[ 3] 并 提 供 了 相 关 的 部 署 支 持, 这 个 版 本 以 前 称 为 J2EE。

三、Java的优点

Java能获得如此广泛的认可,除了它拥有一门结构严谨、面向对象的编程语言之外,还有许多不可忽视的优点:

  1. 跨平台

它摆脱了硬件平台的束缚,实现了“一次编写、到处运行”

  1. 相对安全的内存管理和访问机制

它提供了一个相对安全的内存管理和访问机制,避免了绝大部分的内存泄露和指针越界问题

  1. 热点代码检测和运行时编译及优化

它实现了热点代码检测和运行时编译及优化,这使得Java应用能随着运行时间的增加而获得更高的性能

  1. 完整的应用程序接口和第三方类库

它有一套完整的应用程序接口,还有无数来自商业机构和开源社区的第三方类库来帮助它实现各种各样的功能

四、参考资料

  1. Java Platform Standard Edition 8 Documentation
  2. 五月的仓颉——Java虚拟机1:什么是Java
  3. 弄懂JDK、JRE和JVM到底是什么

JVM_总结_02_Java技术体系的更多相关文章

  1. [转] EJB 3和Spring技术体系比较

    最近在学习EJB 3,对于SSH与EJB3,一直不太明白“即生瑜,何生亮?”,今天无意看到一篇旧文,比较系统的对比了这二种技术架构,转载于此: 原文出处:http://www.51cto.com/sp ...

  2. 20140912-关于.NET技术体系的思维导图

    逛园子时看到的. 关于.NET技术体系的思维导图

  3. .NET平台技术体系梳理+初学者学习路径推荐+我们的愿景与目标

    文章出自:http://www.cnblogs.com/ice-river/p/3475041.html 一 .NET平台技术体系梳理 .NET平台应用领域众多(桌面开发,web开发,移动开发),不断 ...

  4. JAVA技术体系发展路线

    JAVA技术体系 1.1 Java程序员 ·高级特性 反射.泛型.注释符.自动装箱和拆箱.枚举类.可变参数.可变返回类型.增强循环.静态导入 ·核心编程 IO.多线程.实体类.集合类.正则表达式.XM ...

  5. .NET平台技术体系

    .NET平台技术体系梳理+初学者学习路径推荐+我们的愿景与目标 一 .NET平台技术体系梳理 .NET平台应用领域众多(桌面开发,web开发,移动开发),不断有新的编程爱好者开始学习或从其他平台转移到 ...

  6. Houdini技术体系 基础管线(四) :Houdini驱动的UE4植被系统 上篇

    背景 之前在<Houdini技术体系 过程化地形系统(一):Far Cry5的植被系统分析>一文中已经对AAA游戏中过程化植被的需求有了一定的定义,后续工作就是如何用Houdini开发功能 ...

  7. Houdini技术体系 基础管线(三) :UE4 Landscape Component的多选支持 下篇

    背景 上篇中,我们介绍了如何修改Houdini Enigne来设置单个Landscape Compnent的Height和Layer的数据,但原生Houdini Engine并不支持多选Compone ...

  8. 深入理解java虚拟机----java技术体系(一)

    1.java技术体系 举例: class文件格式:如下图所示,java源代码可以根据不同的编译器可以编译成不同的代码.即可以自定义语言规范比如beanshell,并编写代码; 然后自己编写java编译 ...

  9. 揭秘Java架构技术体系

    Web应用,最常见的研发语言是Java和PHP. 后端服务,最常见的研发语言是Java和C/C++. 大数据,最常见的研发语言是Java和Python. 可以说,Java是现阶段中国互联网公司中,覆盖 ...

随机推荐

  1. springboot添加对listener,servlet,filter的支持

    比较常用的方式就是使用注解来添加对 监听器,过滤器,servlet的支持. 1.首先在启动类上添加  @ServletComponentScan  开启 对监听器,过滤器,servlet的注解扫描. ...

  2. 标准c内存函数的使用方法

    标准c内存函数 calloc 语法:     #include <stdlib.h>   void *calloc( size_t num, size_t size ); 功能: 函数返回 ...

  3. Python基础(6)_函数

    一 为何要有函数? 不加区分地将所有功能的代码垒到一起,问题是: 代码可读性差 代码冗余 代码可扩展差 如何解决? 函数即工具,事先准备工具的过程是定义函数,拿来就用指的就是函数调用 结论:函数使用必 ...

  4. Mac 环境 下使用Charles 抓包Http/Https请求

    实现目标 在Mac 上 对 iOS  真机 和 模拟器 进行 Http/Https抓包 使用工具 Mac 上 Charles 4.2  安装 参考链接 1. 和 链接 2. 抓包 http 请求 (1 ...

  5. linux中安装软件的集中方法

    一.rpm包安装方式步骤: 引用:1.找到相应的软件包,比如soft.version.rpm,下载到本机某个目录:2.打开一个终端,su -成root用户:3.cd soft.version.rpm所 ...

  6. springboot-项目属性配置

    springboot如何新建一个项目参考博客:https://www.cnblogs.com/junyang/p/8151802.html 在springboot默认生成的配置文件的格式是:appli ...

  7. HTML5模拟衣服撕扯动画

    在线演示 本地下载

  8. Django 详解<二> 之url和view

    Django URL(路由系统) RL配置(URLconf)就像Django 所支撑网站的目录.它的本质是URL模式以及要为该URL模式调用的视图函数之间的映射表:你就是以这种方式告诉Django,对 ...

  9. 机器学习相关知识整理系列之二:Bagging及随机森林

    1. Bagging的策略 从样本集中重采样(有放回)选出\(n\)个样本,定义子样本集为\(D\): 基于子样本集\(D\),所有属性上建立分类器,(ID3,C4.5,CART,SVM等): 重复以 ...

  10. RDLC 微软报表 导出Excel时产生多个工作表 (worksheet)

    . I have added two obejcts data source to Report Viewer. 2. in RDLC i have created two tables and in ...