最近有點忙,上班煩了,所以抽時間去論壇看了看 ,看到一個用來顯示對象大小的工具JOL (Java Object Layout),所以試了一下 。使用方法我找到的有兩個,一個是下載core包,引入到類中使用,還有一種是下載cli-full包,使用命令行操作,我選擇命令行操作.....
- 下載工具 jol-cli-0.8-full.jar
注意一定要下載jol-cli-版本號-full.jar
的完整版本才能使用。 - 打開命令行,進入到
jol-cli-0.8-full.jar
所在目錄
- 查看jdk中類
// 查看HashMap
java -jar jol-cli-0.8-full.jar internals java.util.HashMap
image.png
- 查看自己寫的類,把類編譯后和jol 放在一起
// 注意這里我沒有加package , 后面執行命令時就沒有指定包路徑
import java.util.HashMap;
import java.util.Map;
public class ObjectSize {
public volatile long value = 0L;
public long p1, p2, p3, p4, p5, p6;
public Map map = new HashMap(50);
public static void main(String[] args) {
}
}
image.png
// 查看自己寫的類
java -jar jol-cli-0.8-full.jar internals java -jar jol-cli-0.8-full.jar internals -cp . ObjectSize
image.png
通過這個工具可以看到對象頭,屬性所占的大小