000:Java 是什么?及 Java 語(yǔ)言的特點(diǎn)

本文為:Java系列教程 001:Java 是什么?及 Java 語(yǔ)言的特點(diǎn)

?正文共:35996

預(yù)計(jì)閱讀時(shí)間: 9 分鐘

Java 是近 10 年來(lái)計(jì)算機(jī)軟件發(fā)展過(guò)程中的傳奇,其在眾多開(kāi)發(fā)者心中的地位可謂 “愛(ài)不釋手”,與其他一些計(jì)算機(jī)語(yǔ)言隨著時(shí)間的流逝影響也逐漸減弱不同,Java 隨著時(shí)間的推移反而變得更加強(qiáng)大。

從首次發(fā)布開(kāi)始,Java 就躍到了 Internet 編程的前沿。

后續(xù)的每一個(gè)版本都進(jìn)一步鞏固了這一地位。

如今,Java 依然是開(kāi)發(fā)基于 Web 的應(yīng)用程序的最佳選擇。

此外,Java 還是智能手機(jī)變革的推手,Android 編程采用的就是 Java 語(yǔ)言。

PS:(2019-07-30注)目前已經(jīng)換成 Kotlin 了。詳情可查看:http://t.cn/EoKGAyJ

一、什么是 Java 語(yǔ)言

簡(jiǎn)單地說(shuō),Java 是由 Sun Microsystems 公司于 1995 年推出的一門(mén)面向?qū)ο蟪绦蛟O(shè)計(jì)語(yǔ)言。
2010 年 Oracle 公司收購(gòu) Sun Microsystems,之后由 Oracle 公司負(fù)責(zé) Java 的維護(hù)和版本升級(jí)。

其實(shí),Java 還是一個(gè)平臺(tái)。

Java 平臺(tái)由 Java 虛擬機(jī)(Java Virtual Machine,JVM)和 Java 應(yīng)用編程接口(Application Programming Interface,API)構(gòu)成。

Java 應(yīng)用編程接口為此提供了一個(gè)獨(dú)立于操作系統(tǒng)的標(biāo)準(zhǔn)接口,可分為基本部分和擴(kuò)展部分。在硬件或操作系統(tǒng)平臺(tái)上安裝一個(gè) Java 平臺(tái)之后,Java 應(yīng)用程序就可運(yùn)行。

Java 平臺(tái)已經(jīng)嵌入了幾乎所有的操作系統(tǒng)。
這樣 Java 程序只編譯一次,就可以在各種系統(tǒng)中運(yùn)行。
Java 應(yīng)用編程接口已經(jīng)從 1.1x 版本發(fā)展到 1.2 版本。
常用的 Java 平臺(tái)基于 Java 1.6,目前企業(yè)都逐漸將版本切換到了Java 1.8,最新版本為 Java 12。

Java 發(fā)展至今,就力圖使之無(wú)所不能。
按應(yīng)用范圍,Java 可分為 3 個(gè)體系,即 Java SE、Java EE 和 Java ME。

下面簡(jiǎn)單介紹這 3 個(gè)體系。

1. Java SE

Java SE(Java Platform Standard Edition,Java 平臺(tái)標(biāo)準(zhǔn)版)以前稱(chēng)為 J2SE,它允許開(kāi)發(fā)和部署在桌面、服務(wù)器、嵌入式環(huán)境和實(shí)時(shí)環(huán)境中使用的 Java 應(yīng)用程序。Java SE 包含了支持 Java Web 服務(wù)開(kāi)發(fā)的類(lèi),并為 Java EE 提供基礎(chǔ),如 Java 語(yǔ)言基礎(chǔ)、JDBC 操作、I/O 操作、網(wǎng)絡(luò)通信以及多線(xiàn)程等技術(shù)。下圖 所示為 Java SE 的體系結(jié)構(gòu)。

2. Java EE

Java EE(Java Platform Enterprise Edition,Java 平臺(tái)企業(yè)版)以前稱(chēng)為 J2EE。企業(yè)版本幫助開(kāi)發(fā)和部署可移植、健壯、可伸縮且安全的服務(wù)器端 Java 應(yīng)用程序。

Java EE 是在 Java SE 基礎(chǔ)上構(gòu)建的,它提供 Web 服務(wù)、組件模型、管理和通信 API,可以用來(lái)實(shí)現(xiàn)企業(yè)級(jí)的面向服務(wù)體系結(jié)構(gòu)(Service Oriented Architecture,SOA)和 Web 2.0 應(yīng)用程序。

3. Java ME

Java ME(Java Platform Micro Edition,Java 平臺(tái)微型版)以前稱(chēng)為 J2ME,也叫 K-JAVA。

Java ME 為在移動(dòng)設(shè)備和嵌入式設(shè)備(比如手機(jī)、PDA、電視機(jī)頂盒和打印機(jī))上運(yùn)行的應(yīng)用程序提供一個(gè)健壯且靈活的環(huán)境。

Java ME 包括靈活的用戶(hù)界面、健壯的安全模型、豐富的內(nèi)置網(wǎng)絡(luò)協(xié)議以及對(duì)可以動(dòng)態(tài)下載的聯(lián)網(wǎng)和離線(xiàn)應(yīng)用程序。

基于 Java ME 規(guī)范的應(yīng)用程序 只需編寫(xiě)一次就可以用于許多設(shè)備,而且可以利用每個(gè)設(shè)備的本機(jī)功能。

二、Java 語(yǔ)言的特點(diǎn)

Java 語(yǔ)言的風(fēng)格很像 C 語(yǔ)言和 C++ 語(yǔ)言,是一種純粹的面向?qū)ο笳Z(yǔ)言,它繼承了 C++ 語(yǔ)言面向?qū)ο蟮募夹g(shù)核心,但是拋棄了 C++ 的一些缺點(diǎn),比如說(shuō)容易引起錯(cuò)誤的指針以及多繼承等,同時(shí)也增加了垃圾回收機(jī)制,釋放掉不被使用的內(nèi)存空間,解決了管理內(nèi)存空間的煩惱。

Java 語(yǔ)言是一種分布式的面向?qū)ο笳Z(yǔ)言,具有面向?qū)ο蟆⑵脚_(tái)無(wú)關(guān)性、簡(jiǎn)單性、解釋執(zhí)行、多線(xiàn)程、安全性等很多特點(diǎn),下面針對(duì)這些特點(diǎn)進(jìn)行逐一介紹。

1. 面向?qū)ο?/h5>

Java 是一種面向?qū)ο蟮恼Z(yǔ)言,它對(duì)對(duì)象中的類(lèi)、對(duì)象、繼承、封裝、多態(tài)、接口、包等均有很好的支持。

為了簡(jiǎn)單起見(jiàn),Java 只支持類(lèi)之間的單繼承,但是可以使用接口來(lái)實(shí)現(xiàn)多繼承。使用 Java 語(yǔ)言開(kāi)發(fā)程序,需要采用面向?qū)ο蟮乃枷朐O(shè)計(jì)程序和編寫(xiě)代碼。

2. 平臺(tái)無(wú)關(guān)性

平臺(tái)無(wú)關(guān)性的具體表現(xiàn)在于,Java 是 “一次編寫(xiě),到處運(yùn)行(Write Once,Run any Where)” 的語(yǔ)言,因此采用 Java 語(yǔ)言編寫(xiě)的程序具有很好的可移植性,而保證這一點(diǎn)的正是 Java 的虛擬機(jī)機(jī)制。

在引入虛擬機(jī)之后,Java 語(yǔ)言在不同的平臺(tái)上運(yùn)行不需要重新編譯。

Java 語(yǔ)言使用 Java 虛擬機(jī)機(jī)制屏蔽了具體平臺(tái)的相關(guān)信息,使得 Java 語(yǔ)言編譯的程序只需生成虛擬機(jī)上的目標(biāo)代碼,就可以在多種平臺(tái)上不加修改地運(yùn)行。

3. 簡(jiǎn)單性

Java 語(yǔ)言的語(yǔ)法與 C 語(yǔ)言和 C++ 語(yǔ)言很相近,使得很多程序員學(xué)起來(lái)很容易。

對(duì) Java 來(lái)說(shuō),它舍棄了很多 C++ 中難以理解的特性,如操作符的重載和多繼承等,而且 Java 語(yǔ)言不使用指針,加入了垃圾回收機(jī)制,解決了程序員需要管理內(nèi)存的問(wèn)題,使編程變得更加簡(jiǎn)單。

4. 解釋執(zhí)行

Java 程序在 Java 平臺(tái)運(yùn)行時(shí)會(huì)被編譯成字節(jié)碼文件,然后可以在有 Java 環(huán)境的操作系統(tǒng)上運(yùn)行。

在運(yùn)行文件時(shí),Java 的解釋器對(duì)這些字節(jié)碼進(jìn)行解釋執(zhí)行,執(zhí)行過(guò)程中需要加入的類(lèi)在連接階段被載入到運(yùn)行環(huán)境中。

5. 多線(xiàn)程

Java 語(yǔ)言是多線(xiàn)程的,這也是 Java 語(yǔ)言的一大特性,它必須由 Thread 類(lèi)和它的子類(lèi)來(lái)創(chuàng)建。

Java 支持多個(gè)線(xiàn)程同時(shí)執(zhí)行,并提供多線(xiàn)程之間的同步機(jī)制。任何一個(gè)線(xiàn)程都有自己的 run() 方法,要執(zhí)行的方法就寫(xiě)在 run() 方法體內(nèi)。

6. 分布式

Java 語(yǔ)言支持 Internet 應(yīng)用的開(kāi)發(fā),在 Java 的基本應(yīng)用編程接口中就有一個(gè)網(wǎng)絡(luò)應(yīng)用編程接口,它提供了網(wǎng)絡(luò)應(yīng)用編程的類(lèi)庫(kù),包括 URL、URLConnection、Socket 等。

Java 的 RIM 機(jī)制也是開(kāi)發(fā)分布式應(yīng)用的重要手段。

7. 健壯性

Java 的強(qiáng)類(lèi)型機(jī)制、異常處理、垃圾回收機(jī)制等都是 Java 健壯性的重要保證。
對(duì)指針的丟棄是 Java 的一大進(jìn)步。

另外,Java 的異常機(jī)制也是健壯性的一大體現(xiàn)。

8. 高性能

Java 的高性能主要是相對(duì)其他高級(jí)腳本語(yǔ)言來(lái)說(shuō)的,隨著 JIT(Just in Time)的發(fā)展,Java 的運(yùn)行速度也越來(lái)越高。

9. 安全性

Java 通常被用在網(wǎng)絡(luò)環(huán)境中,為此,Java 提供了一個(gè)安全機(jī)制以防止惡意代碼的攻擊。

除了 Java 語(yǔ)言具有許多的安全特性以外,Java 還對(duì)通過(guò)網(wǎng)絡(luò)下載的類(lèi)增加一個(gè)安全防范機(jī)制,分配不同的名字空間以防替代本地的同名類(lèi),并包含安全管理機(jī)制。

Java 語(yǔ)言的眾多特性使其在眾多的編程語(yǔ)言中占有較大的市場(chǎng)份額,Java 語(yǔ)言對(duì)對(duì)象的支持和強(qiáng)大的 API 使得編程工作變得更加容易和快捷,大大降低了程序的開(kāi)發(fā)成本。

Java 的 “一次編寫(xiě),到處執(zhí)行” 正是它吸引眾多商家和編程人員的一大優(yōu)勢(shì)。

三、學(xué)習(xí) Java 的最佳途徑

學(xué)習(xí) Java 之前,先別急,靜下心來(lái)好好想想下面的問(wèn)題。

  1. 你對(duì)學(xué)習(xí) Java 是否有足夠興趣?

  2. 你是否能靜下心來(lái)堅(jiān)持不懈地學(xué)習(xí)?

以上是兩個(gè)容易回答但絕對(duì)不應(yīng)該忽略的問(wèn)題。如果確信自己對(duì) Java 感興趣,而且又有吃苦的準(zhǔn)備,那才可能學(xué)好 Java。

如果具備這兩個(gè)條件,初學(xué)者需要注意的主要有如下幾點(diǎn)。

  1. 不要看太多的書(shū),先找本相對(duì)基礎(chǔ)的書(shū)系統(tǒng)地學(xué)習(xí)。很多程序開(kāi)發(fā)人員工作了很久也只是熟悉部分基礎(chǔ)而已,所以沒(méi)有必要花費(fèi)精力全面了解 Java 的每個(gè)細(xì)節(jié)。

  2. 初學(xué)時(shí)不要去死記語(yǔ)法。在剛接觸 Java 語(yǔ)言時(shí),掌握好基礎(chǔ)語(yǔ)法,并大概了解一些功能即可。借助開(kāi)發(fā)工具的代碼輔助功能完成代碼的錄入,這樣可以更快地進(jìn)入學(xué)習(xí)狀態(tài)。

  3. 多實(shí)踐,多思考,多請(qǐng)教。僅讀懂書(shū)中的內(nèi)容和技術(shù)是不行的,必須動(dòng)手編寫(xiě)程序代碼、運(yùn)行代碼,并分析運(yùn)行過(guò)程,從而對(duì)學(xué)習(xí)內(nèi)容有整體的認(rèn)識(shí)。用自己的方式思考問(wèn)題,通過(guò)編寫(xiě)代碼來(lái)提高編程思路。平時(shí)多和其他人溝通技術(shù)問(wèn)題,提高自己的技術(shù)和見(jiàn)識(shí)。

  4. 遇到問(wèn)題,首先嘗試自己解決。這樣可以提高自己對(duì)程序的調(diào)試能力,并對(duì)常見(jiàn)問(wèn)題有一定了解,明白出錯(cuò)的原因,甚至舉一反三地解決其他相關(guān)聯(lián)的錯(cuò)誤問(wèn)題。

  5. 不要急躁,遇到技術(shù)問(wèn)題,必須冷靜對(duì)待,不能讓思維混亂,保持清醒的頭腦才能分析和解決各種問(wèn)題。

  6. 了解設(shè)計(jì)模式。開(kāi)發(fā)程序必須編寫(xiě)程序代碼,這些代碼必須具有高度的可讀性,這樣編寫(xiě)的程序才有調(diào)試和維護(hù)的價(jià)值。學(xué)習(xí)一些設(shè)計(jì)模式,能夠很好地把握項(xiàng)目的整體結(jié)構(gòu)。

  7. 多閱讀別人的源代碼,多査閱資料。不但要看懂別人的程序代碼,還要分析作者的編程思想和設(shè)計(jì)模式,最好能為己所用。

參考鏈接
  1. java介紹,java是什么:
    https://www.java.com/zh_CN/about/whatis_java.jsp

  2. http://c.biancheng.net/view/1282.html

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 轉(zhuǎn)自陳明乾的博客,可能有一定更新。 轉(zhuǎn)原文聲明:原創(chuàng)作品,允許轉(zhuǎn)載,轉(zhuǎn)載時(shí)請(qǐng)務(wù)必以超鏈接形式標(biāo)明文章 原始出處 、...
    C86guli閱讀 4,887評(píng)論 6 72
  • TITLE: 編程語(yǔ)言亂燉 碼農(nóng)最大的煩惱——編程語(yǔ)言太多。不是我不學(xué)習(xí),這世界變化快! 有時(shí)候還是蠻懷念十幾、二...
    碼園老農(nóng)閱讀 5,602評(píng)論 2 35
  • Java簡(jiǎn)介 Java是一種計(jì)算機(jī)編程語(yǔ)言,擁有跨平臺(tái)、面向?qū)ο?、泛型編程的特性,廣泛應(yīng)用于企業(yè)級(jí)Web應(yīng)用開(kāi)發(fā)和...
    craneyuan閱讀 3,165評(píng)論 1 18
  • 馮老師說(shuō)過(guò),對(duì)于腦耗能高的孩子,最重要的是快樂(lè)和充足的睡眠。還真是,最近兩天因孩子發(fā)燒正處在恢復(fù)期,于是我降低了孩...
    尹隠閱讀 172評(píng)論 0 1
  • 我不知道怎么說(shuō),從開(kāi)學(xué)開(kāi)始,自己的內(nèi)心一直沒(méi)能靜下心來(lái),只想著吃喝玩樂(lè),來(lái)一場(chǎng)說(shuō)走就走的旅行,哪怕負(fù)債累累,哪怕...
    假一如一閱讀 2,020評(píng)論 3 2

友情鏈接更多精彩內(nèi)容