文章目录
J2SE、J2EE以及J2ME,我的理解
常常会在网络中看到这三个词。
J的含义
它们都是有关Java的缩写,分别表示标准版、企业版和微型版。
三个词共有的J表示Java;
2的前世今生
2代表的含义,我理解Java最开始由Sun公司开发出来是从1开始命名,一直到1.2之前都存在较大版本缺陷。1.2版本开始就有很大的革新,但Sun并没有用1.2,而是改用2.0。这也就是J2的来历。但后续版本中J2被Sun公司取消使用,改成了Java SE、JavaEE以及JavaME。所以J2也成为了历史。
S、E、M的区别
S、E、M,分别表示Standard、Enterprise、Micro的缩写,字面翻译就是标准版、企业版、微型版。其中,标准版主要用作个人计算机上,企业版用在公司服务器中,个人版的全部功能都包含在企业版中;对于微型版而言,它主要用在小型电子设备当中,包括了标准版中的核心类,也增加了适合微小装置的类库,比如javax.microedition.io.*。以上就是三者的不同。
Java版本的选择,从稳定性分析
打开Oracle网站发现,目前的Java版本每半年即更新一次,相比Oracle收购Sun之初,每三年发布一次的频率而言,这样的更新速度可能会导致最新Java的版本可能会存在一些漏洞,带来使用上的不稳定。所以,为了给用户提供稳定的服务,企业主流的版本通常是7、8和11,其中版本7和8之间相隔3年,而8和11之间相隔3年,从这个角度考虑,个人学习更推荐使用这三个版本。
Java的运行效率和C相比差在哪里
优缺点同源,Java文件的跨平台性
Java的跨平台性,给它带来了优点和缺点。
Java程序被写出来之后是.java格式,这其中可以包含注释,在终端使用javac命令编译成.class格式后,才可以被不同计算机系统中的不同JVM运行,JVM起的是翻译的作用,这也就是Java文件的跨平台性的优点,一次编写,全平台都可以用,对于软件开发的效率而言会很快。
而对于其它语言,比如C,在不同的计算机系统平台中,需要对应的开发不同的文件,再进行运行,这也就导致它需要编写很多次。
多了JVM翻译的过程,被追求速度的场景弃用
而正因为JVM的翻译过程,导致软件运行的速度相比C语言而言会比较慢,这也就是它的缺点所在。如果追求数据与软件交互过程中的实时响应,比如桥梁健康监测系统,若要求系统在获取到传感器数据以后,能相对更快的做出运算,以便中心进行决策,Java在这样的场景下就不太适合使用;类似的还有车载系统的快速响应等。
所以我的一个朋友,在开发桥梁健康监测系统的时候,数据传输的关键部分直接用汇编语言进行编写,这样就可以跳过中间的编译,更偏向底层,运行速度比C还要快。
JDK、JRE、以及JVM
三个词都有的J表示Java
JDK全称是Java Development Kit,也就是Java的开发环境,开发人员必装;
JRE全称是Java Running Environment,也就是Java的运行环境,Java的使用客户必装;
JVM全称是Java Virtual Machine,也就是Java虚拟机,Java实现跨平台的核心工具。
通过查看Java安装目录可以看到,JRE和JDK在安装路径中并列存在,然后JDK的文件夹下也包含了JRE。JRE中包含bin和lib类库,其中bin表示binary,二进制文件库(也就是可执行文件,可执行文件通常是用二进制文件编写)。
JVM就在bin路径下,在编译的过程中依赖外部的lib类库来完成。