首頁>Club>
5
回覆列表
  • 1 # java樂園

    1. 記憶體回收機制: Java自身的記憶體管理方式決定了, 每當進行徹底的垃圾回收的時候, 所有的Java應用程式必須停下來. 這點非常的討厭, 搞得VM的開發者不得不挖空心思的去設計垃圾回收的演算法.

    2. 函式的呼叫: Java的面向物件設計思想, 導致Java類庫的設計, 充滿了許多相關聯的, 非常短小的方法, 比如private成員變數的get/set函式. 還有就是Java的類,至少有一個建構函式, 因此很多情況下, 會產生一些空的建構函式. 函式的呼叫會產生一些開銷. 再就是Java中函式的動態繫結, 特別是interface的使用, 導致java函式呼叫的效率比較低.

    3. Java的異常機制: Java規範要求了執行期異常檢查. 這對Java程式的除錯和排錯有很大幫助, 對Java的效率,卻造成了很大的影響.

    4. 同步方法和同步的程式碼塊. 同步方法和同步程式碼塊很容易造成效能的下降, 在java這種面向物件設計思想的環境裡, 很多方法被設計的很小, 呼叫很頻繁, 如果是同步的方法, 效能下降就非常的明顯.

  • 2 # 菸草的香味

    Java程式的執行得益於JVM虛擬機器.

    使用C語言編譯的程式, 會透過編譯器, 編譯成exe檔案, 然後將exe可執行檔案交給Windows系統來執行, 為什麼不問exe檔案是怎麼執行的呢? 可能是因為這已經是一種常識了.

    而Java程式的執行和exe檔案的執行道理也差不多, Java程式會先編譯成class檔案, 然後將class檔案交割JVM來執行, 而JVM是執行在作業系統之上的, JVM就像是Java程式和作業系統之間的翻譯官, 將Java的程式碼翻譯到作業系統中進行執行.

    同時, 因為Java程式是執行在虛擬機器之上的, 所以虛擬機器就可以對Java程式進行一些處理, 如記憶體的回收等等, 在虛擬機器中記憶體也分為堆、棧、方法區等等, 便於堆記憶體進行管理.

    和Java類似, 所有的解釋型語言都不能直接與作業系統進行溝通, 中間都有一個翻譯官的角色存在, 如Python、PHP等.

  • 3 # 世界和平8735

    使用C語言編譯的程式, 會透過編譯器, 編譯成exe檔案, 然後將exe可執行檔案交給Windows系統來執行, 為什麼不問exe檔案是怎麼執行的呢? 可能是因為這已經是一種常識了.

  • 中秋節和大豐收的關聯?
  • 作為姐姐,是否一定要教育弟弟?