- 深入淺出Java編程
- 遲殿委 王健編著
- 968字
- 2022-07-29 14:19:46
1.1 Java簡介
Java最早是由SUN公司(已被Oracle收購)的詹姆斯·高斯林(Java之父)在20世紀(jì)90年代初開發(fā)的一種編程語言,最初被命名為Oak,目標(biāo)是針對小型家電設(shè)備的嵌入式應(yīng)用,結(jié)果市場沒什么反響。互聯(lián)網(wǎng)的崛起,讓Oak重新煥發(fā)了生機,于是SUN公司改造了Oak,在1995年以Java(Oak已經(jīng)被人注冊了,因此SUN注冊了Java這個商標(biāo))的名稱正式發(fā)布。隨著互聯(lián)網(wǎng)的高速發(fā)展,Java逐漸成為最重要的網(wǎng)絡(luò)編程語言。
Java介于編譯型語言和解釋型語言之間。編譯型語言(如C、C++),直接編譯成機器碼執(zhí)行,但是不同平臺(x86、ARM等)的CPU指令集不同,因此需要編譯出每一種平臺的對應(yīng)機器碼。解釋型語言(如Python、Ruby)沒有這個問題,可以由解釋器直接加載源碼然后運行,代價是運行效率太低。Java將代碼編譯成一種“字節(jié)碼”,類似于抽象的CPU指令,然后針對不同平臺編寫虛擬機,不同平臺的虛擬機負(fù)責(zé)加載字節(jié)碼并執(zhí)行,這樣就實現(xiàn)了“一次編寫,到處運行”的效果。當(dāng)然,這是針對Java開發(fā)者而言的。對于虛擬機,需要為每個平臺分別開發(fā)。為了保證不同平臺、不同公司開發(fā)的虛擬機都能正確執(zhí)行Java字節(jié)碼,SUN公司制定了一系列的Java虛擬機規(guī)范。從實踐的角度看,JVM的兼容性做得非常好,低版本的Java字節(jié)碼完全可以正常運行在高版本的JVM上。
隨著Java的發(fā)展,SUN給Java分出了三個不同版本:
· 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使用的虛擬機和Java SE完全相同。
Java ME和Java SE不同,它是一個針對嵌入式設(shè)備的“瘦身版”,Java SE的標(biāo)準(zhǔn)庫無法在Java ME上使用,Java ME的虛擬機也是“瘦身版”。
毫無疑問,Java SE是整個Java平臺的核心,而Java EE是進一步學(xué)習(xí)Web應(yīng)用所必需的。我們熟悉的Spring等框架都是Java EE開源生態(tài)系統(tǒng)的一部分。不幸的是,Java ME從來沒有真正流行起來,反而是Android開發(fā)發(fā)展成為移動平臺的標(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ù)平臺就是需要學(xué)習(xí)的,它們都基于Java或Scala開發(fā)的。
· 如果想要學(xué)習(xí)移動開發(fā),就深入學(xué)習(xí)Android平臺,掌握Android App開發(fā)。
無論怎么選擇,Java SE的核心技術(shù)是基礎(chǔ)。
- Reporting with Visual Studio and Crystal Reports
- AWS Serverless架構(gòu):使用AWS從傳統(tǒng)部署方式向Serverless架構(gòu)遷移
- Java游戲服務(wù)器架構(gòu)實戰(zhàn)
- Building Mobile Applications Using Kendo UI Mobile and ASP.NET Web API
- Julia Cookbook
- Mastering RStudio:Develop,Communicate,and Collaborate with R
- Web Development with MongoDB and Node(Third Edition)
- Hands-On Full Stack Development with Spring Boot 2.0 and React
- 零基礎(chǔ)輕松學(xué)C++:青少年趣味編程(全彩版)
- Mastering Object:Oriented Python(Second Edition)
- ASP.NET Core 2 High Performance(Second Edition)
- Laravel 5.x Cookbook
- Computer Vision with Python 3
- Spark Cookbook
- Go Programming Blueprints