今天来系统的整理一下Java生态体系的各项基本概念。
一.Java技术体系
用Java写出的代码,要运行在计算机上,进行各种各样的工作,需要以下几个关键部分的支持。
1.Java程序设计语言
没什么可说的,就是Java语言自身。
2.各种平台上的Java虚拟机(JVM)
Java的一个重要特性就是跨平台性。就是java编写的代码在编译后,可以在不同的系统上运行。如windows,linux,unix等等。这个特性是用JVM加以实现的。
首先,当编写完Java代码后,需要进行编译,将我们人类能读懂的代码通过第一次编译,转变为.class文件,也就是字节码文件
。不管我们写出的程序在什么系统上运行,我们的字节码文件都是同一个
。
然后,用JVM来将字节码文件转换成计算机能读懂的二进制语言(机械码)。在这里,不同系统下的JVM可以被理解为多个入口的形状完全相同,但出口的形状各不相同的流水线
。不同系统都有自己特定的JVM,这些JVM可以接收同一个字节码文件,将其转化为适用于各自系统的不同的二进制文件(机械码文件)
。这些文件可以被计算机直接执行,所以也叫可执行文件。
所以,Java程序可以“一次编译,到处运行
”(当然前提是这个系统有它对应的JVM)。
3.Java API类库
Java里的一些标准库函数。Java里自带了一些已经实现好了的数据结构类,和它们对应的一些函数,来实现相应的功能,如List,ArrayList等等,使用起来很方便,就不需要我们重复造轮子啦。
4.一系列辅助工具(如javac)
javac就是将我们的程序编译成字节码(.class文件)的编译器。是一个可执行文件。还有一些其他的小工具比如jar,就是一个打包工具,将我们的.class文件打包为jar文件,将来我们想使用我们写好的类和函数的时候,直接引用过来就好了。等等。
JDK
JDK(Java developmen kit)是Java程序开发包,它包括以上1,2,3,4所有总和。
JRE
JRE(Java Runtime Environment)是Java运行时环境,它包括以上2+3。
二.Oracle JDK vs Open JDK
市面上的两种JDK。Open JDK不如Oracle JDK全面,但是开源,包含了JDK中最经典的部分。用Oracle JDK的人还是比较多的。
三.Java技术体系所划分的三大平台
JavaSE:
主要面向桌面软件,C/S架构的软件平台。
JavaEE:
现今所有做Java后端开发的领域都是JavaEE的天下。我们需要学的也是JavaEE。JavaEE是在JavaSE的基础上构建的,也就是说JavaSE是JavaEE的一个子集。
所谓的学JavaEE,其实就是学JavaEE的各种框架,如spring,structs,hibernate,mybatis,springboot等等。
JavaEE才是将来想做Java后端开发的同学们该学的。
JavaME:
主要做一些嵌入式的开发。面向移动端。
四.哪一版JDK用得多,适合学习
JDK是不分JavaSE、JavaEE、JavaME的
,安装的都是一个东西。就装JavaSE的JDK就行了。
现在用JDK1.8的比较多,建议使用JDK1.8就足够了。(虽然现在已经更新到JDK13了)