JVM学习笔记8-常用指令,助记符,JVM参数

本文深入解析JVM参数设置,包括内存管理、类加载与卸载,以及常见JVM指令如getstatic、invokestatic等的功能与应用。同时,介绍了多种JVM监控与故障排查工具,如jvisualvm、jconsole等,帮助开发者更好地理解与优化Java应用程序。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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进程可以执行的操作cmd
    • jcmd 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—对堆转储进行分析
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值