Java特點(diǎn)
1.平臺(tái)無(wú)關(guān)性
平臺(tái)無(wú)關(guān)性是指java能夠運(yùn)行于各種平臺(tái)(操作系統(tǒng)),java引進(jìn)虛擬機(jī)(Virture Machine)概念,運(yùn)行于虛擬機(jī),實(shí)現(xiàn)了跨平臺(tái)運(yùn)行。由于java是解釋性的語(yǔ)言,能夠提供不同平臺(tái)的接口。Java的平臺(tái)無(wú)關(guān)性是由于虛擬機(jī)的平臺(tái)有關(guān)性。
Jdk(Java development kit)
Java開發(fā)工具包,jdk下真正在運(yùn)行java時(shí)起作用的是以下四個(gè)文件夾:bin、include、lib、jre。還有一個(gè)scr類庫(kù)源碼壓縮包。
Bin:主要的是編譯器(javac.exe)
Include:java和jvm交互用的頭文件
Lib:類庫(kù)
Jre:java運(yùn)行環(huán)境
Jre(java runtime environment)
java運(yùn)行環(huán)境,光有jvm不能執(zhí)行.class文件,應(yīng)為運(yùn)行時(shí)需要調(diào)用解釋所需要的類庫(kù)lib,jre目錄有bin和lib兩個(gè)目錄。Bin里的是jvm,lib里裝的是jvm運(yùn)行時(shí)所需要的java類庫(kù),所以有.class和jvm就能運(yùn)行程序了。
Jvm(java Virture Machine)
java虛擬機(jī),是java平臺(tái)無(wú)關(guān)性的核心機(jī)制,所有的java源文件都先被編譯(javac file.java)為.class(二進(jìn)制代碼)文件,這類文件可以在java虛擬機(jī)上執(zhí)行,通過(guò)虛擬機(jī)與操作系統(tǒng)交互,由虛擬機(jī)解釋給本地系統(tǒng)執(zhí)行,實(shí)行跨平臺(tái)運(yùn)。jdk包含jr額,jre包含jvm。
2.安全性
Java的編程類似C++,舍棄了C++的指針對(duì)存儲(chǔ)器地址的直接操作,程序運(yùn)行時(shí),內(nèi)存由操作系統(tǒng)分配,這樣可以避免病毒通過(guò)指針侵入系統(tǒng)。Java對(duì)程序提供了安全管理器,防止程序的非法訪問(wèn)。
3.面向?qū)ο笮?/p>
Java吸取了C++面向?qū)ο蟮母拍睿瑢?a target="_blank" rel="nofollow">數(shù)據(jù)封裝于類中,利用類的優(yōu)點(diǎn),實(shí)現(xiàn)了程序的簡(jiǎn)潔性和便于維護(hù)性。類的封裝性、繼承性等有關(guān)對(duì)象的特性,使程序代碼只需一次編譯,然后通過(guò)上述特性反復(fù)利用。程序員只需把主要精力用在類和接口的設(shè)計(jì)和應(yīng)用上。Java提供了眾多的一般對(duì)象的類,通過(guò)繼承即可使用父類的方法。在Java中,類的繼承關(guān)系是單一的非多重的,一個(gè)子類只有一個(gè)父類,子類的父類又有一個(gè)父類。Java提供的Object類及其子類的繼承關(guān)系如同一棵倒立的樹形,根類為Object類,Object類功能強(qiáng)大,經(jīng)常會(huì)使用到它及其它派生的子類。
4.分布式
Java建立在擴(kuò)展TCP/IP網(wǎng)絡(luò)平臺(tái)上。庫(kù)函數(shù)提供了用HTTP和FTP協(xié)議傳送和接受信息的方法。這使得程序員使用網(wǎng)絡(luò)上的文件和使用本機(jī)文件一樣容易。
5.健壯性
Java致力于檢查程序在編譯和運(yùn)行時(shí)的錯(cuò)誤。類型檢查幫助檢查出許多開發(fā)早期出現(xiàn)的錯(cuò)誤。Java自己操縱內(nèi)存減少了內(nèi)存出錯(cuò)的可能性。Java還實(shí)現(xiàn)了真數(shù)組,避免了覆蓋數(shù)據(jù)的可能,這些功能特征大大提高了開發(fā)Java應(yīng)用程序的周期。并且Java還提供了Null指針檢測(cè)、數(shù)組邊界檢測(cè)、異常出口、Bytecode校驗(yàn)等功能。
6.解釋性
我們知道C,C++等語(yǔ)言,都是針對(duì)CPU芯片進(jìn)行編譯,生成機(jī)器代碼,該代碼的運(yùn)行就和特定的CPU有關(guān)。Java不像C或C++,它不針對(duì)CPU芯片進(jìn)行編譯,而是把程序編譯成稱為自字節(jié)碼的一種“中間代碼”。字節(jié)碼是很接近機(jī)器碼的文件,可以在提供了java虛擬機(jī)(JVM)的任何系統(tǒng)上被解釋執(zhí)行。解釋型是相對(duì)于翻譯型來(lái)說(shuō)的
7.動(dòng)態(tài)
java程序的基本組成單元就是類,有些類是自己編寫的,有些是從類庫(kù)中引入的,而類又是運(yùn)行時(shí)動(dòng)態(tài)裝載的,這就使得Java可以在分部環(huán)布中動(dòng)態(tài)的維護(hù)程序及分類,而不像C++那樣,沒檔期類庫(kù)升級(jí)以后,如果想讓程序具有新類庫(kù)提供的功能,就需要修改程序,重新編譯。