首页 > 编程语言 >[JVM] 应用诊断工具之javac命令

[JVM] 应用诊断工具之javac命令

时间:2024-09-24 21:04:21浏览次数:6  
标签:lang Ljava java String javac public 诊断 JVM Method

0 引言

1 JDK命令: javac

反编译指定类: javac -c {className}

参考命令 : C:\Users\xxxxxx> javap -c java.lang.Object > "Object.txt"

C:\Users\xxxxxx> javap -c java.lang.Object
Compiled from "Object.java"
public class java.lang.Object {
  public java.lang.Object();
    Code:
       0: return

  public final native java.lang.Class<?> getClass();

  public native int hashCode();

  public boolean equals(java.lang.Object);
    Code:
       0: aload_0
       1: aload_1
       2: if_acmpne     9
       5: iconst_1
       6: goto          10
       9: iconst_0
      10: ireturn

  protected native java.lang.Object clone() throws java.lang.CloneNotSupportedException;

  public java.lang.String toString();
    Code:
       0: new           #52                 // class java/lang/StringBuilder
       3: dup
       4: invokespecial #74                 // Method java/lang/StringBuilder."<init>":()V
       7: aload_0
       8: invokevirtual #73                 // Method getClass:()Ljava/lang/Class;
      11: invokevirtual #67                 // Method java/lang/Class.getName:()Ljava/lang/String;
      14: invokevirtual #76                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
      17: ldc           #2                  // String @
      19: invokevirtual #76                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
      22: aload_0
      23: invokevirtual #70                 // Method hashCode:()I
      26: invokestatic  #69                 // Method java/lang/Integer.toHexString:(I)Ljava/lang/String;
      29: invokevirtual #76                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
      32: invokevirtual #75                 // Method java/lang/StringBuilder.toString:()Ljava/lang/String;
      35: areturn

  public final native void notify();

  public final native void notifyAll();

  public final native void wait(long) throws java.lang.InterruptedException;

  public final void wait(long, int) throws java.lang.InterruptedException;
    Code:
       0: lload_1
       1: lconst_0
       2: lcmp
       3: ifge          16
       6: new           #48                 // class java/lang/IllegalArgumentException
       9: dup
      10: ldc           #4                  // String timeout value is negative
      12: invokespecial #68                 // Method java/lang/IllegalArgumentException."<init>":(Ljava/lang/String;)V
      15: athrow
      16: iload_3
      17: iflt          26
      20: iload_3
      21: ldc           #1                  // int 999999
      23: if_icmple     36
      26: new           #48                 // class java/lang/IllegalArgumentException
      29: dup
      30: ldc           #3                  // String nanosecond timeout value out of range
      32: invokespecial #68                 // Method java/lang/IllegalArgumentException."<init>":(Ljava/lang/String;)V
      35: athrow
      36: iload_3
      37: ifle          44
      40: lload_1
      41: lconst_1
      42: ladd
      43: lstore_1
      44: aload_0
      45: lload_1
      46: invokevirtual #72                 // Method wait:(J)V
      49: return

  public final void wait() throws java.lang.InterruptedException;
    Code:
       0: aload_0
       1: lconst_0
       2: invokevirtual #72                 // Method wait:(J)V
       5: return

  protected void finalize() throws java.lang.Throwable;
    Code:
       0: return

  static {};
    Code:
       0: invokestatic  #71                 // Method registerNatives:()V
       3: return
}

X 参考文献

javap / jad

标签:lang,Ljava,java,String,javac,public,诊断,JVM,Method
From: https://www.cnblogs.com/johnnyzen/p/18429993

相关文章

  • JVM虚拟机总结
        读了周志明老师的《深入理解Java虚拟机:JVM高级特性与最佳实践》第三版,总结一下里面的知识点。一方面是知识储备更多一些,另外是也为接下来的面试准备一下。    全书分为13个章节,共5部分内容。我着重是看了jvm的内管管理、垃圾收集与内存分配策略、虚拟机故障......
  • JVM内存区域详解及DirectByteBuffer内存
    Java虚拟机(JVM)是Java程序运行的基础,它为Java程序提供了一个与平台无关的执行环境。JVM内存区域的划分对于理解Java程序的运行机制至关重要。本文将详细介绍JVM的内存区域,并探讨对外内存中的DirectByteBuffer。方法区(MethodArea)方法区是JVM中所有线程共享的内存区域。它主......
  • 诸神黄昏!多模型齐亮相!GAF-PCNN-GRU、GASF-CNN-GRU、GADF-CNN-GRU的多特征分类预测/故
    诸神黄昏!多模型齐亮相!GAF-PCNN-GRU、GASF-CNN-GRU、GADF-CNN-GRU的多特征分类预测/故障诊断目录诸神黄昏!多模型齐亮相!GAF-PCNN-GRU、GASF-CNN-GRU、GADF-CNN-GRU的多特征分类预测/故障诊断分类效果格拉姆矩阵图GAF-PCNN-GRUGASF-CNN-GRUGADF-CNN-GRU基本介绍程序设计参考资料分......
  • 【Java】JVM基本组成
    一、JDK、JRE、JVM        JDK:全称“JavaDevelopmentKit”Java开发工具包,提供javac编译器、jheap、jconsole等监控工具;        JRE:全称“JavaRuntimeEnvironment” Java运行环境,提供classLibrary核心类库+JVM;             ......
  • 在 PowerShell 中,有多个命令与 IPv6 相关。以下是一些常用的命令和 cmdlet: 管理和配置
    在PowerShell中,有多个命令与IPv6相关。以下是一些常用的命令和cmdlet:获取网络适配器的IPv6地址:powershellCopyCodeGet-NetIPAddress-AddressFamilyIPv6查看所有网络适配器信息:powershellCopyCodeGet-NetAdapter查看特定网络适配器的IPv6地址:powershell......
  • Arthas sysprop(查看和修改JVM的系统属性)
    文章目录二、命令列表2.1jvm相关命令2.1.4sysprop(查看和修改JVM的系统属性)举例1:sysprop查看所有系统属性举例2:syspropjava.version查看单个属性,支持通过tab补全二、命令列表2.1jvm相关命令2.1.4sysprop(查看和修改JVM的系统属性)参数说明:命令说明sysprop查看所有系统属性sys......
  • Arthas jvm(查看当前JVM的信息)
    文章目录二、命令列表2.1jvm相关命令2.1.3jvm(查看当前JVM的信息)二、命令列表2.1jvm相关命令2.1.3jvm(查看当前JVM的信息)基础语法:jvm[arthas@18139]$jvmRUNTIME......
  • Arthas thread(查看当前JVM的线程堆栈信息)
    文章目录二、命令列表2.1jvm相关命令2.1.2thread(查看当前JVM的线程堆栈信息)举例1:展示[数字]线程的运行堆栈,命令:thread线程ID举例2:找出当前阻塞其他线程的线程二、命令列表2.1jvm相关命令2.1.2thread(查看当前JVM的线程堆栈信息)使用场景:在Arthas中,thread命令用于查看和分......
  • jvmxmx和xms参数分析(设定优化校准)
    本文引用自:https://cloud.tencent.com/developer/article/2064210,转载请注明出处 XmnXmsXmxXss有什么区别Xmn、Xms、Xmx、Xss都是JVM对内存的配置参数,我们可以根据不同需要区修改这些参数,以达到运行程序的最好效果。-Xms堆内存的初始大小,默认为物理内存的1/64-Xmx堆内存的......
  • 常用的JVM调优参数和应用场景
    常见的JVM调优参数和应用场景         概要   JVM调优可以显著提升Java应用程序的性能。以下是一些常用的JVM参数和应用场景的介绍。  一、堆内存设置  -Xms<size>和-Xmx<size>:设置初始堆大小和最大堆大小。  1. -Xms<size>  初始化时的......