search
尋找貓咪~QQ 地點 桃園市桃園區 Taoyuan , Taoyuan

JAVA的問題

網上總看到java要死的言論。個人認為java是肯定會死的,也是要死的,但具體什麼時候,這個和java本身完全無關,而是和技術的發展有關。什麼時間出現一個比java更好的開發系統(注意不是語言),什麼時間java就會滅亡,當然,前提是,這個系統要能支持到java原有系統。

java的問題:

1.性能:java的內存管理似乎比較自動化,但其實性能不是特別好。尤其是new對象的時候沒有節制。在java中,有些對象構造成本很低,有些很高。特別在UI編程的時候,大多數的UI對象其構建成本都比較高昂。如果在開發過程中沒有節約意識,肯定會導致JVM不停的GC,系統表現很卡的樣子,當然,徹底的當掉可能還不會,但基本上工作已經是非常的緩慢的了。

2;引用:JAVA中其實在大量的使用對象引用,對象引用可以減少內存佔用,不去構建不必要的對象。但事實上,多數程序員對引用的理解不是很到位,結果導致過多不必要的對象構建,虛耗內存。代碼可讀性也不佳,編寫的時候尤其覺的疲憊。

3;面向對象:java是面向對象的語言,但是它有基礎類型,這些基礎類型不是面向對象的,不能當作引用傳遞。一般來說,這些基礎類型可以用來表示一個對象的狀態。java中的對象一定要包含狀態,沒有狀態的對象其實是不存在的,沒有狀態的東西不是對象,而是一個行為集合。但是java中沒有一個明確的結構來表達這個情況,所以只能寫一個類來表示,同時將這個類的構造定義成私有的,防止被別人構建。這個時候的類的作用等同與命名空間。java在面向對象的支持方面其實是很殘缺的,缺乏很多必要的支持,比如虛函數,多重繼承,友元。這種殘缺,導致設計困難,所以java的系統都十分的羅嗦。

4:複雜:java越來越複雜了。註解,泛型,枚舉,特性很多。

5:不可變:java支持不可變,但是大多數人並不了解這個主題。不可變系統其實比較容易實現,同時也不容易出錯。但是java是基於引用的系統,不可變會導致大量的內存問題。JVM缺乏尾遞歸優化,這其實也是一個問題。

總之,我們都被高司令騙了,java上手簡單,但是寫好了不容易。面向對象設計尤其不易同時還要精通java,這樣的人實在是缺乏。因此很多系統設計的不好,不是程序員水平的問題,而是java實在是對設計師要求太高了一些。java距離滅亡還早,因為隨著時間的變遷,我們發現我們對它的理解其實很不足。不過說的嚴重一點,我個人認為,java是對面向對象編程思想的一種褻瀆,因為它強制人寫class,這等於強制人放棄思考,不明白為什麼要寫class,因此會寫出什麼,只有天知道,自己也不知道的。



熱門推薦

本文由 yidianzixun 提供 原文連結

寵物協尋 相信 終究能找到回家的路
寫了7763篇文章,獲得2次喜歡
留言回覆
回覆
精彩推薦