java語言 教程
java 是由 sun microsystems 公司于 1995 年 5 月推出的 java 語言和 java 平臺的總稱。由于 sun 公司已被 oracle 公司收購,所以 java 成為 oracle 公司的產(chǎn)品。
java 語言是一門面向?qū)ο蟮木幊陶Z言,功能強(qiáng)大,簡單易用,具有簡單性、面向?qū)ο?、分布式等特點,可以編寫桌面應(yīng)用程序、web應(yīng)用程序、分布式系統(tǒng)和嵌入式系統(tǒng)應(yīng)用程序等。
java 語言在服務(wù)器編程方面使用最廣泛、生態(tài)最完備。
java分為三個體系:
- javase(j2se):java2 platform standard edition,java平臺標(biāo)準(zhǔn)版。
- javaee(j2ee):java 2 platform,enterprise edition,java平臺企業(yè)版。
- javame(j2me):java 2 platform micro edition,java平臺微型版。
1. 主要特性
- java 語言是簡單的:
java 語言的語法與 c 語言和 c++ 語言很接近,使得大多數(shù)程序員很容易學(xué)習(xí)和使用。另一方面,java 丟棄了 c++ 中很少使用的、很難理解的、令人迷惑的那些特性,如操作符重載、多繼承、自動的強(qiáng)制類型轉(zhuǎn)換。特別地,java 語言不使用指針,而是引用。并提供了自動分配和回收內(nèi)存空間,使得程序員不必為內(nèi)存管理而擔(dān)憂。 - java 語言是面向?qū)ο蟮模?br /> java 語言提供類、接口和繼承等面向?qū)ο蟮奶匦?,為了簡單起見,只支持類之間的單繼承,但支持接口之間的多繼承,并支持類與接口之間的實現(xiàn)機(jī)制(關(guān)鍵字為 implements)。java 語言全面支持動態(tài)綁定,而 c++語言只對虛函數(shù)使用動態(tài)綁定。總之,java語言是一個純的面向?qū)ο蟪绦蛟O(shè)計語言。
- java語言是分布式的:
java 語言支持 internet 應(yīng)用的開發(fā),在基本的 java 應(yīng)用編程接口中有一個網(wǎng)絡(luò)應(yīng)用編程接口(java net),它提供了用于網(wǎng)絡(luò)應(yīng)用編程的類庫,包括 url、urlconnection、socket、serversocket 等。java 的 rmi(遠(yuǎn)程方法激活)機(jī)制也是開發(fā)分布式應(yīng)用的重要手段。 - java 語言是健壯的:
java 的強(qiáng)類型機(jī)制、異常處理、垃圾的自動收集等是 java 程序健壯性的重要保證。對指針的丟棄是 java 的明智選擇。java 的安全檢查機(jī)制使得 java 更具健壯性。 - java語言是安全的:
java通常被用在網(wǎng)絡(luò)環(huán)境中,為此,java 提供了一個安全機(jī)制以防惡意代碼的攻擊。除了java 語言具有的許多安全特性以外,java 對通過網(wǎng)絡(luò)下載的類具有一個安全防范機(jī)制(類 classloader),如分配不同的名字空間以防替代本地的同名類、字節(jié)代碼檢查,并提供安全管理機(jī)制(類 securitymanager)讓 java 應(yīng)用設(shè)置安全哨兵。 - java 語言是體系結(jié)構(gòu)中立的:
java 程序(后綴為 java 的文件)在 java 平臺上被編譯為體系結(jié)構(gòu)中立的字節(jié)碼格式(后綴為 class 的文件),然后可以在實現(xiàn)這個 java 平臺的任何系統(tǒng)中運(yùn)行。這種途徑適合于異構(gòu)的網(wǎng)絡(luò)環(huán)境和軟件的分發(fā)。 - java 語言是可移植的:
這種可移植性來源于體系結(jié)構(gòu)中立性,另外,java 還嚴(yán)格規(guī)定了各個基本數(shù)據(jù)類型的長度。java 系統(tǒng)本身也具有很強(qiáng)的可移植性,java 編譯器是用 java 實現(xiàn)的,java 的運(yùn)行環(huán)境是用 ansi c 實現(xiàn)的。 - java 語言是解釋型的:
如前所述,java 程序在 java 平臺上被編譯為字節(jié)碼格式,然后可以在實現(xiàn)這個 java 平臺的任何系統(tǒng)中運(yùn)行。在運(yùn)行時,java 平臺中的 java 解釋器對這些字節(jié)碼進(jìn)行解釋執(zhí)行,執(zhí)行過程中需要的類在聯(lián)接階段被載入到運(yùn)行環(huán)境中。 - java 是高性能的:
與那些解釋型的高級腳本語言相比,java 的確是高性能的。事實上,java 的運(yùn)行速度隨著 jit(just-in-time)編譯器技術(shù)的發(fā)展越來越接近于 c++。 - java 語言是多線程的:
在 java 語言中,線程是一種特殊的對象,它必須由 thread 類或其子(孫)類來創(chuàng)建。通常有兩種方法來創(chuàng)建線程:其一,使用型構(gòu)為 thread(runnable) 的構(gòu)造子類將一個實現(xiàn)了 runnable 接口的對象包裝成一個線程,其二,從 thread 類派生出子類并重寫 run 方法,使用該子類創(chuàng)建的對象即為線程。值得注意的是 thread 類已經(jīng)實現(xiàn)了 runnable 接口,因此,任何一個線程均有它的 run 方法,而 run 方法中包含了線程所要運(yùn)行的代碼。線程的活動由一組方法來控制。java 語言支持多個線程的同時執(zhí)行,并提供多線程之間的同步機(jī)制(關(guān)鍵字為 synchronized)。 - java 語言是動態(tài)的:
java 語言的設(shè)計目標(biāo)之一是適應(yīng)于動態(tài)變化的環(huán)境。java 程序需要的類能夠動態(tài)地被載入到運(yùn)行環(huán)境,也可以通過網(wǎng)絡(luò)來載入所需要的類。這也有利于軟件的升級。另外,java 中的類有一個運(yùn)行時刻的表示,能進(jìn)行運(yùn)行時刻的類型檢查。
2. java 開發(fā)工具
1)什么是 jdk
java 有完善的開發(fā)工具包,稱為 jdk。jdk是什么?jdk即java development kit的縮寫,它是java語言的軟件開發(fā)工具包。
jdk最初由sun microsystems發(fā)明,提供給java開發(fā)人員,用來開發(fā)server、pc、移>動設(shè)備和嵌入式設(shè)備上的java應(yīng)用程序。
jdk是整個java開發(fā)的核心,它包括java運(yùn)行環(huán)境、java基礎(chǔ)類庫和java工具。
2)java 開發(fā)環(huán)境
使用 java 語言編程,開發(fā)環(huán)境要保證系統(tǒng)內(nèi)存在 1g 以上。常見的操作系統(tǒng)都可以安裝 jdk,比如windows、linux、macos等。
java jdk 可以使用 jdk8 以上版本,目前最新版本為 java16,生產(chǎn)環(huán)境中以 jdk8 和 jdk11 居多。
常用的集成開發(fā)環(huán)境 ide 包括:intellij idea、eclipse 和 vscode 等。