java 虚拟机深入理解
1、出现 RuntimeException 那么一定是你的问题,这是一个很有道理的规则。 2、
jps JVM Process Status Tool ,显示制定系统内所有的HotSpot虚拟机进程,列出正在运行的虚拟机进程,显示起主类的名称,以及进程的本地虚拟机的唯一id(LVMID,Local Virtual Machine Identifier)。 主要参数 -q 只输出LVMID -m 输出主类的参数 -l 输出主类的全名 -v 输出虚拟机进程启动时jvm参数 jstat jvm statistics Monitoring tool 用于收集hotspot虚拟机各方面的运行数据,用于监视虚拟机中各种运行状态的命令行工具,可以显示本地或 远程 虚拟机进程中的类装在,内存,垃圾收集,jit编译等运行数据。是运行期定位虚拟机性能问题的首选工具。 jstat 命令格式 jstat [option vmid [interval [count]]] jstat -gc 2764 250 20 每250毫秒查询一次进程2764垃圾收集的情况,一共查询20次。 option 代表希望查询的虚拟机信息 主要分3类,类装载,垃圾收集,运行期编译状况,具体参数及作用如下 -class 监视类装载,卸载数量,总空间以及类装载所消耗的时间 -gc 监视java 堆状况,包括Eden区,2个survivor区,老年代,永久代等容量,已用空间,gc时间合集等信息。 -gccapacity 同上,输出主药关注java堆各个区使用的最大喝最小空间 -gcutil 基本同上,输出主药关注已使用空间占总空间的百分比 -compiler 输出jit编译起编译的方法,耗时等信息 jinfo configuration info for java 显示虚拟机配置信息 jmap memory map for java 生成虚拟机的内存转储快照 heapdump 文件 jhat java heap dump browser 分析heapdump文件, jstack stack trace for java 显示虚拟机的线程快照 用于生成虚拟机当前时刻的线程快照,线程快照就是当前虚拟机内每一条正在执行的方法堆栈的集合,生成线程快照的主要目的是定位线程出现长时间停顿的原因。 格式:jstack [option] vmid option 选项的合法性与具体含义 -F 当正常输出的请求不被响应时,强制输出线程堆栈 -l 除堆栈外 显示关于锁的附加信息 -m 如果调用到本地方法的话,可以显示c c++de堆栈java 内存模型
java 内存模型主要目标时定义程序中各个变量的访问规则,即在虚拟机中将变量存储到内存和从内存中取出变量这样的底层细节。这里的变量包括,实例字段,静态字段和构成数组对象的的元素 但是不包括局部变量和方法参数,因为后者是线程私有,不会被共享。