java技术体系中包括:Java编程语言、Java Class文件格式、Java API、Java VM、class loader、执行引擎。其中JVM运行时区域包括:
1.方法区:线程共享; 用于存储被JVM加载的class信息、常量、静态变量、方法等;
2.堆:是jvm所管理的内存中占用空间最大的一部分;也是GC管理的主要区域;存储对象;
3.Java栈:线程私有,存储 线程自己的局部变量;
4.PC寄存器:线程私有的内存空间,程序的指令指针;
5.本地方法栈
JVM常用的分析工具:
jps:用来查看运行的所有jvm进程;
jinfo:查看进程的运行环境参数,主要是jvm命令行参数;
jstat:对jvm应用程序的资源和性能进行实时监控;
jstack:查看所有线程的运行状态;
jmap:查看jvm占用物理内存的状态;
jps:Java virutal machine Process Status tool,
-q:静默模式;
-v:显示传递给jvm的命令行参数;
-m:输出传入main方法的参数;
-l:输出main类或jar完全限定名称;
-V:显示通过flag文件传递给jvm