JVM_总结_02_Java技术体系
一、前言
此系列随笔是针对《深入理解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能获得如此广泛的认可,除了它拥有一门结构严谨、面向对象的编程语言之外,还有许多不可忽视的优点:
- 跨平台
它摆脱了硬件平台的束缚,实现了“一次编写、到处运行”
- 相对安全的内存管理和访问机制
它提供了一个相对安全的内存管理和访问机制,避免了绝大部分的内存泄露和指针越界问题
- 热点代码检测和运行时编译及优化
它实现了热点代码检测和运行时编译及优化,这使得Java应用能随着运行时间的增加而获得更高的性能
- 完整的应用程序接口和第三方类库
它有一套完整的应用程序接口,还有无数来自商业机构和开源社区的第三方类库来帮助它实现各种各样的功能
四、参考资料
JVM_总结_02_Java技术体系的更多相关文章
- [转] EJB 3和Spring技术体系比较
最近在学习EJB 3,对于SSH与EJB3,一直不太明白“即生瑜,何生亮?”,今天无意看到一篇旧文,比较系统的对比了这二种技术架构,转载于此: 原文出处:http://www.51cto.com/sp ...
- 20140912-关于.NET技术体系的思维导图
逛园子时看到的. 关于.NET技术体系的思维导图
- .NET平台技术体系梳理+初学者学习路径推荐+我们的愿景与目标
文章出自:http://www.cnblogs.com/ice-river/p/3475041.html 一 .NET平台技术体系梳理 .NET平台应用领域众多(桌面开发,web开发,移动开发),不断 ...
- JAVA技术体系发展路线
JAVA技术体系 1.1 Java程序员 ·高级特性 反射.泛型.注释符.自动装箱和拆箱.枚举类.可变参数.可变返回类型.增强循环.静态导入 ·核心编程 IO.多线程.实体类.集合类.正则表达式.XM ...
- .NET平台技术体系
.NET平台技术体系梳理+初学者学习路径推荐+我们的愿景与目标 一 .NET平台技术体系梳理 .NET平台应用领域众多(桌面开发,web开发,移动开发),不断有新的编程爱好者开始学习或从其他平台转移到 ...
- Houdini技术体系 基础管线(四) :Houdini驱动的UE4植被系统 上篇
背景 之前在<Houdini技术体系 过程化地形系统(一):Far Cry5的植被系统分析>一文中已经对AAA游戏中过程化植被的需求有了一定的定义,后续工作就是如何用Houdini开发功能 ...
- Houdini技术体系 基础管线(三) :UE4 Landscape Component的多选支持 下篇
背景 上篇中,我们介绍了如何修改Houdini Enigne来设置单个Landscape Compnent的Height和Layer的数据,但原生Houdini Engine并不支持多选Compone ...
- 深入理解java虚拟机----java技术体系(一)
1.java技术体系 举例: class文件格式:如下图所示,java源代码可以根据不同的编译器可以编译成不同的代码.即可以自定义语言规范比如beanshell,并编写代码; 然后自己编写java编译 ...
- 揭秘Java架构技术体系
Web应用,最常见的研发语言是Java和PHP. 后端服务,最常见的研发语言是Java和C/C++. 大数据,最常见的研发语言是Java和Python. 可以说,Java是现阶段中国互联网公司中,覆盖 ...
随机推荐
- redis性能测试以及影响性能的因素
redis-benchmark测试工具的命令使使用方法及参数如下:redis-benchmark [-h <host>] [-p <port>] [-c <clients ...
- Spring Boot之AOP面向切面编程-实战篇
目录 前言 编程范式主要有以下几类 引入pom依赖 aop注解 实现日志分割功能 前言 AOP是一种与语言无关的程序思想.编程范式.项目业务逻辑中,将通用的模块以水平切割的方式进行分离统一处理,常用于 ...
- [笔记]一道C语言面试题:大整数乘法
题目:输入两个数字字符串,如“1234567890”和“987654321”,返回二者相乘的结果字符串,如本例返回为“1219326311126352690”. 来源:某500强企业面试题目 思路:从 ...
- Docker部署JavaWeb项目实战
林炳文Evankaka原创作品.转载请注明出处http://blog.csdn.net/evankaka 摘要:本文主要讲了如何在Ubuntu14.04 64位系统下来创建一个运行Javaweb应用程 ...
- 联合文件系统 unionfs
- $Eclipse+Tomcat搭建本地服务器并跑通HelloWorld程序
本文结构:(一)环境准备(二)在Eclipse里创建Dynamic Web工程(三)写一个简单的Servlet类并配置web.xml(四)运行程序 (一)环境准备 1.Eclipse:要使用for J ...
- Linux Shell编程 sort、wc命令
sort命令:字符串排序 sort 命令可以依据不同的数据类型来进行排序.sort 将文件的每一行作为一个单位,相互比较.比较原则是从首字符向后,依次按 ASCII 码值进行比较,最后将它们按升序输出 ...
- Qt5.3.0的安装与测试
Qt5.3.0的安装与测试(交叉编译,用于arm,支持tslib触摸屏) 本次移植可以使用触摸屏. 首先下载源码包: http://download.qt.io/official_releases/q ...
- Linux 基础一---操作系统&常用命令
UNIX是一个计算机操作系统,一个用来协调.管理和控制计算机硬件和软件资源的控制程序. 1.UNIX操作系统的特点:多用户和多任务: a) 多用户表示在同一时刻可以有多个用户同时使用UNIX操作系统而 ...
- R的t-test检验
1.t-test的功能:单因素二水平的假设检验. H0:与我们想过要的结果相反的假设,比如我们想要的是两组数据的差异性,那么这个假设是:两组数据没有差异性. H1或Ha:备择假设,与H0假设相反. 2 ...