深入理解java虛擬機第三版第一章

深入理解java虛擬機這本書本書是以OpenJDK/OracleJDK中的HotSpot虛擬機爲主脈絡進行講述

java雜談

在這裏插入圖片描述

  1. 一般以javax.*作爲包名,而以java.*爲包名的包都是Java SE API的核心包,javaEE的擴展由於歷史原因,一部分曾經是擴展包的API後來進入了核心包中,因此核心包中也包含了不少javax.*開頭的包名。
  2. Sun公司發佈了JDK 1.1,Java裏許多最基礎的技術支撐點(如JDBC等)都是在 JDK 1.1版本中提出
  3. 它但誕生於名爲“Longview Techno-logies”的小公司,後被sun公司收購成爲jdk1.3的主流虛擬機
  4. 2004年9月30日,JDK 5發佈,工程代號爲Tiger(老虎)。Sun公司從這個版本開始放棄了謙遜 的“JDK 1.x”的命名方式,將產品版本號修改成了“JDK x
  5. 而JDK 5在Java語法易用性上做出了非常大的改進。如:自動裝箱、泛型、動態註解、枚 舉、可變長參數、遍歷循環(foreach循環)等語法特性都是在JDK 5中加入的。在虛擬機和API層面上,這個版本改進了Java的內存模型(Java Memory Model,JMM)、提供了java.util.concurrent併發包 等。另外,JDK 5是官方聲明可以支持Windows 9x操作系統的最後一個JDK版本。
  6. 。JDK 6的改進包括:提供初步的動態語言支持(通過內置Mozilla JavaScript Rhino引擎實現)、提供編譯期註解處理器和微型HTTP服務器API,等等。同時,這個版本對Java虛擬 機內部做了大量改進,包括鎖與同步、垃圾收集、類加載等方面的實現都有相當多的改動。
  7. JDK 7包含的改進有:提供新的G1收 集器(G1在發佈時依然處於Experimental狀態,直至2012年4月的Update 4中才正式商用)、加強對非 Java語言的調用支持(JSR-292,這項特性在到JDK 11還有改動)、可並行的類加載架構等。
  8. JDK 8包含的改進有:對Lambda表達式的支持,這讓Java語言擁有了流暢的函數式表達能力,內置Nashorn JavaScript引擎的支持. ·新的時間,日期API,徹底移除HotSpot的永久代
  9. 有LTS版的JDK能夠獲得爲期三年的支持和更新,普通版的 JDK就只有短短六個月的生命週期。JDK 8和JDK 11會是LTS版,再下一個就到2021年發佈的JDK 17 了
  10. Oracle正式 宣告Java EE成爲歷史名詞。雖然Java SE、Java EE和Java ME三條產品線裏確實只有Java SE稱得上成 功,但Java EE畢竟無比輝煌過,現在其中還持有着JDBC、JMS、Servlet等使用極爲廣泛的基礎組件, 然而Oracle仍選擇把它“掃地出門”,所有權直接贈送給Eclipse基金會,唯一的條件是以後不準再使 用“Java”這個商標[14],所以取而代之的將是Jakarta EE。

虛擬機

這塊內容主要講了hotspot發展史和其他虛擬機的介紹和歷史
最後提到了 Graal vm無語言傾向虛擬機概念,他是在hotspot基礎上的增強,可以運行任何語言
在這裏插入圖片描述

編譯虛擬機

系統環境:ubuntu16.04
jdk9源碼地址:http://hg.openjdk.java.net/jdk9

譯JDK需要指定一個Bootstrap JDK,因爲OpenJDK的各個組成部分有的是用C++編寫的,更多的代碼則是使用Java自身實現的。所以需要去JDK官網下載一份JDK,編譯jdk9要下載jdk8或9,編譯jdk8要下載jdk8或7以此類推

jdk8的gz壓縮包:鏈接:https://pan.baidu.com/s/1HxOwgXXeAx63AhoV7zTs9w 提取碼:nz53

1.獲取源碼,這裏建議編譯jdk9

  apt-get install mercurial
  hg clone http://hg.openjdk.java.net/jdk9/jdk9/

會生產一個jdk9目錄 cd 到jdk9目錄,執行命令獲取剩下的源碼

   chmod +x get_source.sh 
   ./get_source.sh

下載完成後jdk9內容如下:
在這裏插入圖片描述
開始構建

  chmod +x configure
  sudo ./configure --with-boot-jdk=/home/kjctar/Downloads/jdk1.8.0_11/

構建成功後有如下提示:

構建過程中出現任何錯誤都是沒有安裝相應的依賴,根據提示 install上就行了

在這裏插入圖片描述
開始編譯
直接執行make,要編譯大概二十幾分鍾
在這裏插入圖片描述
編譯成功!

cd  build/linux-x86_64-normal-server-release/jdk/bin
./java -version

在這裏插入圖片描述

發佈了136 篇原創文章 · 獲贊 46 · 訪問量 11萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章