查看字节码

2023-11-19

1.安装插件
ASM Bytecode outline 与hexview
在这里插入图片描述
2.查看字节码
源码

package com.asm;

public class HelloWorld{
    public static void main(){
        System.out.println("HelloWorld!-----0");
    }
}

在这里插入图片描述
当前面板下有三项内容:
• Bytecode 表示对应的class字节码文件
• ASMified 表示利用ASM框架生成字节码对应的代码
• Groovified 对应的是class字节码指令

  1. Hexview查看
    仅仅是以16进制显示.class文件
    这个是真正的字节码,而asm插件中的字节码,是以人类可读的方式处理过。类似javap
    在*.java类里,右键–>HexView
    在这里插入图片描述
    通过javap查看字节码, 编译后的类不包含package和import信息
lichunmeideMBP:asm lichunmei$ javap -verbose HelloWorld.class
Classfile /Users/lichunmei/Documents/workspace/study/test/target/classes/com/asm/HelloWorld.class
  Last modified Jul 20, 2021; size 483 bytes
  MD5 checksum 1b366777e21b97772d6e0a892cc8bc05
  Compiled from "HelloWorld.java"
public class com.asm.HelloWorld
  minor version: 0
  major version: 52
  flags: ACC_PUBLIC, ACC_SUPER
Constant pool:
   #1 = Methodref          #6.#17         // java/lang/Object."<init>":()V
   #2 = Fieldref           #18.#19        // java/lang/System.out:Ljava/io/PrintStream;
   #3 = String             #20            // HelloWorld!-----0
   #4 = Methodref          #21.#22        // java/io/PrintStream.println:(Ljava/lang/String;)V
   #5 = Class              #23            // com/asm/HelloWorld
   #6 = Class              #24            // java/lang/Object
   #7 = Utf8               <init>
   #8 = Utf8               ()V
   #9 = Utf8               Code
  #10 = Utf8               LineNumberTable
  #11 = Utf8               LocalVariableTable
  #12 = Utf8               this
  #13 = Utf8               Lcom/asm/HelloWorld;
  #14 = Utf8               main
  #15 = Utf8               SourceFile
  #16 = Utf8               HelloWorld.java
  #17 = NameAndType        #7:#8          // "<init>":()V
  #18 = Class              #25            // java/lang/System
  #19 = NameAndType        #26:#27        // out:Ljava/io/PrintStream;
  #20 = Utf8               HelloWorld!-----0
  #21 = Class              #28            // java/io/PrintStream
  #22 = NameAndType        #29:#30        // println:(Ljava/lang/String;)V
  #23 = Utf8               com/asm/HelloWorld
  #24 = Utf8               java/lang/Object
  #25 = Utf8               java/lang/System
  #26 = Utf8               out
  #27 = Utf8               Ljava/io/PrintStream;
  #28 = Utf8               java/io/PrintStream
  #29 = Utf8               println
  #30 = Utf8               (Ljava/lang/String;)V
{
  public com.asm.HelloWorld();
    descriptor: ()V
    flags: ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
         0: aload_0
         1: invokespecial #1                  // Method java/lang/Object."<init>":()V
         4: return
      LineNumberTable:
        line 3: 0
      LocalVariableTable:
        Start  Length  Slot  Name   Signature
            0       5     0  this   Lcom/asm/HelloWorld;

  public static void main();
    descriptor: ()V
    flags: ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=0, args_size=0
         0: getstatic     #2                  // Field java/lang/System.out:Ljava/io/PrintStream;
         3: ldc           #3                  // String HelloWorld!-----0
         5: invokevirtual #4                  // Method java/io/PrintStream.println:(Ljava/lang/String;)V
         8: return
      LineNumberTable:
        line 5: 0
        line 6: 8
}
SourceFile: "HelloWorld.java"
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

查看字节码 的相关文章

  • 模拟函数指针

    以下类包含一个应使用回调技术计算积分的方法 package integrals import java lang public class Integrals public static double f1 double x return
  • Java NIO Pipe 与 BlockingQueue

    我刚刚发现它只有一个 NIO 工具 即 Java NIO Pipe 它是为在线程之间传递数据而设计的 与通过队列 例如 ArrayBlockingQueue 传递的更传统的消息相比 使用此机制是否有任何优势 通常 将数据传递给另一个线程进行
  • 文件写入器覆盖文件而不是附加到末尾时出现问题

    好的 我在将多行写入文本文件时遇到一些问题 程序运行 但不会每次都使用新行 当我希望它运行 4 次时 文本文件应如下所示 a b c d 相反 它看起来像 d 谁知道如何解决这个问题 所有导入均正确导入 来源 已稍加编辑 假设一切都已正确定
  • 在 Java 中,三个 true 输入的 XOR 返回 true。为什么?

    下面的代码 System out println 1 0 0 true false false System out println 1 0 1 true false true System out println 1 1 0 true t
  • JaxB2Marshaller 未将 XML 绑定到 Kotlin 数据类

    我正在编写一个批处理作业来解析 XML 提取字段并将它们保存在数据库中 解析 XML 时 它会选取 2 个根元素 但将所有字段保留为空 因此在我的数据库中 我有 2 条记录将为空字段 似乎无法弄清楚为什么它无法读取元素 TIA Bean f
  • 如何通过双击图标来执行JAVA程序?

    我写了一个java程序 现在我想在没有 IDE Eclipse 等的情况下打开我的控制台 java 应用程序 只需双击桌面上的可执行版本即可 我已将 java 项目导出为 Runnable JAR 文件 但无法打开 当我尝试使用cmd打开应
  • Jersey 客户端异步 POST 请求不等待响应

    我创建了一个简单的 Jersey 客户端 它能够成功地使用有效负载执行 POST 请求 但现在它正在等待来自 http 端点的响应 public void callEndpoint String endpoint String payloa
  • 我在 Android Studio 中使用哪个版本的 JDK 有关系吗?

    I know I can choose the SDK location in Android Studio s Project Structure 我有两个问题 当我们已经使用Android SDK时 为什么还需要JDK 毕竟我们不是为
  • 如何将多个值存储到一个键(java)

    我搜索一个可以存储多个键值对的数据结构 数据基本上是这样的 1 value 1 2 value 2 于是我想到了使用HashMap 遗憾的是 这对我不起作用 因为一个键可能会出现多个值 在上面的例子中 1 value 2 可能是另一个条目
  • Java SSO 与 Wildfly 8、Java 1.8.0_45 和 Active Directory

    我对这个主题进行了很多搜索 但找不到解决方案 要求的简短描述 Wildfly 8 2 下 Web 应用程序上的 SSO 在 Active Directory 中验证 Windows 用户的身份 当 SSO 失败时回退到登录表单 在 Wild
  • 调用本机方法时返回 java.lang.UnsatisfiedLinkError

    我正在尝试为第三方 DLL 制作 Java 包装器 我创建了自己的 DLL 充当 JNI 和第三方 DLL 之间的中间人 在java中我加载这个DLL很好但是错误java lang UnsatisfiedLinkError sixense
  • 为什么对象可以改变类变量的值?

    由甲骨文提供定义 http docs oracle com javase tutorial java javaOO classvars html 有时 您希望拥有所有对象共有的变量 这是通过 static 修饰符来完成的 声明中带有 sta
  • 错误:找不到符号 ArrayList

    我正在尝试创建某种列表来存储数组 表 中的值 我在这里使用数组列表 但我应该使用列表吗 但是 每次我尝试编译时 它都会引发以下错误 找不到标志 符号 ArrayList类 位置 玩家类 TablePlayer 代码如下 public cla
  • Java 堆分析因 SIGABRT 崩溃

    我正在尝试分析由 C 编写的方法分配并插入的本机内存JVM通过JNI 我安装了 valgrind version valgrind 3 13 0 并尝试使用以下选项运行 JVM valgrind tool massif massif out
  • 无法使用 Jsoup HTML 解析器 Java 实现某些功能

    我无法使用 Jsoup Java 库解析以下场景的一些文本 1 This is b My Text b some other b b text as well b b b non empty tag1 b other text 预期输出 s
  • Apache Beam:如何在使用重复数据删除功能时解决“ParDo 需要确定性密钥编码器才能使用状态和计时器”

    我正在尝试使用 Apache Beam 的重复数据删除功能对来自 Google Cloud Pubsub 的输入消息进行重复数据删除 但是 我创建后遇到错误KV
  • Java 需要一个 FileSet 包/类

    任何人都可以建议 Java 中的 FileSet 包 类吗 我所说的 FileSet 是指文件和目录的集合以及正则表达式支持的包含和排除规则 类似于 Apache Ant 谢谢 Apache 公共 IO文件工具 http commons a
  • Jersey:返回字符串列表

    我尝试以 JSON 和 XML 形式返回 Jersey 中的字符串列表 我以为这会是微不足道的 我的第一次尝试是写这样的东西 GET Produces MediaType APPLICATION JSON MediaType APPLICA
  • Spring MVC 和复选框

    我正在使用 Spring MVC 3 0 并且不能完全看到这个问题的所有部分 我的控制器将生成一个域对象列表 假设有一个简单的 User 对象 具有firstName lastName age 和role 属性 我想在表中输出该用户列表 每
  • 将菜单添加到空活动

    我在 Android Studio 中制作了一个 Android 应用程序 并想在其上创建一个选项菜单 我将其创建为一个空活动 现在意识到我最好创建一个空白活动来获取选项菜单 无论如何 是否可以在空活动中创建选项菜单 如果有人能给我指出一个

随机推荐

  • 前端开发必备

    Chrome调试css chrome开发工具workspace使用 chrome调试less
  • 源码编译安装opencv4.6.0,别的版本也行

    1 下载opencv4 6 0 系统 ubuntu 1804 64位 点我下载opencv 4 6 0 https codeload github com opencv opencv zip refs tags 4 6 0 指令下载 推荐
  • 实现三角形类Tri,数据成员包含三个Point类对象,实现判断两个三角形全等

    实现三角形类Tri 数据成员包含三个Point类对象 实现从屏幕输入三个点的坐标 用于构造Tri的一个对象 实现函数Cong 判断两个三角形是否全等 include
  • ffmpeg 判断关键帧

    当mp4的profile为high的时候 avpacket 1并不能判断是否是关键帧 很多不是的也被误判断成关键帧了 具体做法应该是 进一步判断字节 int is keyframe h264 AVPacket pkt printf 02x
  • 什么是javascript内存泄漏?以及解决方法

    什么是javascript内存泄漏 以及解决方法 一 什么是javascript内存泄漏 二 常见的内存泄漏 1 意外的全局变量 通常是变量未被定义或者胡乱引用了全局变量 2 计时器 3 闭包 4 事件监听未被移除 5 console lo
  • ESP32-AT指令学习笔记

    目录 前言 一 硬件和软件准备 二 使用步骤 1 下载固件 2 接线 总结 前言 针对 ESP32 芯片 实现了一些常用的 AT 指令集 链接地址为 ESP32 AT指令集 该指令集可用于用户 MCU PC 同 ESP32 进行交互 也适用
  • 数据库系统概论第五版课后习题答案第七章

    第七章 数据库设计 1 试述数据库设计过程 答 这里只概要列出数据库设计过程的六个阶段 l 需求分析 2 概念结构设计 3 逻辑结构设计 4 数据库物理设计 5 数据库实施 6 数据库运行和维护 这是一个完整的实际数据库及其应用系统的设计过
  • Spring总结

    1 Spring概述 1 1 简介 Spring 春天 gt 给软件行业带来了春天 2002年 Rod Jahnson首次推出了Spring框架雏形interface21框架 2004年3月24日 Spring框架以interface21框
  • 企业及个人如何有效防护网络攻击

    企业及个人如何有效防护网络攻击 众所周知 网络攻击手段有很多 让人眼花缭乱 防不胜防 其带来的危害和影响也非常之大 因此 如何防范网络攻击 成为大家关注的重点 本文为大家介绍一些防范网络攻击的小技巧 快来看看吧 1 对于个人来说 密码不少于
  • 赛事

    第25届中国机器人及人工智能大赛成功举办 2023年6月13日至14日 第二十五届中国机器人及人工智能大赛于海南科技职业大学成功举办 大赛由中国人工智能学会主办 共有来自清华大学 哈尔滨工业大学 中国科学技术大学 西安交通大学等500多所高
  • 【华为OD统一考试A卷

    华为OD统一考试A卷 B卷 新题库说明 2023年5月份 华为官方已经将的 2022 0223Q 1 2 3 4 统一修改为OD统一考试 A卷 和OD统一考试 B卷 你收到的链接上面会标注A卷还是B卷 请注意 根据反馈 目前大部分收到的都是
  • MATLAB实现CNN-LSTM卷积长短期记忆神经网络数据分类预测

    作者简介 热爱科研的Matlab仿真开发者 修心和技术同步精进 matlab项目合作可私信 个人主页 Matlab科研工作室 个人信条 格物致知 内容介绍 一种基于长短时记忆网络和卷积神经网络的文本分类方法 首先 利用词向量将输入文本进行向
  • Win7 64位操作系统连接HP 1010打印机完美解决方案

    工作的第一天就遇到问题 新电脑无法连接老式的HP1010打印机 64位Windows7系统无法连接32位XP网络共享打印机 而32位WIN7就可以 这里分享个简单的解决方法 先去下载一个64位的打印机驱动 然后添加打印机 注意这里要添加的是
  • SQL---DML---ORDER BY排序检索子句的几种方式

    关系数据库设计理论认为 如果不明确规定排序顺序 则不应该假定检索出的数据的顺序有意义 为了明确地排序用SELECT语句检索出来的数据 可使用ORDER BY子句 排序一列数据 SELECT 列名1 FROM 表名 ORDER BY 列名2
  • 【2022年MathorCup大数据竞赛】B题:北京移动用户体验影响因素研究(四)(问题一的千余行代码整理)

    目录 代码整理 一 问题一附件1语音业务数据集处理代码 二 问题一附件2上网业务数据集处理代码 一 问题一附件1语音业务数据集处理代码 问题一附件1语音业务数据集处理代码 import numpy as np import pandas a
  • 打包前后端项目并部署至服务器

    1 打包前端项目 打包命令 npm run build 执行完命令后 会生成一个名为 dist 的文件夹 这个就是打包好的前端项目 2 打包后端项目 2 1 执行 maven 的 clean 删除项目编译创建的 target 文件夹 2 2
  • fastcgi 模块各个常用变量的意义

    nginx fasrcgi 模块的文档 http nginx org en docs http ngx http fastcgi module html fastcgi pass 设置FastCGI服务器的地址 将匹配到该location的
  • C语言程序的结构

    1 C语言程序主要由函数构成 函数是C语言程序的基本单位 一个C语言源程序必须有一个main函数 可以包含一个main函数和若干个其他函数 主函数可以调用其他函数 其他函数之间可以互相调用 但其他函数不能调用主函数 被调用的函数可以是系统提
  • 时序算法研究系列之Prophet安装(准备篇)

    前言 新开一个关于时序数据预测算法的系列博客 计划整理目前的时序数列的预测方法 原理 应用 心得等 其中Prophet因为在安装时候踩了很多雷 所以专门开一个准备篇写安装过程 下一篇讲述具体应用 目录 前言 Prophet 简介 方法一 方
  • 查看字节码

    1 安装插件 ASM Bytecode outline 与hexview 2 查看字节码 源码 package com asm public class HelloWorld public static void main System o