Skip to content

Commit 54f7847

Browse files
committed
update JVM
1 parent 5bff759 commit 54f7847

File tree

1 file changed

+5
-1
lines changed

1 file changed

+5
-1
lines changed

JVM/JVM.md

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -375,7 +375,11 @@ Full GC: 收集整个堆,包括 新生代,老年代,永久代(在 JDK 1.8
375375
jmap不仅能生成dump文件,还阔以查询finalize执行队列、Java堆和永久代的详细信息,如当前使用率、当前使用的是哪种收集器等。
376376
* jhat:jhat(JVM Heap Analysis Tool)命令是与jmap搭配使用,用来分析jmap生成的dump,jhat内置了一个微型的HTTP/HTML服务器,生成dump的分析结果后,可以在浏览器中查看。在此要注意,一般不会直接在服务器上进行分析,因为jhat是一个耗时并且耗费硬件资源的过程,一般把服务器生成的dump文件复制到本地或其他机器上进行分析。
377377
* jstack:jstack用于生成java虚拟机当前时刻的线程快照。jstack来查看各个线程的调用堆栈,就可以知道没有响应的线程到底在后台做什么事情,或者等待什么资源。 如果java程序崩溃生成core文件,jstack工具可以用来获得core文件的java stack和native stack的信息,从而可以轻松地知道java程序是如何崩溃和在程序何处发生问题。
378-
378+
## Java对象创建过程
379+
1. JVM遇到一条新建对象的指令时首先去检查这个指令的参数是否能在常量池中定义到一个类的符号引用。然后加载这个类(类加载过程在后边讲)
380+
2. 为对象分配内存。一种办法“指针碰撞”、一种办法“空闲列表”,最终常用的办法“本地线程缓冲分配(TLAB)”
381+
3. 将除对象头外的对象内存空间初始化为0
382+
4. 对对象头进行必要设置
379383
## 巨人的肩膀
380384

381385
https://jishuin.proginn.com/p/763bfbd35094

0 commit comments

Comments
 (0)