JVM参数
-XX:+<option>
-表示开启option选项-XX:+TraceClassLoading
—输出Class加载日志-XX:+TraceClassUnloading
–输出Class卸载日志
-XX:-<option>
表示关闭option选项-XX:+HeadDumpOnOutOfMemoryError
—输出内存溢出日志
助记符
getstatic
—静态变量取值putstatic
—静态变量赋值invokestatic
—调用静态方法ldc
—表示将int
,float
或是String
类型的常量从常量池中推至栈顶bipush
—表示将单字节(-128--127
)的常量值推送至栈顶sipush
—表示将一个短整型常量值(-32768--32767
) 推送至栈顶iconst_1
—表示将int类型1推送至栈顶(iconst_m1--inconst_5
)anewarray
—表示创建一个引用类型的(如类,接口,数组)数组,并将其引用值压入栈顶newarray
—表示创建一个指定的原始类型(如int
,float
,char
)的数组,并将其引用值压入栈顶invokeinterface
—调用接口中的方法,实际上是在运行期决定的,决定到底调用实现该接口的那个对象的特定方法invokespecial
—调用自己的私有方法,构造方法(<init>
以及父类的方法)invokevirtual
—调用虚方法,存在运行期动态查找的过程invokedynamic
—动态调用方法
常用指令
javap -verbose 文件名
—用于分解class文件javap 文件名
—用于反编译class文件javap -c 文件名
—用于反编译class文件,生成助记符相关内容jar cvf jar包名 文件名
—用于将文件打入到jar包中java -version
—查看JDK版本号jvisualvm
–监控JVM内存,堆等使用情况jconsole
—监控JVM内存,堆等使用情况jmap
—于生成堆转储快照jstat
—对Heap size和垃圾回收状况的监控jps
—快速查找java进程jcmd
—查看java进程jcmd pid VM.flags
—查看对应pid进程JVM的启动参数jcmd pid help
—列出当前Java进程可以执行的操作cmdjcmd pid help cmd
列出当前Java进程可以执行的操作cmd对应的选项jcmd pid PerfCounter.print
—查看JVM性能相关的参数jcmd pid VM.uptime
—查看JVM的启动时间jcmd pid GC.class_histogram
—查看系统中类的统计信息jcmd pid Thread.print
—输出当前线程的堆栈信息jcmd pid GC.heap_dump 文件名称
—导出heap dump文件,导出的文件可以通过jvisualvm查看jcmd pid VM.system_properties
—查看JVM的属性信息jcmd 98412 VM.version
----查目标JVM的版本信息jcmd 98412 VM.command_line
—查看JVM启动的命令行信息
jstack
—可以查看查看或是导出Java应用程序中线程的堆栈信息jmc
—一体化图形界面工具jhat
—对堆转储进行分析