[JDK工具-2] javap 类文件解析工具-帮助理解class文件,了解Java编译器机制

在这里插入图片描述

文章目录

  • 1. javap -version 版本信息
  • 2. javap -verbose 输出附加信息
  • 3. javap -l 显示行号和局部变量列表
  • 4. javap -c 对代码进行反汇编(或叫反编译生成汇编代码,一般说反编译是生成java代码),分解方法代码,也就是显示每个方法具体的字节码
  • 5. javap -s 输出内部类型签名
  • 6. javap -sysinfo 显示正在处理的类的系统信息 (路径, 大小, 日期, MD5 散列)
  • 7. javap -constants 显示最终常量

位置:jdk\bin
作用:对class文件进行解析
语法:javap <options> <classes>

参数说明
-version版本信息
-verbose输出附加信息
-l显示行号和局部变量列表
-c对代码进行反汇编(或叫反编译生成汇编代码,一般说反编译是生成java代码),分解方法代码,也就是显示每个方法具体的字节码
-s输出内部类型签名
-sysinfo显示正在处理的类的系统信息 (路径, 大小, 日期, MD5 散列)
-constants显示最终常量

在cmd中cd 到class文件所在目录即可执行语句

源代码:

package com.xin.demo.hutooldemo;

import cn.hutool.core.io.FileUtil;
import java.io.File;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import org.apache.commons.lang3.StringUtils;

public class demo1FileUtil {
    private static String baseFolderPath = "C:\\D\\project3\\ruoyi-vue-pro\\yudao-server";
    private static String exportFolder = "D:\\tableNameFolder";
    private static String reg = "(a|b)\\.\\w*";

    public demo1FileUtil() {
    }

    public static void main(String[] args) {
        List<File> fileList = FileUtil.loopFiles(baseFolderPath);
        FileUtil.mkdir(exportFolder);
        FileUtil.clean(exportFolder);
        FileUtil.writeLines(fileList, exportFolder + "\\classList.txt", "utf-8");
        Set<String> matchTableNameSet = new HashSet();
        Pattern pattern = Pattern.compile(reg, 2);
        fileList.stream().forEach((file) -> {
            List<String> lineList = FileUtil.readLines(file, "utf-8");
            lineList.stream().forEach((line) -> {
                Matcher matcher = pattern.matcher(line);
                if (matcher.find()) {
                    String group = matcher.group();
                    if (!StringUtils.equals(group, "a.")) {
                        matchTableNameSet.add(group);
                    } else {
                        matchTableNameSet.add(group + "表名换行了,类为:" + file);
                    }
                }

            });
        });
        FileUtil.appendLines(matchTableNameSet, exportFolder + "\\tableNameList.txt", "utf-8");
    }
}

1. javap -version 版本信息

在这里插入图片描述

2. javap -verbose 输出附加信息

在这里插入图片描述

3. javap -l 显示行号和局部变量列表

在这里插入图片描述

4. javap -c 对代码进行反汇编(或叫反编译生成汇编代码,一般说反编译是生成java代码),分解方法代码,也就是显示每个方法具体的字节码

在这里插入图片描述

5. javap -s 输出内部类型签名

在这里插入图片描述

6. javap -sysinfo 显示正在处理的类的系统信息 (路径, 大小, 日期, MD5 散列)

在这里插入图片描述

7. javap -constants 显示最终常量

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/169455.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

OSG文字-显示汉字 (1)

OSG文字 适当的文字信息对于显示场景信息是非常重要的。在 OSG中&#xff0c;osgText 提供了向场景中添加文字的强大功能&#xff0c;由于有第三方插件 FreeType 的支持&#xff0c;它完全支持TrueType字体。 读者可能对 FreeType和TrueType还不太了解&#xff0c;下面进行具体…

Openlayer【二】—— 绘制不同的点、线以及给其添加监听事件

Openlayer【二】—— 绘制不同的点、线以及给其添加监听事件 接上篇&#xff1a;OpenLayer初始化 在openlayer当中&#xff0c;图层Layer与地图源Source是一对一的关系。当创建了一个图层Layer&#xff0c;相应的需要给图层添加地图源Source&#xff0c;然后将图层Layer添加到…

企业经营好不好?看看官方评价指标(适电子元、器件制造业)

一家企业经营的到底好不好&#xff1f;有没有评价标准呢&#xff1f;这里我们不妨参考一下国资委对全国各个行业的考核指标&#xff0c;对照一下自己的企业&#xff0c;就比较清楚自身企业的经营水平了。另外&#xff0c;我们也希望使用ODOO-ERP业财一体系统的企业&#xff0c;…

docker swarm集群部署

文章目录 前言一、安装docker1.1 解压1.2 配置docker 存储目录和dns1.3 添加docker.service文件1.4 docker 启动验证 二、docker swarm 集群配置2.1 关闭selinux2.2 设置主机名称并加入/etc/hosts2.3 修改各个服务器名称&#xff08;uname -a 进行验证&#xff09;2.4 初始化sw…

Java-类和类的关系

代码 总结&#xff1a; 【1】面向对象的思维&#xff1a;找参与者&#xff0c;找女孩类&#xff0c;找男孩类 【2】体会了什么叫方法的形参&#xff0c;什么叫方法的实参&#xff1a; 具体传入的内容 实参&#xff1a; 【3】类和类可以产生关系&#xff1a; &#xff08;1…

Django(九、choices参数的使用、多对多表的三种创建方式、Ajax技术)

文章目录 一、choices参数choices参数的用法choices 参数用法总结 二、MVC与MTV模式1.MVC2.MTV 三、多对多的三种创建方式1.全自动创建2.纯手动创建半自动创建 四、Django与Ajax1.什么是Ajax常见的场景Ajax案例 一、choices参数 在没有用到choices参数之前&#xff0c;我们在D…

如何科学的进行Android包体积优化

这篇文章会分享小厂如何做包体积优化相关主题&#xff0c;涉及内容包括&#xff1a;1) Android包体积优化的一种可能是比较标准的推进做法&#xff0c;2) 大致流程的心路历程和思考方式&#xff0c;3) 如何去总结和分享你们进行过的包体积优化项目。本文不仅仅是一篇分享&#…

PCIe协议加持,SD卡9.1规范达到媲美SSD的速度4GB/s

近日&#xff0c;SD协会&#xff08;SDA&#xff09;宣布了最新的SD Express存储卡的进化&#xff0c;将microSD Express存储卡的速度提高了一倍&#xff0c;达到2GB/s&#xff0c;并引入了4个新的SD Express速度等级&#xff0c;以确保新的SD 9.1规范中最低的顺序性能水平。这…

【自动驾驶解决方案】C++取整与保留小数位

一、C基础 1.1double型保留小数为&#xff0c;并以字符输出 #include <iostream> #include <sstream> #include <iomanip> // 包含std::fixedint main() {//浮点数double number 3.1415926;//转换工具类streamstd::stringstream stream;stream << s…

U-boot(三):start.S

本文主要探讨x210的uboot的start.S文件,也是uboot启动的第一阶段。 头文件 config.h config.h x210_sd.h,由mkconfig脚本生成,包含了开发板的配置宏 rootkaxi-virtual-machine:~/qt_x210v3s_160307/uboot/include# cat config.h /* Automatically generate…

LangChain 组件

输入输出模块 该模块负责与LLM做交互&#xff0c;通过该接口向模型输入 Prompt 并提取模型输出信息。主要包括&#xff1a;提示词、语言模型&#xff0c;输出解析器。 数据连接 已训练好的大语言模型&#xff0c;在训练时使用了大量的训练数据&#xff0c;但这些训练数据中可能…

Windows 下 Sublime Text 2.0.2 下载及配置

1 下载地址&#xff1a; https://www.sublimetext.com/2 Sublime Text 2.0.2 (此版本选择了 portable version)&#xff0c;直接解压就可以使用。 https://download.sublimetext.com/Sublime Text 2.0.2.zip 2 配置Python相关环境 (前提 Pyhon 已加入环境变量) 2.1 新建 py …

为什么大家都不用postman而选择 Apifox呢?

丢掉 Postman&#xff0c;Apifox 更香 作为开发者&#xff0c;丢掉 Postman 和 Jmeter吧&#xff0c;这款国产 API 工具更香&#xff0c;更安全&#xff01;一键即可导入 Postman 数据&#xff01; 一、Apifox 是什么&#xff1f; 1、Apifox 定位 Apifox Postman Swagger …

安全项目简介

安全项目 基线检查 密码 复杂度有效期 用户访问和身份验证 禁用administrator禁用guest认证失败锁定 安全防护软件操作系统安全配置 关闭自动播放 文件和目录权限端口限制安全审计… 等保测评 是否举办了安全意识培训是否有应急响应预案有无第一负责人 工作内容 测评准备…

如何判断sql注入流量特征

如何判断sql注入流量特征 以dvwa的sql注入为例 首先构造一个完整的sql注入请求包 GET /dvwa_2.0.1/vulnerabilities/sqli/?id1&SubmitSubmit HTTP/1.1 Host: 10.9.47.41 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/119.…

Jenkins自动化部署(虚拟机部署)

文章目录 一、持续集成和持续交付二、自动化部署流程三、虚拟机安装四、安装Jenkins环境4.1.安装java环境4.2. 安装Jenkins4.3.Jenkins配置 五、nginx安装和配置5.1. 安装nginx5.2.通过Linux命令创建文件夹和文件&#xff1a;5.3. 配置nginx 六、将代码上传到Git仓库七、Jenkin…

趣学python编程(六、关于蓝桥杯比赛)

蓝桥杯全国软件和信息技术专业人才大赛简称“蓝桥杯”&#xff0c;是由工业和信息化部人才交流中心举办的国内最大的信息技术竞赛。为促进中小学科技创新&#xff0c;提升中小学生逻辑思维&#xff0c;发现和培养面向未来的科技精英人才。 蓝桥杯介绍 蓝桥杯全国软件和信息技术…

【视觉SLAM十四讲学习笔记】第三讲——旋转矩阵

专栏系列文章如下&#xff1a; 【视觉SLAM十四讲学习笔记】第一讲——SLAM介绍 【视觉SLAM十四讲学习笔记】第二讲——初识SLAM 本章将介绍视觉SLAM的基本问题之一&#xff1a;如何描述刚体在三维空间中的运动&#xff1f; 旋转矩阵 点、向量和坐标系 三维空间由3个轴组成&…

C++数据结构:并查集

目录 一. 并查集的概念 二. 并查集的模拟实现 2.1 并查集类的声明 2.2 并查集的实现 三. 路径压缩 四. 总结 一. 并查集的概念 在生活中&#xff0c;我们经常需要对某一些事物进行归类处理&#xff0c;即&#xff1a;将N个不同的元素划分为几个互不相交的集合。在初始状态…

如何解决网站被攻击的问题:企业网络攻防的关键路径

在当今数字化时代&#xff0c;企业面临着不断升级的网络威胁&#xff0c;网站遭受攻击的风险也与日俱增。解决网站被攻击的问题对企业发展至关重要&#xff0c;不仅关系到企业的信息安全&#xff0c;也直接影响到企业的声誉和利益。从企业发展的角度出发&#xff0c;我们将探讨…