初識JVM

1. 初識Java

Java 能得到如此普遍的承認,除了它擁有一門結構嚴謹、面向對象的編程語言以外,還有許多不可忽視的優勢:java

  1. 它擺脫了硬件平臺的束縛,實現了 「一次編寫、處處運行」。
  2. 它提供了一個相對安全的內存管理和訪問機制,避免了絕大部分的內存泄露和指針越界問題。
  3. 它實現了熱點代碼檢測和運行時編譯及優化,這使得 Java 應用能隨着運行時間的增長而得到更高的性能。
  4. 它有一套完整的應用程序接口,還有無數來自商業機構和開源社區的第三方類庫來幫助它實現各類各樣的功能。
  5. 它與身俱來對分佈式技術的支持就比較完善。

2. Java 技術發展的時間線

3. Java 技術體系所包含的內容

4. 瞭解 JVM 的必要性

通常狀況下,僅需知道java核心類庫,以及第三方類庫裏API的用法,即可以專一於實現具體業務,而且依賴Java虛擬機自動執行乃至優化應用程序。
若是把核心類庫的API比做數學公式的話,那麼Java虛擬機的知識就比如公式的推導過程。掌握數學公式當然能夠應付考試,可是瞭解背後的推導過程更加有助於記憶和理解。而且,在遇到哪些無法套公式的狀況下,咱們也能知道如何解決。算法

5. 學習 JVM 的好處

  • JVM提供了近千個配置參數編程

    $ java -XX:+PrintFlagsFinal -XX:+UnlockDiagnosticVMOptions -version | wc -l
    java version "10" 2018-03-20
    Java(TM) SE Runtime Environment 18.3 (build 10+46)
    Java HostSpot(TM) 64-Bit Server VM 18.3 (build 10+46, mixed mode)
        812
    複製代碼
  • 更好地規避JVM在使用中的Bug安全

  • JVM擁有最前沿、最成熟的垃圾回收算法實現,以及即時編譯器實現。瞭解其背後決策,對其餘代碼託管技術也能舉一反三bash

  • 除Javaw外,Scala、Clojure、Groovy、以及時下熱門的Kotlin,這些語言均可以運行在JVM上。oracle

    Scala 是一門多範式(multi-paradigm)的編程語言,設計初衷是要集成面向對象編程和函數式編程的各類特性。
    Scala 運行在 Java 虛擬機上,併兼容現有的 Java 程序。
    Scala 源代碼被編譯成 Java 字節碼,因此它能夠運行於 JVM 之上,並能夠調用現有的 Java 類庫。編程語言

    Clojure 是一種運行在 Java 平臺上的 Lisp 方言。
    Lisp 是一種以表達性和功能強大著稱的編程語言,但人們一般認爲它不太適合應用於通常狀況,而 Clojure 的出現完全改變了這一現狀。
    現在,在任何具有 Java 虛擬機的地方,您均可以利用 Lisp 的強大功能。分佈式

    Groovy 是一種基於 JVM(Java 虛擬機)的敏捷開發語言,它結合了 Python、Ruby 和 Smalltalk 的許多強大的特性。
    Groovy 代碼可以與 Java 代碼很好地結合,也能用於擴展示有代碼。
    因爲其運行在 JVM 上的特性,Groovy 可使用其餘 Java 語言編寫的庫。函數式編程

    Kotlin 是一個用於現代多平臺應用的靜態編程語言 [1] ,由 JetBrains 開發。
    Kotlin 能夠編譯成 Java 字節碼,也能夠編譯成 JavaScript,方便在沒有 JVM 的設備上運行。
    Kotlin 已正式成爲 Android 官方支持開發語言。函數



參考來源: 極客時間《深刻拆解Java虛擬機》 周志明 《深刻理解Java虛擬機》

相關文章
相關標籤/搜索