是一門完美的語言。
整體性問題
並不是所有的工程和環境需要企業級別的複雜性,比如一個簡單的個人網站或者獨自編程的程序師所寫的程序。這些程序師會發現Java的複雜管理對於自己要做的程序來說過於強大了。一些人覺得Java在麵向對象上麵做的沒有Ruby和Smalltalk純粹。但是最新出現的用Java實現的語言Groovy解決了這些問題。
作為一種已經創建的新技術,Java顯然綜合了很多語言的特性,比如C++、C語言、Python等等。一些對於Java的評論認為Java的不變性在動搖。
語言問題
本章節來源於𝑜𝑜𝑝.𝑡𝑤
有些程序師不喜歡原始類型(primitivetype)和類型(class)的分離,尤其是那些曾經使用過Smalltalk和Ruby的程序師。Java的代碼相對於其他的代碼來說過於冗長,這與它的輕便化聲明相違背。
Java是一種單層繼承的語言。這也導致了程序師在試圖使用多重繼承時候的不便,而很多語言都可以使用這個特性。但是Java可以使用接口類,把多重繼承可能導致的風險減少到最小。Java不支持運算符重載,這是為了防止運算符重載使得代碼的功能變得不清晰。但是用Java實現的語言Groovy可以進行運算符重載。過去Java對於文本的操作和其他語言,比如Perl和PHP相比差的較多,但Java在1.4版本時候引入了正則表達式。
類庫問題
使用Swing平台編寫的帶有GUI(圖形用戶接口)的程序和其他原始程序非常不同。選用AWT工具包編寫程序的程序師看到的都是原始接口,而且也無法獲得先進的GUI編程支持,如果使用的話,就要提供每個平台上麵所需的API,這將是一項龐大的工程。Swing則是完全用Java語言所寫的程序,避免了接口元素重複的問題,隻使用所有平台都支持的最基本的繪圖機製。但是很多用戶不知道如何在Java風格和Windows風格之間進行轉換,結果造成了Java程序的接口在很多程序中非常特殊。蘋果電腦已經提供了優化過的Java運行時程序,包含了MacOSX的經典Aqua接口風格。
題問能性
。ERJ和KDJ的發開己自有都司公等AEB、MBI、NUS如比,樣一不也能性的ERJ和KDJ的司公同不,期時一同在是使即。右左倍十的本版KDJ的年6991是能性的本版KDJMBI的時年1002上件硬的樣同在,據數的MBI據。的性導誤有是常經能性的序程的avaJ論討一統以所,多的大響影的身本言語比響影能性的碼代avaJ對同不的機擬虛和器譯編avaJ於由
。似類況情的序程的++C管托者或LTS用使是總和這。能性的配分器儲存加增以可至甚能功些這麼那,話的化優較比現實的MVJ果如。同不有各而少多的用使製機理處圾垃和性雜複態動的同不為因會還能性的序程avaJ。等等查檢型類時行運、查檢圍範組數如例,價代能性的外額有的免避可不性特些一的言語avaJ
。題問的樣這有也台平TEN.的軟微,大很會失損能性時性特些這用調繁頻著味意問訪接間而,碼代地本用調來)口接地本avaJ(INJ用使要需就,話的能功層底些這用調接間要需果如。了除去被都問訪接直的問訪址地器儲存和構架件硬對如比,性特些一於對以所,性攜可和性全安是要主的目計設的avaJ