來源:北大青鳥總部 2020年05月28日 10:05
1. 內(nèi)存回收機(jī)制: Java自身的內(nèi)存管理方式?jīng)Q定了, 每當(dāng)進(jìn)行徹底的垃圾回收的時(shí)候, 所有的Java應(yīng)用程序必須停下來. 這點(diǎn)非常的討厭, 搞得VM的開發(fā)者不得不挖空心思的去設(shè)計(jì)垃圾回收的算法.
2. 函數(shù)的調(diào)用: Java的面向?qū)ο笤O(shè)計(jì)思想, 導(dǎo)致Java類庫的設(shè)計(jì), 充滿了許多相關(guān)聯(lián)的, 非常短小的方法, 比如private成員變量的get/set函數(shù). 還有就是Java的類,至少有一個(gè)構(gòu)造函數(shù), 因此很多情況下, 會產(chǎn)生一些空的構(gòu)造函數(shù). 函數(shù)的調(diào)用會產(chǎn)生一些開銷. 再就是Java中函數(shù)的動態(tài)綁定, 特別是interface的使用, 導(dǎo)致java函數(shù)調(diào)用的效率比較低.
3. Java的異常機(jī)制: Java規(guī)范要求了運(yùn)行期異常檢查. 這對Java程序的調(diào)試和排錯(cuò)有很大幫助, 對Java的效率,卻造成了很大的影響.
4. 同步方法和同步的代碼塊. 同步方法和同步代碼塊很容易造成性能的下降, 在java這種面向?qū)ο笤O(shè)計(jì)思想的環(huán)境里, 很多方法被設(shè)計(jì)的很小, 調(diào)用很頻繁, 如果是同步的方法, 性能下降就非常的明顯.