首页 > 编程语言 >Java反编译工具Jad的下载与使用示例

Java反编译工具Jad的下载与使用示例

时间:2023-06-04 10:11:55浏览次数:52  
标签:反编译 Java String TestStringBuilder 示例 jad public

场景

Java反编译工具-JD-GUI下载以及使用:

https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/84317051

上面讲过Java反编译工具JD-GUI的使用,如果使用jad并通过命令如何实现反编译。

 

为了验证Java开发手册中为什么不推荐使用+进行字符串拼接,我们编写示例代码并编译和进行反编译

之后进行验证。

注:

博客:
https://blog.csdn.net/badao_liumang_qizhi

Java反编译工具Jad的下载

https://varaneckas.com/jad/

 

选择对应版本下载,这里直接选择windows版本。

下载解压之后只有jad.exe和一个Readme.txt

然后在同一个目录下新建测试类

public class TestStringBuilder {
    public static void main(String[] args) {
        String str = "badao";
        for (int i = 0; i < 100; i++) {
            str = str + "dechengxvyuan";
        }
    }
}

首先将java文件编译成class文件

javac TestStringBuilder.java

然后使用jad进行反编译

jad -p TestStringBuilder.class >result.java

这里的-p 以及>代表重定向到指定的文件名和后缀。

执行后会在此目录下生成反编译的result.java文件

 

查看此文件可知反编译之后的内容为

public class TestStringBuilder
{

    public TestStringBuilder()
    {
    }

    public static void main(String args[])
    {
        String s = "badao";
        for(int i = 0; i < 100; i++)
            s = (new StringBuilder()).append(s).append("dechengxvyuan").toString();

    }
}

 

标签:反编译,Java,String,TestStringBuilder,示例,jad,public
From: https://www.cnblogs.com/badaoliumangqizhi/p/17455264.html

相关文章

  • CoreJava笔记
    Day1-java基础java发展史1995年SUN公司发布了java2005年将JDK1.5更名为JDK5.02009年Oracle收购了SUN公司2014年推出了JDK8.0....java的优势简单纯面向对象开源跨平台前期准备安装JDK配置环境变量JAVA_HOME:JDK的安装路径作用:告知计算机其他软......
  • 关于建立一个Java项目全过程(专对于新手)
    关于建立一个Java项目全过程一、Java开发环境搭建1.JDK与JREJDK=JRE+开发工具集(例如Javac编译工具等)JRE=JVM+JavaSE标准类库2.JDK的下载下载网址(Oracle公司官网):www.oracle.com这里链接具体下载网址:https://www.oracle.com/java/technologies/downloads/复制链接......
  • Java基础知识:面试官必问的问题
    数据类型基本类型byte/8char/16short/16int/32float/32long/64double/64boolean/~boolean只有两个值:true、false,可以使用1bit来存储,但是具体大小没有明确规定。JVM会在编译时期将boolean类型的数据转换为int,使用1来表示true,0表示false。JVM支持boolean......
  • Java基础知识:面试官必问的问题
    数据类型基本类型byte/8char/16short/16int/32float/32long/64double/64boolean/~boolean只有两个值:true、false,可以使用1bit来存储,但是具体大小没有明确规定。JVM会在编译时期将boolean类型的数据转换为int,使用1来表示true,0表示false。JVM支持boolean......
  • EBU4201 I java编程
    EBU4201IntroductoryJavaProgramming2022/23MiniProjectTask1[30marks]SumItUpisasimpleapplicationforchildrenwheretheycanpractisetheircountingandaddingskills(seeFigure1).Figure1FirstlaunchwithsomeinputvaluesenteredArandomnumb......
  • Java实战(第2版)学习笔记
    基本知识函数式编程:Java8里将代码传递给方法的功能(同时也能够返回代码并将其包含在数据结构中)还让我们能够使用一整套新技巧,通常称为函数式编程。没有共享的可变数据,以及将方法和函数(即代码)传递给其他方法的能力,这两个要点是函数式编程范式的基石。行为参数化:将方法(你的代码)作......
  • java子线程中获取父线程的threadLocal中的值
    1packagecom.example.springbootstudy.test.threadLocal;23publicclassBaseTest{45publicstaticfinalInheritableThreadLocal<String>inheritableThreadLocal=newInheritableThreadLocal<>();67publicstaticfinalThrea......
  • Java8之Stream的学习
    一、概念理解Stream可以由数组或集合创建,对流的操作分为两种:中间操作,每次返回一个新的流,可以有多个。终端操作,每个流只能进行一次终端操作,终端操作结束后流无法再次使用。终端操作会产生一个新的集合或值。二、Stream的创建publicclassStreamDemo{publicstaticvoidmain(......
  • java继承
    1.为什么要使用继承多类之间拥有相同的属性或是方法;解决方式是将相同的属性和方法抽取出来封装到一个新的类中,并继承新的类。2.继承语法AextendsB如果AextendsB得出结论;A是B的子类;B是A的父类java中一个类只能继承一个父类(单继承关系)继承的关键字是extends3.supersupe......
  • Java使用SSLContext请求https
    //首先实现信任的管理器类ublic class HttpsUtil {     private static class TrustAnyTrustManager implements X509TrustManager {         public void checkClientTrusted(X509Certificate[] chain, String authType)          ......