- 深入淺出Java編程
- 遲殿委 王健編著
- 968字
- 2022-07-29 14:19:46
1.1 Java簡介
Java最早是由SUN公司(已被Oracle收購)的詹姆斯·高斯林(Java之父)在20世紀(jì)90年代初開發(fā)的一種編程語言,最初被命名為Oak,目標(biāo)是針對(duì)小型家電設(shè)備的嵌入式應(yīng)用,結(jié)果市場(chǎng)沒什么反響。互聯(lián)網(wǎng)的崛起,讓Oak重新煥發(fā)了生機(jī),于是SUN公司改造了Oak,在1995年以Java(Oak已經(jīng)被人注冊(cè)了,因此SUN注冊(cè)了Java這個(gè)商標(biāo))的名稱正式發(fā)布。隨著互聯(lián)網(wǎng)的高速發(fā)展,Java逐漸成為最重要的網(wǎng)絡(luò)編程語言。
Java介于編譯型語言和解釋型語言之間。編譯型語言(如C、C++),直接編譯成機(jī)器碼執(zhí)行,但是不同平臺(tái)(x86、ARM等)的CPU指令集不同,因此需要編譯出每一種平臺(tái)的對(duì)應(yīng)機(jī)器碼。解釋型語言(如Python、Ruby)沒有這個(gè)問題,可以由解釋器直接加載源碼然后運(yùn)行,代價(jià)是運(yùn)行效率太低。Java將代碼編譯成一種“字節(jié)碼”,類似于抽象的CPU指令,然后針對(duì)不同平臺(tái)編寫虛擬機(jī),不同平臺(tái)的虛擬機(jī)負(fù)責(zé)加載字節(jié)碼并執(zhí)行,這樣就實(shí)現(xiàn)了“一次編寫,到處運(yùn)行”的效果。當(dāng)然,這是針對(duì)Java開發(fā)者而言的。對(duì)于虛擬機(jī),需要為每個(gè)平臺(tái)分別開發(fā)。為了保證不同平臺(tái)、不同公司開發(fā)的虛擬機(jī)都能正確執(zhí)行Java字節(jié)碼,SUN公司制定了一系列的Java虛擬機(jī)規(guī)范。從實(shí)踐的角度看,JVM的兼容性做得非常好,低版本的Java字節(jié)碼完全可以正常運(yùn)行在高版本的JVM上。
隨著Java的發(fā)展,SUN給Java分出了三個(gè)不同版本:
· Java SE:Standard Edition。
· Java EE:Enterprise Edition。
· Java ME:Micro Edition。
簡單來說,Java SE就是標(biāo)準(zhǔn)版,包含標(biāo)準(zhǔn)的JVM和標(biāo)準(zhǔn)庫;Java EE是企業(yè)版,在Java SE的基礎(chǔ)上加上了大量的API和庫,以便開發(fā)Web應(yīng)用、數(shù)據(jù)庫、消息服務(wù)等;Java EE使用的虛擬機(jī)和Java SE完全相同。
Java ME和Java SE不同,它是一個(gè)針對(duì)嵌入式設(shè)備的“瘦身版”,Java SE的標(biāo)準(zhǔn)庫無法在Java ME上使用,Java ME的虛擬機(jī)也是“瘦身版”。
毫無疑問,Java SE是整個(gè)Java平臺(tái)的核心,而Java EE是進(jìn)一步學(xué)習(xí)Web應(yīng)用所必需的。我們熟悉的Spring等框架都是Java EE開源生態(tài)系統(tǒng)的一部分。不幸的是,Java ME從來沒有真正流行起來,反而是Android開發(fā)發(fā)展成為移動(dòng)平臺(tái)的標(biāo)準(zhǔn)之一。因此,沒有特殊需求,不建議學(xué)習(xí)Java ME。
我們推薦的Java學(xué)習(xí)路線圖如下:
· 首先要學(xué)習(xí)Java SE,掌握J(rèn)ava語言本身、Java核心開發(fā)技術(shù)以及Java標(biāo)準(zhǔn)庫的使用。
· 如果繼續(xù)學(xué)習(xí)Java EE,那么Spring框架、數(shù)據(jù)庫開發(fā)、分布式架構(gòu)就是需要學(xué)習(xí)的。
· 如果要學(xué)習(xí)大數(shù)據(jù)開發(fā),那么Hadoop、Spark、Flink這些大數(shù)據(jù)平臺(tái)就是需要學(xué)習(xí)的,它們都基于Java或Scala開發(fā)的。
· 如果想要學(xué)習(xí)移動(dòng)開發(fā),就深入學(xué)習(xí)Android平臺(tái),掌握Android App開發(fā)。
無論怎么選擇,Java SE的核心技術(shù)是基礎(chǔ)。
- Visual Studio 2012 Cookbook
- Visual FoxPro程序設(shè)計(jì)教程
- Machine Learning with R Cookbook(Second Edition)
- Apache Spark Graph Processing
- Kotlin Standard Library Cookbook
- 3D少兒游戲編程(原書第2版)
- The DevOps 2.5 Toolkit
- Arduino家居安全系統(tǒng)構(gòu)建實(shí)戰(zhàn)
- Arduino計(jì)算機(jī)視覺編程
- Raspberry Pi Robotic Projects(Third Edition)
- PrimeFaces Blueprints
- Machine Learning for Developers
- 會(huì)當(dāng)凌絕頂:Java開發(fā)修行實(shí)錄
- Elastix Unified Communications Server Cookbook
- Getting Started with the Lazarus IDE