欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

java代碼的缺點(diǎn) JAVA的缺點(diǎn)

java語(yǔ)言有哪些缺點(diǎn)?

最大的缺點(diǎn)就是運(yùn)行java程序需要裝java虛擬機(jī)。就這一條嚴(yán)重的影響了java應(yīng)用程序的使用,基本看不到j(luò)ava的應(yīng)用程序。還有就java程序的運(yùn)行成本比較高 過去機(jī)器配置不夠高的時(shí)候java顯得很慢 現(xiàn)在隨著java本身的版本升級(jí)和電腦性能的強(qiáng)化 這條基本已經(jīng)不是問題了。

創(chuàng)新互聯(lián)建站主營(yíng)尋甸網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營(yíng)網(wǎng)站建設(shè)方案,重慶App定制開發(fā),尋甸h5小程序開發(fā)搭建,尋甸網(wǎng)站營(yíng)銷推廣歡迎尋甸等地區(qū)企業(yè)咨詢

java開發(fā)的缺點(diǎn)有哪些?

我認(rèn)為Java語(yǔ)言的10大問題是:\x0d\x0a1、缺少閉包(closure):我想這個(gè)不需要解釋了。函數(shù)式編程已經(jīng)存在幾十年了,但最近幾年,它們獲得了越來(lái)越多的關(guān)注,最主要的原因,是它可以自然地編寫并行程序。我部分的同意Joshua Bloch強(qiáng)調(diào)在Java中引入閉包的問題需要再想一想(BGGA提議的方式真的很糟),至少閉包的缺失,使得在Java中做任何真正的函數(shù)式編程都是不可能的。\x0d\x0a2、缺少一等函數(shù):這個(gè)問題與前一個(gè)有些關(guān)聯(lián),但我認(rèn)為它更糟糕。在Java里,要達(dá)到類似效果的唯一方式,是使用著名的、丑陋悲慘的單方法匿名內(nèi)部類,但這看上去的確是一個(gè)拙劣的方法。甚至在C#中,也通過代理機(jī)制,提供了一個(gè)更好的實(shí)現(xiàn)。\x0d\x0a3、原生類型(Primitive types):如果在Java中一切皆對(duì)象,那是多么完美啊,但他們偏偏不這樣設(shè)計(jì)。因而,這一點(diǎn)導(dǎo)致了一些問題,比如,不能把一個(gè)int放到集合(Collection)里,這個(gè)在Java5中通過自動(dòng)裝箱特性得到了解決(下面會(huì)提到)。它也造成了傳值與傳引用上的困擾,原生類型數(shù)據(jù)是通過值傳給方法的(復(fù)制一份拷貝,然后傳給函數(shù)),而真正的對(duì)象是通過傳遞(譯注:其實(shí)是復(fù)制對(duì)象地址再傳遞,因此應(yīng)該也是傳值方式,只是由于函數(shù)內(nèi)部可通過這個(gè)對(duì)象地址訪問對(duì)象,因此效果上類似傳引用)。\x0d\x0a4、自動(dòng)裝箱(Autoboxing)和自動(dòng)拆箱(autounboxing):這個(gè)特性是為了解決因原生類型的存在所導(dǎo)致的問題,在Java5引入的。它允許靜默地轉(zhuǎn)換原生類型到相應(yīng)的對(duì)象,但這常常導(dǎo)致其它的問題。比如Integer可以為null,但int不能,因此這時(shí)JVM只能拋出一個(gè)難以調(diào)試的空指針異常(NullPointerException)。此外,它還可能導(dǎo)致其它奇怪的行為,就像下面的例子,我們就很難理解,變量test為什么是false:\x0d\x0aIntger a = new Integer(1024);\x0d\x0aIntger b = new Integer(1024);\x0d\x0aboolean test = a b;\x0d\x0a5、缺少范型具類化:范型是Java5引入的一個(gè)很酷的特征,但是為了保持與舊版本Java的兼容性,導(dǎo)致缺失某些重要的特性,尤其是不能在運(yùn)行時(shí)反省范型的類型。例如,你有一個(gè)方法,接受List參數(shù),如果傳進(jìn)來(lái)一個(gè)List,你卻不能知道運(yùn)行里該范型的確切類型。同理,你也不能創(chuàng)建范型數(shù)組。這意味著,盡管下面的代碼看起來(lái)很自然,但卻不編譯不了:\x0d\x0aList[] listsOfStrings = new List[3];\x0d\x0a6、不可避免的范型警告:你有發(fā)現(xiàn)過自己陷入不可能去掉的關(guān)于范型的警告么?如果你像我一樣大量使用范型,我打賭你碰到過。事實(shí)上,是這個(gè)問題的規(guī)模化癥狀,讓他們認(rèn)為需要引入一個(gè)特定的注解(@SuppressWarnings("unchecked"))來(lái)處理這種情況,我覺得,范型應(yīng)該可能被設(shè)計(jì)的更好。\x0d\x0a7、不能傳void給方法調(diào)用:我得承認(rèn),這種給方法傳遞void的需求,乍一看有些怪異。我喜歡DSL,當(dāng)我實(shí)現(xiàn)自己的DSL庫(kù)(lambdaj)的一個(gè)特定特性時(shí),我不得不需要一個(gè)方法聲明成這樣的簽名:void doSomething(Object parameter),這里為這個(gè)方法傳進(jìn)來(lái)的參數(shù)parameter,是另一個(gè)方法調(diào)用的結(jié)果,它唯一的目的,是注冊(cè)調(diào)用(的對(duì)象)自身,以可以在以后執(zhí)行它。讓我吃驚的是,即使println方法返回void,看上去也并沒有一個(gè)好理由,不允許我把代碼寫成這樣,:\x0d\x0adoSomething(System.out.println("test"));\x0d\x0a8、沒有原生的代理機(jī)制:代理是一種非常有效和應(yīng)用廣泛的模式,但Java提供的代理機(jī)制,只針對(duì)接口,而不是具體類。這是為什么象cblib這樣提供這種機(jī)制的庫(kù),被如此多的主流框架,如Spring和Hibernate,采用的原因。此外,由于cglib通過運(yùn)行時(shí)創(chuàng)建被代理類的子類來(lái)實(shí)現(xiàn)的,因此這些種方式有一個(gè)眾所周知的限制——不能代理final類,比如String。\x0d\x0a9、差勁的Switch...case語(yǔ)句:Java規(guī)定,switch...case只能選擇int和enum(Java5開始)。這一點(diǎn)如果跟更現(xiàn)代的語(yǔ)言如Scala相比,看起來(lái)簡(jiǎn)直太弱了。\x0d\x0a10、受檢查異常(Checked exception):類似原生類型,受檢查異常也已經(jīng)成為Java的一個(gè)罪孽之源。它迫使程序員必須做下面兩件極其糟糕討厭的事情中的一個(gè):讓你的代碼里充斥大量的、糟糕難讀的、容易出錯(cuò)的try...catch語(yǔ)句,而這樣做的最大意義,只是將捕獲的異常,包裝成運(yùn)行時(shí)異常,然后再重新拋出;或者是讓大量的拋出聲明子句污染你的API,讓接口缺少靈活性和可擴(kuò)展性。\x0d\x0a真正的問題是,這里我提到的這幾大主要問題,唯一的解決辦法,是要做一個(gè)痛苦的決擇,定義一套新的語(yǔ)言規(guī)范,放下當(dāng)前版本的向后兼容性。我猜他們永遠(yuǎn)也不會(huì)這么做,雖然我相信,如果編寫一個(gè)能夠自動(dòng)轉(zhuǎn)換舊Java源碼的程序,讓它們與假設(shè)的新版本兼容,并不是很困難。最后,這就是我決定開始尋找一個(gè)更好的JVM兼容語(yǔ)言的原因。

java的缺點(diǎn)的什么?

Java的缺點(diǎn)很多。。。

我在這里簡(jiǎn)單的說(shuō)一下。。

第一:

運(yùn)行速度慢,眾所周知,Java程序的運(yùn)行依賴于

Java虛擬機(jī),所以相對(duì)于其他語(yǔ)言(匯編,C,C++)編寫的程序慢,因?yàn)樗皇侵苯樱瑘?zhí)行機(jī)器碼。

第二:

因?yàn)镴ava考慮到了跨平臺(tái)性。所以他不能像語(yǔ)言

(例如:匯編,C)

那樣更接近操作系統(tǒng)。也就不能和操作系統(tǒng)的底層打交道了。但可以通過Java的JNI

(即Java本地接口。顧名思義:也就是利用Java語(yǔ)言調(diào)用,在當(dāng)前系統(tǒng)上

其他的程序語(yǔ)言

"匯編或C等"所編寫的程序)技術(shù),解決這一問題,但這只是解決了。一部分問題。

所以如果是你想開發(fā)

應(yīng)用程序的話

最好選擇

Java以外的其他開發(fā)語(yǔ)言

文章標(biāo)題:java代碼的缺點(diǎn) JAVA的缺點(diǎn)
瀏覽地址:http://chinadenli.net/article28/hipcjp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站維護(hù)電子商務(wù)標(biāo)簽優(yōu)化商城網(wǎng)站自適應(yīng)網(wǎng)站營(yíng)銷型網(wǎng)站建設(shè)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

營(yíng)銷型網(wǎng)站建設(shè)