深入浅出Java编程
上QQ阅读APP看书,第一时间看更新

1.1 Java简介

Java最早是由SUN公司(已被Oracle收购)的詹姆斯·高斯林(Java之父)在20世纪90年代初开发的一种编程语言,最初被命名为Oak,目标是针对小型家电设备的嵌入式应用,结果市场没什么反响。互联网的崛起,让Oak重新焕发了生机,于是SUN公司改造了Oak,在1995年以Java(Oak已经被人注册了,因此SUN注册了Java这个商标)的名称正式发布。随着互联网的高速发展,Java逐渐成为最重要的网络编程语言。

Java介于编译型语言和解释型语言之间。编译型语言(如C、C++),直接编译成机器码执行,但是不同平台(x86、ARM等)的CPU指令集不同,因此需要编译出每一种平台的对应机器码。解释型语言(如Python、Ruby)没有这个问题,可以由解释器直接加载源码然后运行,代价是运行效率太低。Java将代码编译成一种“字节码”,类似于抽象的CPU指令,然后针对不同平台编写虚拟机,不同平台的虚拟机负责加载字节码并执行,这样就实现了“一次编写,到处运行”的效果。当然,这是针对Java开发者而言的。对于虚拟机,需要为每个平台分别开发。为了保证不同平台、不同公司开发的虚拟机都能正确执行Java字节码,SUN公司制定了一系列的Java虚拟机规范。从实践的角度看,JVM的兼容性做得非常好,低版本的Java字节码完全可以正常运行在高版本的JVM上。

随着Java的发展,SUN给Java分出了三个不同版本:

· Java SE:Standard Edition。

· Java EE:Enterprise Edition。

· Java ME:Micro Edition。

简单来说,Java SE就是标准版,包含标准的JVM和标准库;Java EE是企业版,在Java SE的基础上加上了大量的API和库,以便开发Web应用、数据库、消息服务等;Java EE使用的虚拟机和Java SE完全相同。

Java ME和Java SE不同,它是一个针对嵌入式设备的“瘦身版”,Java SE的标准库无法在Java ME上使用,Java ME的虚拟机也是“瘦身版”。

毫无疑问,Java SE是整个Java平台的核心,而Java EE是进一步学习Web应用所必需的。我们熟悉的Spring等框架都是Java EE开源生态系统的一部分。不幸的是,Java ME从来没有真正流行起来,反而是Android开发发展成为移动平台的标准之一。因此,没有特殊需求,不建议学习Java ME。

我们推荐的Java学习路线图如下:

· 首先要学习Java SE,掌握Java语言本身、Java核心开发技术以及Java标准库的使用。

· 如果继续学习Java EE,那么Spring框架、数据库开发、分布式架构就是需要学习的。

· 如果要学习大数据开发,那么Hadoop、Spark、Flink这些大数据平台就是需要学习的,它们都基于Java或Scala开发的。

· 如果想要学习移动开发,就深入学习Android平台,掌握Android App开发。

无论怎么选择,Java SE的核心技术是基础。