① java虛擬機參數hotspot什麼意思
只是 Sun 公司的 Java 虛擬機的產品代號。
第一次出現 hotspot 時它確實帶來一種的新的技術實現方式,讓 JVM 性能和安全性提升很多,那是在遙遠的 20 世紀末。
② Zing jvm跟oracle jvm具體有哪些區別,為什麼收費那麼高
Zing jvm是Azul傳統風格的產品,他在hotsopt vm上做了不少的定製以及優化工作。
主打低延遲、高實時伺服器端JDK市場。它以Sun的HotSpot VM為基礎,改進了許多會影響延遲的細節。最大的三個賣點是:(1) 低延遲、「無暫停」(pauseless)的C4 GC,GC帶來的暫停可以控制在10ms以下的級別,支持的Java堆大小可以到1TB;(2) 啟動後快速預熱功能,「ReadyNow!」;(3) 可管理性:零開銷、可在生產環境全時開啟的、整合在JVM內的監控工具Zing Vision。Zing(外加Zing System Tools)是一個純軟體解決方案,可以運行在Linux/x86-64平台上。
③ OpenJDK和OracleJDK的JVM性能有多大差距
首先要先明確OpenJDK和Sun/OracleJDK之間,以及OpenJDK 6、OpenJDK 7、OpenJDK 7u和OpenJDK 8等項目之間是什麼關系,這有助於確定接下來編譯要使用的JDK版本和源碼分支。
從前面介紹的Java發展史中我們了解到OpenJDK是Sun在2006年末把Java開源而形成的項目,這里的「開源」是通常意義上的源碼開放形式,即源碼是可被復用的,例如IcedTea、UltraViolet都是從OpenJDK源碼衍生出的發行版。但如果僅從「開源」字面意義(開放可閱讀的源碼)上看,其實Sun自JDK 1.5之後就開始以Java Research License(JRL)的形式公布過Java源碼,主要用於研究人員閱讀(JRL許可證的開放源碼至JDK 1.6 Update 23為止)。把這些JRL許可證形式的Sun/OracleJDK源碼和對應版本的OpenJDK源碼進行比較,發現除了文件頭的版權注釋之外,其餘代碼基本上都是相同的,只有字體渲染部分存在一點差異,Oracle JDK採用了商業實現,而OpenJDK使用的是開源的FreeType。當然,「相同」是建立在兩者共有的組件基礎上的,Oracle JDK中還會存在一些Open JDK沒有的、商用閉源的功能,例如從JRockit移植改造而來的Java Flight Recorder。預計以後JRockit的MissionControl移植到HotSpot之後,也會以Oracle JDK專有、閉源的形式提供。
Oracle的項目發布經理Joe Darcy在OSCON 2011上對兩者關系的介紹也證實了OpenJDK 7和Oracle JDK 7在程序上是非常接近的,兩者共用了大量相同的代碼(如下圖,注意圖中提示了兩者共同代碼的佔比要遠高於圖形上看到的比例),所以我們編譯的OpenJDK,基本上可以認為性能、功能和執行邏輯上都和官方的Oracle JDK是一致的。

④ JVM和Java HotSpot如何區分版本
你的虛擬機(JVM)版本是23.5-b02
java -version出來信息包含兩部分:Java軟體包發行版本信息和內核(JVM)版本信息。
java的發行包包含三種類型Java ME,Java SE,Java EE,發行包就相當於對外銷售的產品包,不同發行包會刪減部分特性,因此版本信息首先顯示發行包類型和版本。
JVM是Java平台的基礎和核心,一般在一個java大版本中JVM版本變化都是比較小的。HotSpot是一種JVM實現技術,相對以往的方式在性能和擴展能力上得到了很大的提升,因此它不是一個獨立產品,可以理解Sun(Oracle)實現的JVM版本的品牌商標。
⑤ 關於jdk裡面的jvm的源碼位置問題
jvm就是執行.class的機制。源碼估計想多了。每個平台jvm都不一樣,但執行.class運行結果一樣(大部分是,小部分還要改.java適配)
⑥ JVM具體在哪個文件夾下的
\jdk1.6.0 -- JDK的根目錄,包含一些軟體版權,聲明,和自述文件,
同時包含歸檔了的Java平台源代碼包src.zip
\jdk1.6.0\bin -- JDK包含的一些開發工具執行文件
\jdk1.6.0\jre\bin\client
包含 Java HotSpotTM Client Virtual Machine 要用的 DLL 文件
\jdk1.6.0\jre\bin\server
包含 Java HotSpotTM Server Virtual Machine 要用的 DLL 文件
\jdk1.6.0\lib -- Java開發工具要用的一些庫文件,有包含了支持JDK工具的非核心類庫tool.jar,
dt.jar 歸檔的 BeanInfo 文件
用於告訴IDE這樣顯示java組件怎樣讓開發者在自己的應用程序中用戶化它們
\jdk1.6.0\jre -- JDK使用的Java運行環境(JRE)的根目錄,這個運行環境實現了Java平台
\jdk1.6.0\jre\bin -- Java平台所要用的工具和庫的可執行文件
這些可執行文件和 /jdk1.6.0/bin相同的。
//Java 啟動器工具充當了應用程序啟動器(覆蓋了1.1版本的JDK推出的舊版本JRE工具)
這個路徑不需要設置 PATH 環境變數
\jdk1.6.0\jre\bin\client -- 包含Java Hotspot(Java性能引擎) 客戶虛擬機要用的DLL文件
\jdk1.6.0\jre\bin\server -- 包含Java Hotspot(Java性能引擎) 伺服器虛擬機要用的DLL文件
\jdk1.6.0\jre\lib -- JRE要用的代碼庫,屬性設置,資源文件。
例如rt.jar Java 引導類庫(java 核心APIRunTime類)
charsets.jar 字元轉換類庫
\jdk1.6.0\jre\lib\ext -- 默認的Java平台擴展安裝環境
包含localedata.jar 是 ava.text 和 java.util包要用到的地區數據
\jdk1.6.0\jre\lib\security -- 包含安全管理文件,有安全規則(java.policy)
和安全屬性文件(java.security)
\jdk1.6.0\jre\lib\applet -- Java applets 要的Jar包,可以放到lib/applet/目錄,
這樣可以節省 applet 類裝載器從本地文件系統裝載 大的applets 所需的applet類時間
減少從網上下載具有相同的保護的時間。
\jdk1.6.0\jre\lib\fonts 包含平台所需的TrueType字體文件
⑦ 什麼是HotSpot VM amp;深入理解Java虛擬機 JVM
什麼是HotSpot VM amp;深入理解Java虛擬機 JVM
HotSpot VM既繼承了Sun之前兩款商用虛擬機的優點(如前面提到的准確式內存管理),也有許多自己新的技術優勢,
如它名稱中的HotSpot指的就是它的熱點代碼探測技術(其實兩個VM基本上是同時期的獨立產品,HotSpot還稍早一些,HotSpot一開始就是准確式GC,
而Exact VM之中也有與HotSpot幾乎一樣的熱點探測。
⑧ HotSpot JVM支持哪些垃圾收集器
按線程
單線程:Serial、SerialOld
多線程:ParNew、Parallel Scavenge、Parallel Old、CMS、G1
按適用代
新生代: Serial、ParNew、Parallel Scavenge
老年代: SerialOld、CMS 、Parallel Old
G1可以在新生代和老年代使用
常見的組合
ParNew+CMS
Parallel Scavenge+Parallel Old
⑨ java的jvm的作用是提供一個可以讓class文件運行的環境還是把class文件轉換常機器碼文件呢
jvm的其中之一作用便是你說的執行class文件。而jvm中,執行class文件有兩種方式,一種是傳統的解釋型,即一邊翻譯一邊執行,翻譯一句話成本地指令之後馬上執行,然後回頭再翻譯下一句話,再執行下一句話,這是傳統方式,從這里就可以知道為什麼大家都叫java為解釋型的語言了吧。第二種方式就是你說的,jvm中利用jit進行對class文件二次編譯,這次編譯就會直接編譯成系統本地指令,這樣再去運行的時候就快了吧,但是一開始的jit是比較弱智的,他會將你所有class代碼都統統在運行時編譯成本地指令,大家知道編譯是非常耗時的啊,這種運行時編譯和c++的靜態編譯不同,c++是在系統運行之前,就已經將所有的代碼都編譯成本地代碼了,所有在運行時候是沒有編譯損耗的,運行時編譯也叫做即時編譯,這兩種編譯方式有好有壞,靜態編譯運行速度快,但是無法做到跨平台,運行時編譯可跨平台,但是運行速度慢,所以到後來sun推出hotspot,出現了動態編譯,即不是將所有代碼都編譯成本地指令了,而是將你系統常常運行的那塊代碼編譯成指令而已。所以最後總結下,jvm的excution engine對待class的處理有兩種方式,一種是解釋執行,一種是動態即時編譯執行。
⑩ JVM版本,用java -version看,見下圖,這是顯示我有兩個JVM嗎
直答:
一個JVM, 版本是1.8
詳細如下:
顯示的信息依次是
java版本(也就是通常我們說的jvm版本)
java運行環境版本
JIT編譯環境
(JIT說明)
Java HotSpot是一個混合模式的虛擬機,也就是說它既可以解釋位元組碼,又可以將代碼編譯為本地機器碼以更快的執行。通過配置-XX:+PrintCompilation參數,你可以在log文件中看到方法被JIT編譯時的信息。JIT編譯發生在運行時 —— 方法經過多次運行之後。到方法需要使用到的時候,HotSpot VM會決定如何優化這些代碼。
補充,
JIT就是提升編譯性能的. 初學時候不必在意,
等向高級發展的時候, 你可以看JVM內幕類的書.
關於JIT可以推薦書《深入理解Java虛擬機》