以前一直在学java程序设计语言,学完了就以为自己已经把java学得差不多了,直到最近在看一本书《深入理解java虚拟机》,才发现自己以前学的只不过是冰山一角。相信很多小伙伴跟我一样,在没有了解过java技术体系之前,都搞不明白Java SE,Java EE一系列跟Java是什么关系,今天就来简单说一下java技术体系。
(1)从传统意义上来说,sun公司定义的Java技术体系包括以下几个部分:
- Java程序设计语言
- 各种硬件平台上的Java虚拟机
- Class文件格式
- Java API类库
- 来自商业机构和开源社区的第三方Java类库
Java程序语言不用多说,就是我们平常编写的代码等等,我们一开始也是从语言学起;
Java虚拟机则是很重要的一部分,我们都知道Java除了面向对象之外,还有很多其他优点,比如:摆脱了硬件平台的束缚,实现“一次编写,到处运行”,那java是怎么实现这个技术的呢?是因为Java虚拟机有自己一套完善的硬件架构和指令系统,不管具体的操作系统平台是什么,Java程序只要生成在Java虚拟机上运行的目标代码,就可以在多种平台上运行。
Class文件格式也是Java能够跨平台的基础,Java字节码能够跨不同的虚拟机在不同的平台上运行,是因为这些字节码按照Calss文件格式规范组成了Class文件,不同的语言都可以根据Calss文件格式生成能够在JVM上运行的字节码。
Java API类库的作用也十分强大,我们在写代码的时候,经常会用到import,实际上我们导入的就是Java程序设计师已经打包好的接口和类,这些接口和类对应着实现某些具体的功能,我们在编写程序时,可以直接把这些接口和类拿来使用,大大提高了编程效率。此外,API除了有“应用程序编程接口”的意思,还特指API的说明文档,也称为帮助文档,里面包含了很多java 类和方法说明,是编写java必不可少的帮助工具,everybody 用起来呀!
有需要帮助文档的可以去我网盘里下载哦
链接:https://pan.baidu.com/s/17CLdvpKitX70fbmjvQ8ehg
提取码:ymbq
第三方Java类库嘛,我也不知道是啥,有兴趣的小伙伴可以自己上网搜一搜~
(2)如果按照Java技术所关注的重点领域来分,Java技术体系可以分为四个平台:
- 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外,还对其做了大量的补充并提供了相关的部署支持,以前被称为J2EE。
如果按照我的理解,就直接把他们理解为关注的领域由小到大嘿嘿嘿~
(3)在这里还想多提几句,第一种划分方法中,我们一般把Java 程序设计语言,Java虚拟机、Java API类库这三部分统称为JDK(Java Development Kit),JDK是用于支持Java程序开发的最小环境。而一般把Java API类库中的Java SE API子集和Java虚拟机这两部分统称为JRE(Java Runtime Environment),JRE是支持Java程序运行的标准环境,二者一定要区分开来。