\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 的運行時數據
首頁
所有文章
資訊
Web
架構
基礎技術
書籍
教程
Java小組
工具資源
如何查看HotSpot VM的運行時數據
2016/09/27 | 分類: 基礎技術 | 0 條評論 | 標簽: HSDB, JVM
分享到:11
原文出處: 佔小狼
本文將藉助HSDB工具分析HotSpot VM的運行時數據,運行的java環境為jdk1.8。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
class Test {
static String version = "1.0";
String name;
int id;
Test(String name, int id) {
this.name = name;
this.id = id;
}
static void fn() {}
void fn2(){}
}
public class Main {
static Test t1 = new Test("java", 1);
private Test t2 = new Test("java", 2);
public void fn() {
Test t3 = new Test("java", 3);
}
public static void main(String[] args) {
new Main().fn();
}
}
運行上述代碼,會在Java堆中生成3個Test對象,變數t1,t2,t3分別存儲在方法區、實例欄位和局部變數表中,那麼Test對象的內存是如何布局的呢?
在查看運行時數據之前,需要讓程序剛好執行完new Main().fn();並暫停,平時可能習慣了在Eclipse、IntelliJ IDEA、NetBeans等Java IDE里使用Java層調試器,但為了減少對外部工具的依賴,本文將使用Oracle JDK自帶的jdb工具來完成此任務。
jdb使用步驟如下:
1、jdb -XX:+UseSerialGC -Xmx10m命令啟動jdb;
2、stop in Main.fn命令指定在方法入口設置斷點;
3、run Main命令指令主類,啟動java程序;
4、next命令可以向前執行一步;
採用jps命令查看目前調試java程序的PID
採用命令java -cp sa-jdi.jar sun.jvm.hotspot.HSDB啟動HSDB工具,並連接到目標進程上,注意:Windows上Oracle JDK7才可以用HSDB。
連接上之後
默認窗口是Java Threads,顯示當前進程的線程列表,雙擊線程打開一個Oop Inspector窗口,顯示該線程在HotSpot VM的對象。
在菜單里選擇Windows -> Console,打開HSDB里的控制台,用命令查看更多信息。
1、命令universe查看GC堆的大小、地址范圍和使用情況;
1
2
3
4
5
6
7
hsdb> universe
Heap Parameters:
Gen 0: eden [0x00000000ff600000,0x00000000ff6d50a0,0x00000000ff8b0000) space capacity = 2818048, 30.964980014534884 used
from [0x00000000ff8b0000,0x00000000ff8b0000,0x00000000ff900000) space capacity = 327680, 0.0 used
to [0x00000000ff900000,0x00000000ff900000,0x00000000ff950000) space capacity = 327680, 0.0 usedInvocations: 0
Gen 1: old [0x00000000ff950000,0x00000000ff950000,0x0000000100000000) space capacity = 7012352, 0.0 usedInvocations: 0
可以發現HotSpot在1.8的Java堆中,已經去除了Perm gen區,由youyoung gen和old gen組成。
2、命令scanoops查看指定類型的實例對象,接受兩個必選參數和一個可選參數:必選參數是要掃描的地址范圍,一個是起始地址一個是結束地址;可選參數用於指定要掃描什麼類型的實例對象;
hsdb> scanoops 0x00000000ff600000 0x0000000100000000 Test
0x00000000ff6caf08 Test
0x00000000ff6caf40 Test
0x00000000ff6caf58 Test
通過執行結果可以看出,Java堆上的確有3個Test實例對象,對象的開始地址分別為0x00000000ff6caf08、0x00000000ff6caf40和0x00000000ff6caf58。
㈢ java虛擬機參數hotspot什麼意思
只是 Sun 公司的 Java 虛擬機的產品代號。
第一次出現 hotspot 時它確實帶來一種的新的技術實現方式,讓 JVM 性能和安全性提升很多,那是在遙遠的 20 世紀末。
㈣ 什麼是HotSpot VM amp;深入理解Java虛擬機 JVM
什麼是HotSpot VM amp;深入理解Java虛擬機 JVM
HotSpot VM既繼承了Sun之前兩款商用虛擬機的優點(如前面提到的准確式內存管理),也有許多自己新的技術優勢,
如它名稱中的HotSpot指的就是它的熱點代碼探測技術(其實兩個VM基本上是同時期的獨立產品,HotSpot還稍早一些,HotSpot一開始就是准確式GC,
而Exact VM之中也有與HotSpot幾乎一樣的熱點探測。
㈤ Java HotSpot(TM) Client VM (build 24.75-b04, mixed mode)是版本不對嗎怎麼解決啊
可以貼出更多的錯誤,如果第一次安裝不成功,可以檢查一下系統版本
㈥ Java VM: Java HotSpot(TM) Client VM (1.6.0-beta2-b86 mixed mode)如何解決
你「執行的cmd文件中設置的java_home 」 與 「計算機環境變數設置的java_home" 中指定的java版本不一致引起。
㈦ java(tm)是什麼
一種插件,能讓你的電腦或手機運行java程序,電腦的話可以選擇卸載,畢竟電腦上的java程序不多。非智能手機玩游戲和運行其他軟體就靠它了,一般是沒法改變的(有的不能刪,沒有的不能裝)
㈧ java8的虛擬機是hotspot還是jrockit
打開命令行,輸入java -version
顯示如下部分
C:Usersuser>java-version
javaversion"1.8.0_25"
Java(TM)SERuntimeEnvironment(build1.8.0_25-b18)
JavaHotSpot(TM)64-BitServerVM(build25.25-b02,mixedmode)
可在最後一行看到HotSpot ,此證明運行的虛擬機是HotSpot。
㈨ 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版本的品牌商標。
㈩ Java 插件11.40.2.26 使用 JRE 版本 1.8.0_40-b26 Java HotSpot(TM) Client VM
一樣的問題,查了很久沒結果,樓主有結果沒???