JAVA code加载执行顺序:
*.java --->*.class->类装载子系统、字节码执行引擎
JVM虚拟机组成:
堆、方法区(元空间)、栈(线程)、本地方法栈、程序计数器
栈帧组成:
栈帧:局部变理表、操作数栈、动态链接、方法出口
对象组成:
对象头(Mark Word、KlassPointer类型指针、数组长度)、实例数据、对齐填充(8个字节)
分代收集:
堆分为新生代(复制算法)和老年代(标记-清除、标记-整理)
CMS:初始标记、并发标记、重新标记、并发清理、并发重置
G1:初始标记、并发标记、最终标记、筛选回收
Jstack:线程运行情况
Jstat:查看垃圾回收情况
- 程序通过JStack
- 数据库通过
1、查询是否锁表
SHOW OPEN TABLES WHERE in_use>0;
2、查询进程
SHOW PROCESSLIST;
3、查询正在锁的事务
SELECT * FROM information_schema.`INNODB_LOCKS`;
4、查询等待锁的事务
SELECT * FROM information_schema.`INNODB_LOCK_WAITS`;