栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

如何检查Java代码的汇编输出?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

如何检查Java代码的汇编输出?

Java使用字节码。最相似的是

javap
,每个链接的Oracle文档,
javap的 命令拆卸一个或多个类文件。其输出取决于所使用的选项。

package com.stackoverflow;class Main {    public static void main(String[] args) {        System.out.println("Hello, World!");    }}

如果我将其编译为

Main.class
然后运行,
javap -v Main.class
我会得到

Classfile /home/efrisch/workspace/StackOverflow/bin/com/stackoverflow/Main.class  Last modified Jun 18, 2015; size 553 bytes  MD5 checksum de4f987e783aa0f145e7245269504028  Compiled from "Main.java"class com.stackoverflow.Main  minor version: 0  major version: 52  flags: ACC_SUPERConstant pool:   #1 = Class   #2  // com/stackoverflow/Main   #2 = Utf8    com/stackoverflow/Main   #3 = Class   #4  // java/lang/Object   #4 = Utf8    java/lang/Object   #5 = Utf8    <init>   #6 = Utf8    ()V   #7 = Utf8    Code   #8 = Methodref          #3.#9          // java/lang/Object."<init>":()V   #9 = NameAndType        #5:#6          // "<init>":()V  #10 = Utf8    LineNumberTable  #11 = Utf8    LocalVariableTable  #12 = Utf8    this  #13 = Utf8    Lcom/stackoverflow/Main;  #14 = Utf8    main  #15 = Utf8    ([Ljava/lang/String;)V  #16 = Fieldref#17.#19        // java/lang/System.out:Ljava/io/PrintStream;  #17 = Class   #18 // java/lang/System  #18 = Utf8    java/lang/System  #19 = NameAndType        #20:#21        // out:Ljava/io/PrintStream;  #20 = Utf8    out  #21 = Utf8    Ljava/io/PrintStream;  #22 = String  #23 // Hello, World!  #23 = Utf8    Hello, World!  #24 = Methodref          #25.#27        // java/io/PrintStream.println:(Ljava/lang/String;)V  #25 = Class   #26 // java/io/PrintStream  #26 = Utf8    java/io/PrintStream  #27 = NameAndType        #28:#29        // println:(Ljava/lang/String;)V  #28 = Utf8    println  #29 = Utf8    (Ljava/lang/String;)V  #30 = Utf8    args  #31 = Utf8    [Ljava/lang/String;  #32 = Utf8    SourceFile  #33 = Utf8    Main.java{  com.stackoverflow.Main();    descriptor: ()V    flags:    Code:      stack=1, locals=1, args_size=1         0: aload_0         1: invokespecial #8       // Method java/lang/Object."<init>":()V         4: return      LineNumberTable:        line 3: 0      LocalVariableTable:        Start  Length  Slot  Name   Signature 0       5     0  this   Lcom/stackoverflow/Main;  public static void main(java.lang.String[]);    descriptor: ([Ljava/lang/String;)V    flags: ACC_PUBLIC, ACC_STATIC    Code:      stack=2, locals=1, args_size=1         0: getstatic     #16      // Field java/lang/System.out:Ljava/io/PrintStream;         3: ldc#22      // String Hello, World!         5: invokevirtual #24      // Method java/io/PrintStream.println:(Ljava/lang/String;)V         8: return      LineNumberTable:        line 5: 0        line 6: 8      LocalVariableTable:        Start  Length  Slot  Name   Signature 0       9     0  args   [Ljava/lang/String;}SourceFile: "Main.java"


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/438805.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号