Java平台体系:组成结构 运行机制 JRE/JDK/OpenJDK Java SE/EE/ME Java优点

转载: http://blog.csdn.net/tjiyu/article/details/53147064

Java平台体系:组成结构 运行机制 JRE/JDK/OpenJDK Java SE/EE/ME Java优点

       Java平台是一个庞大的体系,为了更好的使用Java,我们需要对Java平台体系有一个全面的了解。下面我们将会了解到:

1、什么是 Java 技术?为何需要 Java?

2、Java平台体系:

Java组成结构以及Java程序运行机制;

JRE、JDK以及OpenJDK的区别与联系;

三大标准平台:Java SE/ Java EE/ Java ME的区别与联系;

3、最后总结:Java优点是什么?

1、什么是 Java 技术?为何需要 Java?

       Java 是由 Sun Microsystems 在 1995 年首先发布的编程语言和计算平台。有许多应用程序和 Web 站点只有在安装 Java 后才能正常工作,而且这样的应用程序和 Web 站点日益增多。Java 快速、安全、可靠。从笔记本电脑到数据中心,从游戏控制台到科学超级计算机,从手机到互联网,Java 无处不在!

2、Java平台体系

2-1、Java平台组成结构 以及 Java程序运行机制

       Java平台按功能实现的不同,可以划分为如下四个组成部分,下面简单说说每个组成部分的作用,也就是Java程序运行机制:

1、Java API类库

       JDK中提供的Java SE API 、以及第三方类库等;

       编程中调用API,运行时,JVM中类加载器会把相应的API class文件加载进来执行。

2、Java编程语言

       用来编写Java应用程序,具有简单性、面向对象、分布式、健壮性、安全性、平台独立与可移植性、多线程、动态性等特点;

       在”xx.java”程序文件中可使用Java API编程。

3、Java类文件格式

       “xx.java”文件经过/bin/javac编译器编译后,里面的每个类都会生成一个”xx.class”的类文件,称为Java字节码,这些文件都是按照规定的格式来存放类的数据和执行逻辑;

4、Java虚拟机

       Java虚拟机(Java Virtual Machine,JVM)作为 Java 字节码执行引擎,它在多种操作系统架构上提供 Java 运行时环境。Java HotSpot 虚拟机是 Java SE 平台的一个核心组件。它实现了 Java 虚拟机规范,并作为 Java 运行时环境中的一个共享库来提供。

       它包括class类加载器、JIT动态编译器、执行引擎、以及垃圾收集器等;

       class类加载器可以分为多种,可以自定义外部的类加载器,这里我们只说JVM基本的类加载器,它可以把需要执行的class类文件加载进来,进行检查验证等;

       JIT即时编译器(just-in-time compiler)将加载进来的class文件编译成优化成机器指令;

       解释器用来直接执行class文件中的字节码指令,称为解释执行,执行速度较慢;

       本地代码执行引擎用来执行经JIT编译的机器指令,速度快,但编译需要更多内存、时间,导致启动慢,并且class调用可能动态改变,导致需要重新编译;

所以通常是解释执行和编译执行混合的模式,JIT编译器只编译那些”热点代码”。

       执行过程中,可能会通过JNI(Java Native Interface)来调用本地类库,本地类库可以是系统相关类库,这样就可以发出系统调用,使用系统资源了;也可以是自己实现的一些类库,比如用C语言写一些复杂的算法提高执行效率。

2-2、JRE、JDK以及OpenJDK

       如上图,我们这里主要讲的JDK是指Sun(Oracle)官方的Java SE Development Kit,因为官方还提供Java EE SDK,它是Java EE的参考实现,是实现Java EE最全的开发工具包。

1、JRE(Java Runtime Envirnment)

       JRE是支持Java程序运行的标准环境,提供运行用 Java 编程语言编写的应用和小程序所需的库、Java 虚拟机和其他组件。主要包括Java API类库中的Java SE API(如rt.jar)、Java虚拟机(如/bin/java即HotSpot)。

       此外,JRE 还包括两项关键的部署技术:Java 插件 — 使小程序可以在常用浏览器中运行;以及 Java Web Start — 通过网络部署独立的应用。它还是用于企业软件开发和部署的 Java 2 Platform, Enterprise Edition (J2EE) 的基础。

2、JDK(Java Development Kit)

       JDK称为Java开发包或Java开发工具,是一个编写Java应用程序的开发环境。JDK是整个Java的核心,包括了Java程序设计语言、Java运行环境(JRE)、一些Java工具(文档工具javadoc、打包工具jar.exe等)和更多Java类库(如tools.jar)。

       JDK主要有:官方主流的OracleJDK,常用的还有OracleJDK的开源版本OpenJDK,其他还有Apache Harmony等。

3、JRE与JDK的区别

       JRE = Java SE API + JVM + Java 插件/Java Web Start部署技术;

       JDK = Java语言 + JRE + Java工具;

JRE是个运行环境,JDK是个开发环境。

开发Java程序需要JDK,而运行Java程序的时候就需要JRE。

JDK里面已经包含了JRE,因此只要安装了JDK,就可以编辑Java程序,也可以正常运行Java程序;

而用户运行普通的Java程序无须安装JDK,而只需要安装JRE即可,因为JDK包含了许多与运行无关的内容,占用空间较大。

JRE与JDK更多内容请参考:http://www.oracle.com/technetwork/cn/java/javase/tech/index.html

4、SunJDK 与 OpenJDK区别

      2006年11月13日,OracleJDK开源项目为OpenJDK,两者代码基本相同,可以认为性能、功能、执行逻辑是一致的;

       区别:OpenJDK采用GPL V2协议放出,而SunJDK则采用JRL放出。两者协议虽然都是开放源代码的,但是在使用上的不同在于GPL V2允许在商业上使用,而JRL只允许个人研究使用,所以OpenJDK中没有SunJDK中的一些商用闭源的功能,如JMX中的可选元件SNMP部份的代码、Deployment(部署)功能等。

5、OpenJDK发展

       JDK6时,OpenJDK基于研发中的JDK7建立;

OpenJDK7 Build20时建立OpenJDK6分支,剥离JDK7新功能,使OpenJDK6能部署应用;

JDK7正式发布后,OpenJDK7也同步更新为OpenJDK7 u1;

JDK8正式发布后,OpenJDK也同步更新为OpenJDK8;

6、Java EE SDK

Java EE是一系列技术规范,官方提供的Java EE SDK是Java EE的参考实现,是实现Java EE最全的开发工具包。

2-3、三大标准平台集合

       Java平台按应用业务领域的不同,可以划分为如下三个版本的标准集合:

1、Java SE(Java Standard Edtion)

Java标准版提供了用于开发桌面和服务器端企业应用程序的API和工具,可以让您在桌面和服务器以及目前要求较高的嵌入式环境中开发和部署 Java 应用;

更多参考:http://www.oracle.com/technetwork/cn/java/javase/tech/index.html

2、Java EE(Java Enterprise Edition)

       Java企业版是社区驱动的企业软件标准,提供了用于开发多层企业应用程序的API和工具,现如今,Java EE不仅仅是指一种标准平台,它更多的表达着一种软件架构和设计思想;

       更多参考:http://www.oracle.com/technetwork/cn/java/javaee/tech/index.html

3、Java ME(Java Micro Edition)

Java ME技术专门针对庞大的消费者空间,其涵盖了极小的商品范围,例如智能卡或寻呼机,直到机顶盒,几乎与计算机一样强大的设备。

4、Java SE 与 Java EE 区别

       Java EE是在Java SE基础上发展构建的,是一系列技术规范,官方提供的Java EE SDK是Java EE的参考实现,是实现Java EE最全的开发工具包,而我们常说的JDK只是包含Java SE API实现,Java SE中存在与Java EE有关的规范;Java EE 7主要包括下面一些技术规范:

       Web 应用技术:

Java Servlet 3.1

JavaServer Pages 2.3 (JSP)

Java API for WebSocket

Java API for JSON Processing

……

企业应用技术:

Enterprise JavaBeans 3.2(EJB)

Java Persistence 2.1(JPA)

Java Transaction API (JTA) 1.2

Java Message Service API 2.0(JMS)

……

       此外还有Web服务技术、管理和安全性技术等等,更多请参考:http://www.oracle.com/technetwork/cn/java/javaee/tech/index.html

3、Java优点是什么?

1、优秀的Java语言

Java语言具有简单性、面向对象、分布式、健壮性、安全性、平台独立与可移植性、多线程、动态性等特点,语法特性很少,语法简单,代码可读性高,学习成本低;

2、高性能虚拟机

隔离硬件、系统层,降低应用难度,同时解释与JIT热点编译配合执行,大大提高性能;

3、应用领域广泛

Java可以编写桌面应用程序、Web应用程序、分布式系统和嵌入式系统应用程序,Android也是基于Java的;

4、庞大而完善的生态系统

强大的IDE(Eclipse、IntelliJ Idea)、大量的第三方类库、众多的开发者以及很多杀手级应用(Hadoop,Tomcat)等;

5、开源,等等;

 

       上面我们对Java平台体系有了一个全面的了解,后面我们将全面深入的学习了解Java,下篇将会介绍Java的发展:先介绍 Java发展历史,然后在整个的发展史的基础上,抽取几个关注点的时间线,分别介绍各JDK版本的新特性、JVM发展、以及Java技术的应用发展……

 

 

【参考资料】

1、Oracle Java官网相关文档:http://www.oracle.com/technetwork/cn/java/index.html

2、Java官方站点:https://www.java.com/zh_CN

3、JVM HotSpot说明:http://www.oracle.com/technetwork/cn/java/javase/tech/index-jsp-136373-zhs.html

4、《深入理解Java虚拟机》

0 条评论
发表一条评论