使用IDEA工具可以直接反编译class文件_idea对.class文件进行了反编译吗-程序员宅基地

技术标签: jvm  java  intellij-idea  感悟  

首先,我们可以先使用idea工具,编写一个类。

代码如下:

package com.shrimpking.code01;

public class Demo02
{
    public static void main(String[] args)
    {
        String name = "英文";

        switch (name)
        {
            case "中文":
                System.out.println("这是中文");
                break;
            case "英文":
                System.out.println("this is english");
                break;
            default:
                System.out.println("异常");
        }


    }
}

运行此类,产生class文件。

然后,在File菜单下,找到project structure菜单,找到文件输出路径。

 

复制此文件路径,在文件浏览器中打开

 

 依次进入,找到编写类对应的class文件。

 将此class文件,复制,粘贴到idea工具,源码文件夹下,

 

class文件复制进去后,可以从idea工具的包文件夹下,显示此文件。

双击此class文件,idea工具会自动反编译此文件,反编译后的代码如下:

//
// Source code recreated from a .class file by IntelliJ IDEA
// (powered by Fernflower decompiler)
//

package com.shrimpking.code01;

public class Demo02 {
    public Demo02() {
    }

    public static void main(String[] args) {
        String name = "英文";
        byte var3 = -1;
        switch(name.hashCode()) {
        case 646394:
            if (name.equals("中文")) {
                var3 = 0;
            }
            break;
        case 1065142:
            if (name.equals("英文")) {
                var3 = 1;
            }
        }

        switch(var3) {
        case 0:
            System.out.println("这是中文");
            break;
        case 1:
            System.out.println("this is english");
            break;
        default:
            System.out.println("异常");
        }

    }
}

通过此方式,我们可以了解class文件内代码的情况,有助于学习理解。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/modern358/article/details/130533593

智能推荐

大数据Hadoop入门_hadoop只用一个账户能启动-程序员宅基地

文章浏览阅读4.6k次,点赞4次,收藏34次。先安装好vmware并且创建一台虚拟机,IP和主机名配置1.点击vmware的“编辑” =>虚拟网络编辑器(N)...2.点击“VMnet8"后点击”更改设置“3.而后再次点击VMnet8,修改子网IP地址为:192.168.10.0(IP可以任意取值只要不为192.168.1.0即可)4.修改完成后,点击NAT设置,将网关的地址修改与子网IP在同一网段。这里网关IP设置为192.168.10.2 ;随后点击确定=>确定5.配置主机的IP,网..._hadoop只用一个账户能启动

LM series vertical grinding mill complete system of professional choice-程序员宅基地

文章浏览阅读82次。LM series verticalroller mill machine is widely absorb the advanced technology in thefoundation of internat..._lm coal mill

概念理解:面向对象编程(OOP)-程序员宅基地

文章浏览阅读49次。一、对象的综述面向对象编程(OOP)具有多方面的吸引力。对管理人员,它实现了更快和更廉价的开发与维护过程。对分析与设计人员,建模处理变得更加简单,能生成清晰、易于维护的设计方案。对程序员,对象模型显得如此高雅和浅显。此外,面向对象工具以及库的巨大威力使编程成为一项更使人愉悦的任务。每个人都可从中获益,至少表面如此。所有编程语言的最终目的都是解决企业又或者人在现实生活中所遇到的问题,最初我们..._咋样理解面向对象编程 -baijiahao

C语言之makefile简介及简单应用_c makefile-程序员宅基地

文章浏览阅读963次。其实makefile最大的优点就是提供了”自动编译”,只要内容编写好,一个make命令,整个工程就会自动编译程序,大大提高了软件开发的效率。 所以 会使用makfile还是一个很重要的技能哦!!!make工具最主要也是最基本的功能就是通过makefile文件来描述源程序之间的相互关系并自动维护编译工作。而makefile 文件需要按照某种语法进行编写,文件中需要说明如何编译各个源文件并连接生..._c makefile

数据库新增幂等操作_接口幂等性-程序员宅基地

文章浏览阅读417次。含义:接口可重复调用后,在调用方多次调用的情况下,接口最终得到的结果是一致的。有些接口天然具备幂等性,如查询接口。除查询外,增加、更新、删除都要保证幂等性。如何保证幂等性?1.全局唯一ID(防止新增脏数据)如果使用全局唯一ID,就是根据业务的操作和内容生成一个全局ID,在执行操作前先根据这个全局唯一ID是否存在来判断这个操作是否已经执行,如果不存在则把全局唯一ID存储到存储系统中,比如数据库,re..._如何保证数据库增加的幂等

java为什么要学习数组_为什么数组要从零开始?-程序员宅基地

文章浏览阅读354次。如题,数组第一个元素为什么要从零开始,而不从一开始?感觉这很反人类呀,正常来讲,一个集合的开始,不应该从一吗?对于这个问题,我觉得可以从以下两方面来考虑。设计层面我们先了解一下数组最基本的结构和寻址方式(即实现方式)。现在市面上无论是C、Java、PHP,还是Go或者其他编程语言,他们数组的实现方式,应该都是一样的:一段连续的内存。数组在分配内存的时候,我们会知道数组的开始地址(PS:在目前下标为..._java 为什么使用数组

随便推点

个人永久性免费-Excel催化剂功能第59波-快速调用Windows内部常用工具命令-程序员宅基地

文章浏览阅读60次。Windows里一些常用的工具、命令,许多存放得很深的位置,不容易找到,每次还要百度半天才能调用成功,Excel催化剂现将常用的操作,提取至插件中完成,一键即可调出相应功能,无需苦苦找寻。使用场景每每需要对Windows系统作一些设置时,不同的Windows版本设置菜单位置不一样,特别是现在的Win10坑爹地很,更难找到,用熟一个系统,跳到其他系统又找一大轮,微软这德性还..._excel 调用windows命令

leetcode 509.斐波那契数 C语言 动态规划_动态规划求解斐波那契数列c语言-程序员宅基地

文章浏览阅读1.2k次。题目读题从第三项开始,每一项是前两项的和,给定数n,求F(n)。列出前五项 F(0) F(1) F(2) F(3) F(4) F(n) 0 1 1 2 3 F(n-1)+F(n-2) 1+0 1+1 2+1 运用动态规划设计状态:从第三项开始每一次求第n项都转移到求n-1项和n-2项写出状态转移方程:F(n)=F(n-1)+F(n-2_动态规划求解斐波那契数列c语言

Windows下安装Hive(包安装成功)_windows安装hive-程序员宅基地

文章浏览阅读5.1k次,点赞12次,收藏28次。Hive 的Hive_x.x.x_bin.tar.gz 高版本在windows 环境中缺少 Hive的执行文件和运行程序。配置文件目录(%HIVE_HOME%\conf)有4个默认的配置文件模板拷贝成新的文件名。可以发现,自动连接MySQL去创建schema hive,并执行脚本。可以通过访问namenode和HDFS的Web UI界面(以及resourcemanager的页面(先在Hive安装目录下建立。根据自己的Hive安装路径(根据自己的Hive安装路径(请严格按照版本来安装。在Hadoop管理台(_windows安装hive

无偏估计+求样本的方差为何除n-1_设总体x~n(θ,1),gθ=θ2,试求gθ的无偏估计的方差下界-程序员宅基地

文章浏览阅读464次。$$f(x)={xˉ=∑1nxin均值S2=∑1n(x−xi)2n−1方差f(x)=\begin{cases} \bar{x}=\frac{ \sum_{1}^{n} x_{i} }{n}& \text{均值}\\S^2= \frac{ \sum_{1}^{n} (x- x_{i} )^2 }{n-1} & \text{方差}\end{cases}f(x)={xˉ=n∑1n​xi​​S2=n−1∑1n​(x−xi​)2​​均值方差​求样本方差为什么除n−1?求样本方差_设总体x~n(θ,1),gθ=θ2,试求gθ的无偏估计的方差下界

Linux学习教程,Linux入门教程(超详细)| 网址推荐_linux中大量使用脚本语言,而不是c语言!-程序员宅基地

文章浏览阅读1.3k次,点赞2次,收藏51次。1Linux简介2Linux安装3Linux文件和目录管理4Linux打包(归档)和压缩5Vim文本编辑器6Linux文本处理(Linux三剑客)7Linux软件安装8Linux用户和用户组管理9Linux权限管理10Linux文件系统管理11Linux高级文件系统管理12Linux系统管理13Linux备份与恢复14Linux系统服务管理15Linux系统日志管理16Linux启动管理17LAMP环境搭建和LNMP环境搭建18SEL..._linux中大量使用脚本语言,而不是c语言!

c语言函数base,c中base的用法-程序员宅基地

文章浏览阅读1.7k次。c中base的用法的用法你知道吗?下面小编就跟你们详细介绍下c中base的用法的用法,希望对你们有用。c中base的用法的用法如下:1、调用基类中的重名方法[csharp]public class Person{protected string ssn = "444-55-6666";protected string name = "John L. Malgraine";public virtua..._c语言中base=16是什么意思