2-Java的特性掃盲

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)啟??!

最后編輯于
?著作權(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)容

  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語(yǔ)法,類(lèi)相關(guān)的語(yǔ)法,內(nèi)部類(lèi)的語(yǔ)法,繼承相關(guān)的語(yǔ)法,異常的語(yǔ)法,線程的語(yǔ)...
    子非魚(yú)_t_閱讀 34,638評(píng)論 18 399
  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 178,881評(píng)論 25 709
  • 從三月份找實(shí)習(xí)到現(xiàn)在,面了一些公司,掛了不少,但最終還是拿到小米、百度、阿里、京東、新浪、CVTE、樂(lè)視家的研發(fā)崗...
    時(shí)芥藍(lán)閱讀 42,787評(píng)論 11 349
  • 早上5點(diǎn)半的鈴,迷迷瞪瞪醒了,但是就是起不來(lái),眼睛酸澀難受,估計(jì)因?yàn)樽蛱焖岸⑹謾C(jī)時(shí)間太久還有燈光暗。以后無(wú)論如何...
    簡(jiǎn)單生活M閱讀 191評(píng)論 0 0
  • 智業(yè)云桌面能干啥? 1、能完成普通主機(jī)能完成的所有工作 2、性能上比傳統(tǒng)主機(jī)更強(qiáng),因?yàn)槭怯布际欠?wù)器級(jí)別 3、可...
    宅男子閱讀 335評(píng)論 0 0

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