初始Java

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ù)提供了用HTTPFTP協(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ù)提供的功能,就需要修改程序,重新編譯。

最后編輯于
?著作權(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)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

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

  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語(yǔ)法,類相關(guān)的語(yǔ)法,內(nèi)部類的語(yǔ)法,繼承相關(guān)的語(yǔ)法,異常的語(yǔ)法,線程的語(yǔ)...
    子非魚_t_閱讀 34,728評(píng)論 18 399
  • 從今天開始讀《深入理解 Java 虛擬機(jī)》一書,并開設(shè)了同名專題 深入理解 Java 虛擬機(jī)。計(jì)劃在 2 周內(nèi)將全...
    SawyerZh閱讀 10,446評(píng)論 17 215
  • 每個(gè)使用Java的開發(fā)者都知道Java字節(jié)碼是在JRE中運(yùn)行(JRE: Java 運(yùn)行時(shí)環(huán)境)。JVM則是JRE中...
    燕京博士閱讀 1,652評(píng)論 0 6
  • 遇到問(wèn)題,我喜歡寫寫畫畫。我重來(lái)沒有做過(guò)畫家和書法家的奢侈美夢(mèng),腦子是CPU不是硬盤,寫寫畫畫能幫他減肥,幫自己減...
    灰灰_0f95閱讀 673評(píng)論 0 0
  • d個(gè)
    虹斌閱讀 92評(píng)論 0 0

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