Java語言的優(yōu)點

姓名:于川皓 學(xué)號:16140210089

轉(zhuǎn)載自:http://www.importnew.com/7520.html

【嵌牛導(dǎo)讀】:Java是一種能夠廣泛應(yīng)用的高級語言,那么它有什么優(yōu)點呢?

【嵌牛鼻子】:編程語言,程序設(shè)計

【嵌牛提問】:Java語言的優(yōu)點是什么?

【嵌牛正文】:在我們平常開發(fā)中我想使用到的最多語言就是java了,有幸購得Java核心技術(shù)卷一書,其實不想買的,因為自己感覺基礎(chǔ)還不錯,有讀過瘋狂Java講義,java編程思想這些基礎(chǔ)的,也讀過java網(wǎng)絡(luò)編程,spring核心技術(shù)卷等進(jìn)階的書。說來也是和這本書有緣,一個學(xué)妹轉(zhuǎn)測試了,便宜轉(zhuǎn)賣,看她那么辛苦,我實在不忍心,就買下了這本書。準(zhǔn)備挑燈苦讀,把晚上的時間留給這本書。翻開書本的第一卷,很好的向我闡述了Java的11個優(yōu)點。

1.簡單性:

這個簡單在我看來可謂是簡單不簡單了,怎么說了,如何拿它和C,匯編去對比,真的是簡單了許多,我們看Java里面沒有頭文件,指針運(yùn)算(甚至指針語法,但我認(rèn)為 Java的引用就跟指針差不多),結(jié)構(gòu),聯(lián)合,操作符重載,虛基類等。然而設(shè)計者沒有試圖清除C++中所有不適當(dāng)?shù)奶匦?,例如Switch,不過java的if語句真的很強(qiáng)大,我們可以用if ,else 來作真假的所有判斷。另外java的類庫很強(qiáng)大,我們可以用java去做編程的大部分事情,這讓編程變得更加簡單;

2.面向?qū)ο?

一直再說面向?qū)ο?包括我學(xué)習(xí)java的第一章課,老師都對我講什么是面向?qū)ο?,?dāng)時聽的云里霧里的,只記得萬物皆對象。面向?qū)ο蠛唵蔚闹v是一種程序設(shè)計技術(shù)。它講重點放在數(shù)據(jù)(即對象)和對象的接口上。用人吃飯來舉個例子,面向?qū)ο髸@樣表達(dá),人(吃)飯,在這里人和飯是對象,而吃我們可以理解成為動作。人就是主語而飯是賓語,吃就是所謂的謂語。而我們的面向過程關(guān)注的是什么啦,關(guān)注的是吃這個過程。表達(dá)出來的第一個意思就是吃,然后由吃來引導(dǎo)吃?吃什么啦,答曰吃飯。誰吃飯啦,人吃飯。偶原來面向過程是這樣的啊。

在過去的40年里,面向?qū)ο笠呀?jīng)證明了自身的價值,一種現(xiàn)代的程序設(shè)計語言不實用面向 對象技術(shù)簡直讓人難以置信。的確Java的面向?qū)ο筇匦耘cC++起鼓相當(dāng)。Java與C++的主要不同點在于多繼承,在java中取而代之的是簡單的接口繼承,以及java的元素模型.

3.網(wǎng)絡(luò)技能:

Java有一個擴(kuò)展的例程庫,用于處理像HTTP和FTP之類的TCP/IP協(xié)議。Java的應(yīng)用程序能夠通過URL打開和訪問網(wǎng)絡(luò)上的對象,其便捷程序就好像訪問本地文件一樣。

人們已經(jīng)看到Java的網(wǎng)絡(luò)能力強(qiáng)大且易于使用。任何曾經(jīng)試圖使用其他語言進(jìn)行網(wǎng)絡(luò)編程的人都會驚呼Java竟然把類似于打開socket連接這類繁重的任務(wù)都變得如此簡單。另外遠(yuǎn)程方法調(diào)用機(jī)制使得分布式對象之間可以進(jìn)行通信。

4.健壯性:

Java的設(shè)計目標(biāo)之一在于使得Java編寫的程序具有多方面的可靠性。Java投入了大量的精力進(jìn)行早期的問題檢測,后期動態(tài)(運(yùn)行時)檢測,并消除了又出錯傾向的狀態(tài)......Java和C++最大的不同在于java采用的指針模型可以消除重寫內(nèi)存和順壞數(shù)據(jù)的可能性。這個特性非常有用,我們再程序編寫的時候往往就會自動提示很多其他語言僅在運(yùn)行時刻才能夠檢測出來的錯誤。至于第二點,就更加有用了,對于曾經(jīng)話費(fèi)幾個小時來堅持由于指針bug而引起的內(nèi)存沖突的人來說,一定非常喜歡java這一特性。其原理在于Java的內(nèi)存模型,他把引用和實際值放在兩塊不同的內(nèi)存中,這個以后再細(xì)說。

5.安全性:

Java適用于網(wǎng)絡(luò)/分布式環(huán)境。為了達(dá)到這個目標(biāo),在安全方面投入了很大精力。使用Java可以構(gòu)建防病毒,防篡改的系統(tǒng)。

6.體系結(jié)構(gòu)中立:

編譯器生成一個體系結(jié)構(gòu)中立的目標(biāo)文件格式,這是一種編譯過的代碼,只要有java運(yùn)行時系統(tǒng)就可以再許多處理器上運(yùn)行。這并不是什么新的思路,在40多年前就有這種技術(shù)了,當(dāng)然這也執(zhí)行效率很慢很多,然而虛擬機(jī)有一個策略就是把使用最繁瑣的字節(jié)碼序列翻譯成機(jī)器碼,這一過程叫做即時編譯。

7.可移植性:

與C不同,java規(guī)范中沒有依賴具體實現(xiàn)的地方?;緮?shù)據(jù)類型的大小以及有關(guān)算法都做了明確的說明。

例如java的基本類型永遠(yuǎn)都是固定的,不論在什么環(huán)境下,而在C中,Int有可能是16位,也有可能是32位。只有把數(shù)據(jù)類型的大小和有關(guān)算法固定了,我們再任何應(yīng)用系統(tǒng)上基本上都不需要重寫代碼。

8.解釋性:

Java的解釋器可以再任何移植了解釋器的機(jī)器上執(zhí)行Java字節(jié)碼,所以我說Java是一種解釋性語言,他在語法上面要更容易讓人理解與編寫,由于鏈接是一個增量式且輕量級的過程。所以開發(fā)過程也變得更加快捷,更加具有探索性。

9.高性能:

盡管對解釋后的字節(jié)碼性能已經(jīng)比較滿意,但在有些場合下還需要更加高效的性能。字節(jié)碼尅(在運(yùn)行時刻)快速地翻譯成運(yùn)行這個應(yīng)用程序的特定CPU的機(jī)器碼。在早期Java性能一直是一塊詬病,但是現(xiàn)在即時編譯的速度已經(jīng)很快了,人們又對JVM進(jìn)行了很多優(yōu)化,導(dǎo)致現(xiàn)在Java的性能也比較快了。

10.多線程:

多線程可以帶來更好的交互響應(yīng)和實時行為。同時也大大提高了我們的執(zhí)行效率,在這里多線程這把雙刃劍就不多說了,Java為我們實現(xiàn)多線程提供了很多支持,使我們能更加容易的去編寫多線程程序。在底層,主流平臺實現(xiàn)多線程的機(jī)制各不相同。

11.動態(tài)性:

從各種角度來看,Java要比C更加具有動態(tài)性,它能夠適應(yīng)不斷發(fā)展的環(huán)境,庫中可以自由添加新方法和實例變量而對客戶端卻沒有任何影響。這里主要還是因為Java使用的是接口繼承。不去破壞我們原來的方法,從而實現(xiàn)新的功能。當(dāng)我們需要對某些代碼添加到正在運(yùn)行的程序中時,動態(tài)性是一個非常重要的特性,因為我們可以獲取到運(yùn)行時的類信息,這對于 JavaGUI構(gòu)建器,只能調(diào)試器,可插拔組件以及對象數(shù)據(jù)庫來說非常有用。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

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

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