Java在設(shè)計(jì)時(shí)就對(duì)關(guān)鍵考慮因素進(jìn)行了總結(jié):
- 簡(jiǎn)單性
- 安全性
- 可移植性
- 面向?qū)ο?/li>
- 健壯性
- 多線程
- 體系結(jié)構(gòu)中立
- 解釋執(zhí)行
- 高性能
- 分布式
- 動(dòng)態(tài)性
安全性和可移植性在上篇中已經(jīng)介紹了,下面介紹其他的特性
簡(jiǎn)單性:
如果有一定經(jīng)驗(yàn)的哪怕就會(huì)C的也會(huì)很容易掌握J(rèn)ava,再說(shuō)大一下學(xué)期也學(xué)習(xí)了和Java無(wú)比相似的C#,如果會(huì)C++那就只需要非常少的努力就可以了。在Java的基礎(chǔ)知識(shí)中不如數(shù)據(jù)類(lèi)型、程序結(jié)構(gòu),流程控制等這些都相似。
面向?qū)ο螅?/h4>
對(duì)象采用清晰、可用、使用的方法,Java在純進(jìn)化論者的“萬(wàn)物皆對(duì)象”模式和實(shí)用主義的“夠用就好”模式之間找到了平衡,Java中的對(duì)象模型既簡(jiǎn)單又易于擴(kuò)展,而基礎(chǔ)類(lèi)型(如整型)仍然是高性能的非對(duì)象類(lèi)型
健壯性:
web的多平臺(tái)要求程序必須在各種系統(tǒng)中可靠地執(zhí)行,所以設(shè)計(jì)時(shí)要求Java具備創(chuàng)建健壯程序的能力是高優(yōu)先級(jí)的。所以Java是強(qiáng)類(lèi)型化得語(yǔ)言,它咋編譯時(shí)檢查代碼,在運(yùn)行時(shí)也檢查代碼,許多難以跟蹤的bug在運(yùn)行時(shí)通常難以再現(xiàn),但在Java中幾乎不可能產(chǎn)生。以可預(yù)見(jiàn)的方式運(yùn)行時(shí)Java的關(guān)鍵特性之一。
Java的健壯性從分析程序失敗的兩個(gè)主要原因:內(nèi)存管理錯(cuò)誤、未處理的異常來(lái)看:
- 在傳統(tǒng)編程中,內(nèi)存管理必須手動(dòng)紛飛和釋放所有動(dòng)態(tài)內(nèi)存。這樣有時(shí)會(huì)導(dǎo)致問(wèn)題,比如忘記釋放,或者試圖釋放程序其他部分仍然使用的內(nèi)存。Java自動(dòng)幫助開(kāi)發(fā)者管理內(nèi)存的分配和釋放,即垃圾回收功能。
- 異常情況通常是由“除0”或“沒(méi)有找到文件”這類(lèi)錯(cuò)誤引起的。Java通過(guò)提供面向?qū)ο蟮漠惓L幚砉δ?,所有運(yùn)行時(shí)錯(cuò)誤都能夠并且應(yīng)當(dāng)由程序進(jìn)行管理
多線程
滿(mǎn)足創(chuàng)建交互式、網(wǎng)絡(luò)化程序的需求,Java支持多線程,允許編寫(xiě)同時(shí)執(zhí)行許多工作的程序。Java運(yùn)行時(shí)也為多線程同步提供了優(yōu)美且完善的解決方案,能夠創(chuàng)造出運(yùn)行平穩(wěn)的交互式系統(tǒng)。Java提供了易用的多線程方法,使得只需要考慮程序的特定行為,而不需要考慮多任務(wù)子系統(tǒng)。
體系結(jié)構(gòu)中立
創(chuàng)建Java時(shí),我猿們面臨的問(wèn)題是,即使在同一臺(tái)機(jī)器上也不能保證今天編寫(xiě)的程序到了明天仍然能夠運(yùn)行。操作系統(tǒng)升級(jí)、處理器升級(jí)以及核心系統(tǒng)資源的變化,都可能導(dǎo)致程序出現(xiàn)故障。Java虛擬機(jī)就是試圖解決這個(gè)問(wèn)題。
解釋執(zhí)行和高性能
Java通過(guò)將源代碼編譯成Java字節(jié)碼的中間表示形式,可以創(chuàng)建跨平臺(tái)的程序。以前大部分對(duì)跨平臺(tái)解決方案的嘗試對(duì)性能的影響太大。而Java字節(jié)碼經(jīng)過(guò)了仔細(xì)設(shè)計(jì),通過(guò)即時(shí)編譯器,也容易將字節(jié)碼直接轉(zhuǎn)化成高性能的本機(jī)代碼。Java運(yùn)行時(shí)系統(tǒng)提供了這個(gè)特性,而且沒(méi)有丟失平臺(tái)獨(dú)立代碼的優(yōu)點(diǎn)
分布式
Java是針對(duì)Internet的分布式環(huán)境設(shè)計(jì),因?yàn)樗芴幚鞹CP/IP協(xié)議,實(shí)際上使用URL訪問(wèn)資源與訪問(wèn)文件滅有多大區(qū)別。Java還支持遠(yuǎn)程方法調(diào)用(Remote Method Invocation,RMI)。這個(gè)特性允許程序訪問(wèn)網(wǎng)絡(luò)調(diào)用方法。
動(dòng)態(tài)性
Java本身帶有大量的運(yùn)行時(shí)類(lèi)型信息,這些信息可以用于在運(yùn)行時(shí)驗(yàn)證對(duì)象訪問(wèn)問(wèn)題。這使得以一種安全,方便的方式動(dòng)態(tài)地鏈接代碼成為可能,對(duì)于那些可以在運(yùn)行的系統(tǒng)中動(dòng)態(tài)更新小段字節(jié)碼的Java環(huán)境的健壯性來(lái)說(shuō),這個(gè)很關(guān)鍵。
本篇和上篇已經(jīng)對(duì)Java作了簡(jiǎn)單的概述,有了一定的認(rèn)知,下面的文章將會(huì)以Java8編程為主,從基礎(chǔ)到JavaWeb,JavaEE開(kāi)發(fā)。一起學(xué)習(xí),一起成長(zhǎng),Java通神之路正式開(kāi)啟??!