作過 Java
開發的同窗都知道,JVM(Java 虛擬機)
是 Java
實現的基礎,雖然在平時工做中真正運用到的時候可能並很少,可是一個程序員想要上升到高級層次,那就必須知道 Java
究竟是怎麼運行的,這就有必要去學習瞭解 JVM
的相關知識了。學習 JVM
能夠能更深刻的理解 Java
這門語言,能夠清楚知道Java程序是如何執行的以及爲將來排查線上問題打下堅實的基礎。接下來咱們看看 2020 年的 JVM
生態報告和最新趨勢,值得咱們每一個 Java
開發者去關注瞭解。java
Oracle JDK
和 Open JDK
加起來佔比將近 60%
,其中 Oracle JDK
佔比略多一些,Oracle JDK
和 Open JDK
都是市場上的熱門選擇,咱們看看兩者之間的一些差別。Oracle JDK
更多的關注穩定性,更適合企業級用戶,而 Open JDK
相對而言沒有那麼穩定,它會常常發佈一些新特性。Oracle JDK
支持長期發佈的更改,而 Open JDK
僅支持計劃和完成下一個發行版,還有一個就是 Oracle JDK
是根據 二進制代碼許可協議 得到許可,而 Open JDK
是根據 GPL v2 許可得到許可。使用 Oracle
平臺時會產生一些許可影響。如 Oracle
宣佈的那樣,在沒有商業許可的狀況下,在 2019 年 1 月以後發佈的 Oracle Java SE 8
的公開更新將沒法用於商業,商業或生產用途。可是,Open JDK
是徹底開源的,能夠自由使用。程序員
只有 9%
的用戶表示願意爲 JDK
支付費用,還有 86%
的用戶表示並不想爲 JDK
支付費用,能夠看出大部分用戶其實對 JDK
的付費使用仍是不贊同的,目前來看,若是要真正實行付費模式仍是有點難。不過人們選擇爲 JDK
支付費用時,Oracle
仍是當之無愧的大贏家的。自從 JDK9
發佈以後,之後每一年的 3 月和 9 月都會發佈一個新的版本,這個發佈節奏的改變,這個對許多用戶的版本更新策略仍是有必定的影響。調查結果顯示這個發佈節奏的變動影響了三分之一的開發者們是否決定爲其支付費用。web
從 Java 9
以後對 JDK
的結構作了很大的調整,這也是影響人們升級的緣由之一,根據報告結果來看 Java 8
仍然是你們使用最多的版本,可是在 2018 年 9 月發佈了第一個 LTS(長期支持)
版的 Java 11
以後,有四分之一的開發者在生產環境中使用了 Java 11
。由於發佈節奏的緣由,大部分開發者仍是不肯意每 6 個月就對版本進行一次更新,版本遷移成本其實也不低,還有新版本在生產環境的穩定性也是其中的一個考慮因素。spring
在 JVM
類語言語言中 Java
佔比 86.9%
穩居第一,除了 Java
語言以外,Kotlin
語言在 JVM
類語言佔比第二佔比 5.5%
,Kotlin
從去年的 2.4%
增長到今年的 5.5%
,JVM
類語言的用戶中 Kotlin
使用率的增加,由於它能夠與 Java
無縫集成也不足爲奇,像在 Spring Boot
框架中使用 Kotlin
進行開發也很容易。Kotlin
也一直在創新,積極擁抱 Java
的大腿,在 Java
的新版本中也在試圖整合一些 Kotlin
的概念。服務器
有十分之六的開發者依賴 Spring
框架來構建他們的程序,這對於衆多的第三方開源框架來講,這是一個很高的佔比,Spring Framework
依然是 Java
開發框架中的王者,Spring
框架已經發布了很長一段時間了,經過長時間的改進和創新,無疑 Spring
如今已經成爲 Java
生態系統中的最重要的框架。在衆多的使用者中有將近三分之二的用戶使用 Spring 5
,可見你們對 Spring
框架的新版使用率仍是很高的。架構
服務器端依然是 Spring
的天下,其中有一半的人使用的是 Spring Boot
框架,還有將近的三分之一的人使用的是 Spring MVC
框架,前幾年比較火的 Struts
框架已經開始沒落了,這個佔比和如今市場上比較流行微服務架構是分不開,由於 Spring Boot
框架天生就是爲微服務而生的,它能夠快速實現微服務。使用基於 Spring Boot
的 Spring Cloud
框架能夠快速搭建一個分佈式的服務或應用。框架
IntelliJ IDEA
是 Java
開發者們使用最普遍的開發工具,調查結果顯示有 62%
的開發人員使用社區免費版和付費終極版。Apache NetBeans
以 10%
的市場份額保持在第三位,和去年的調查結果一致。能夠發現被業界普遍稱讚的 VS Code
神級編輯器在 Java
開發人員中並無想象的那麼受歡迎。jvm
Maven
是一個軟件項目管理和自動構建的工具,由 Apache 基金會
維護。它基於項目對象模型(POM)概念,Maven
利用一箇中央信息片段能管理一個項目的構建、報告和文檔等步驟。調查結果顯示它在排名還是第一,一直都是主流的項目構建工具,排名第二的 Gradle
一直保持着增加的趨勢,在 2019 年佔比達到四分之一,而在 2012 年佔比高達 40%
的老牌的構建工具 Ant
將逐漸退出舞臺,到 2019 年佔比不到 10%
。能夠明確的是,構建工具之間的競爭從不會中止,可否及時更新發布一些能夠解決使用者痛點的工具是你們選擇的因素之一。編輯器
和咱們大多數 Java
開發人員的指望一致,Jenkins
以高達 58%
的佔比排名穩居第一,排名第二的 GitLab
佔比僅爲 6%
,有趣的是沒有使用工具的也高達 12%
,雖然不適用工具的人數佔比比去年低了不少,可是這個佔比仍是讓人有點兒驚訝。分佈式
JVM
獲取 2020 年
JVM
生態報告
PDF
版原文。