Idea 使用技巧记录

hresh 691 0

Idea 使用技巧记录

声明:以下所讲皆是在 Idea 2019版本上操作的,且 Key Map 最好选择 Default 模式。

1、配置 sys 输出快捷键

首先点击工具栏 File->Settings,搜索 Live...

IDEA中sys快捷键设置

IDEA中sys快捷键设置

新建一个分组,然后在该分组下添加快捷键。

IDEA中sys快捷键设置

因为已经配置了 sys 快捷键,这里配置 try 快捷键,过程一样。

IDEA中sys快捷键设置

此时, 在下面有一条红色警告语, 点击最下面的”Define”, 选择 Java。

IDEA中sys快捷键设置

点击 Apply ,然后点击 OK 退出。在 Java 文件中输入 sys 即可带出 System.out.println();

2、try/catch 快捷键

选中想被 try/catch 包围的语句,同时按下 ctrl+alt+t 快捷键,如下图:

Idea 使用技巧记录

这里也可以便捷地带出别的嵌套语句。

3、移动到行头行尾快捷键

首先点击工具栏 File->Settings,找到 Keymap 列表。

移动到行头行尾快捷键

在 Keymap 中搜索 line。

移动到行头行尾快捷键

其中 Move Caret to Line End 表示将光标移动到行尾,Move Caret to Line Start 表示将光标移动到行头,自带的快捷键是 Home 和 End 快捷键,但是由于使用起来不方便,所以根据自己习惯,将 Alt+. 设置为移动到行尾的快捷键,Alt+逗号 设置为移动到行头的快捷键。

移动到行头行尾快捷键

选中要添加快捷键的行,右键选择 Add Keyboard Shortcut ,然后同时点击 Alt+.,点击 OK 就可以了。

不管是在 Idea 编辑器,还是 Pycharm 编辑器,编写代码为了更加快速,这两个快捷键使用的频率相应来说也就很高。

4、给 main 方法附带参数

点击 Run 下的 Edit Configurations

Edit Configurations

配置 Configuration 页中的 Program arguments 选项,就可以在 idea 中传入参数,参数之间用空格隔开。

Edit Configurations

最后重新运行 Java 程序即可。

5、编译

编程语言

在介绍编译和反编译之前,我们先来简单介绍下编程语言(Programming Language)。编程语言(Programming
Language)分为低级语言(Low-level Language)和高级语言(High-level Language)。
机器语言(Machine Language)和汇编语言(Assembly Language)属于低级语言,直接用计算机指令编写程序。
而C、C++、Java、Python等属于高级语言,用语句(Statement)编写程序,语句是计算机指令的抽象表示。

编译

上面提到语言有两种,一种低级语言,一种高级语言。简单的理解:低级语言是计算机认识的语言、高级语言是程序员认识的语言。
那么如何从高级语言转换成低级语言呢?这个过程其实就是编译

将便于人编写、阅读、维护的高级计算机语言所写作的源代码程序,翻译为计算机能解读、运行的低阶机器语言的程序的过程就是编译。负责这一过程的处理的工具叫做编译器

现在我们知道了什么是编译,也知道了什么是编译器。不同的语言都有自己的编译器,Java 语言中负责编译的编译器是一个命令:javac

当我们写完一个 HelloWorld.java 文件后,我们可以使用 javac
HelloWorld.java 命令来生成 HelloWorld.class 文件,这个 class 类型的文件是JVM可以识别的文件。通常我们认为这个过程叫做 Java 语言的编译。其实,class 文件仍然不是机器能够识别的语言,因为机器只能识别机器语言,还需要 JVM 再将这种 class文件类型字节码转换成机器可以识别的机器语言。

javac是收录于JDK中的Java语言编译器。该工具可以将后缀名为.java的源文件编译为后缀名为.class的可以运行于Java虚拟机的字节码。

在 Idea 工具上实现源码的编译

编译

6、反编译手段

反编译的过程与编译刚好相反,就是将已编译好的编程语言还原到未编译的状态,也就是找出程序语言的源代码。就是将机器看得懂的语言转换成程序员可以看得懂的语言。Java语言中的反编译一般指将class文件转换成java文件。

有了反编译工具,我们可以做很多事情,最主要的功能就是有了反编译工具,我们就能读得懂Java编译器生成的字节码。比如我们就可以洞悉Java语法糖背后的原理。

1、javap

javap 是 jdk 自带的一个工具,可以对代码反编译,也可以查看 java 编译器生成的字节码。javap 和其他两个反编译工具最大的区别是它生成的文件并不是 java 文件,也不像其他两个工具生成代码那样更容易理解。用以下源码进行讲解:

public class ConstantStr {

    public static void main(String[] args) {
        char c = 'a';
        int cn = (int)c;
        int ch = c & 0xffff;
    }
}

按照上述介绍的那样对该源码进行编译,然后在输入 javap -c ConstantStr 命令进行反编译。

javap命令

最终得到如下结果:

public class stringLearn.ConstantStr {
  public stringLearn.ConstantStr();
    Code:
       0: aload_0
       1: invokespecial #1                  // Method java/lang/Object."<init>":()V
       4: return

  public static void main(java.lang.String[]);
    Code:
       0: bipush        97
       2: istore_1
       3: iload_1
       4: istore_2
       5: iload_1
       6: ldc           #2                  // int 65535
       8: iand
       9: istore_3
      10: return
}

javap 并没有将字节码反编译成 java 文件,而是用另一种形式的字节码显示,其中包含的有 JVM 指令符号。这种反编译形式得到的结果虽然不像 Java 文件那样,但是内容却是最完整的,所以有必要了解一下必要的指令的意义。在查看编译时期 Class 文件常量池中字面量的时候,就需要通过该结果进行查看。

2、Jad

首先点击工具栏 File->Settings,找到 Plugins 列表。

Jad插件

点击安装 IdeaJad,然后重启 Idea,打开 .class 文件,会提示是否需要反编译,点击 yes,然后就提示报错,报错信息如下:

Jad插件

网上一番查询,得知这是以往的旧版本,已经不更新了,所以放弃使用该插件。

至于 IntelliJad9 和 IntelliJad 安装后重启都会报错,最后也就不了了之,放弃使用该插件。
Jad插件

3、Java Decompiler

同样搜索关键词 Java Decompiler,点击 Install,重启 Idea,然后在 Idea中打开 .class 文件,结果如下:

  // IntelliJ API Decompiler stub source generated from a class file
  // Implementation of methods is not available

package stringLearn;

public class ConstantStr {
    public ConstantStr() { /* compiled code */ }

    public static void main(java.lang.String[] strings) { /* compiled code */ }
}

对比不安装此插件打开.class 文件的结果:

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

package stringLearn;

public class ConstantStr {
    public ConstantStr() {
    }

    public static void main(String[] var0) {
        byte var1 = 97;
        int var3 = var1 & '\uffff';
    }
}

???对于此结果深感疑惑,能查看什么内容,故放弃使用该插件。

4、JD-GUI

JD-GUI 是显示 java 源代码 *.class 文件的 图形界面工具。可以在这里下载:JD-GUI-DownLoad

下载下来后,打开该工具,直接将 jar包或 class 文件拖拽到 显示窗口即可查看源代码。
在这里插入图片描述
综上,使用 javap 命令,或直接在 Idea 中打开,又或者 JD-GUI 工具打开.class 文件,来查看反编译的信息,虽然彼此结果有所出入,以 javap 命令执行后的结果为准。

7、查看最近修改的代码

ctrl + E

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-vdCKZa0H-1573177960361)(F:\桌面移植\csdn博客\32\v2-9d6bea9d77991ad7036c09c0e05fb72d_b.jpg)]

8、 查看当前类的子类

ctrl + h

9、 显示类之间的关系

ctrl + alt + u

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-CLUkPrvZ-1573177960362)(F:\桌面移植\csdn博客\32\微信截图_20191107094559.png)]

10、 生成代码(如GET,SET方法,构造函数等)

ALT+INSERT

11、查看方法被哪里调用

ctrl + b

12、创建 Java 类时,自动在文件头添加作者和创建时间

在这里插入图片描述

再次新建类文件,效果如下:

在这里插入图片描述

13、方法注释

同配置 sys 输出快捷键类似,具体操作如下图所示:

方法注释

方法注释

方法注释

注: 当注释放在函数的外面时,自动获取的参数都为空。

如果平时需要在方法外进行注释,可以输入 /** + 回车即可。

14、查找

当前文件中查找

ctrl + f

IDEA中查找
当前项目中查找

ctrl + shift + f

在这里插入图片描述

15、替换

ctrl + shift + r

在这里插入图片描述

16、生成 Junit 测试类

如果是 maven 项目,可以在 pom.xml 文件中添加 Junit 依赖。

<dependency>
    <groupId>junit</groupId>
    <artifactId>junit</artifactId>
    <version>4.12</version>
</dependency>

如果是 Spring Boot 项目,spring-boot-starter-test包中就包含了 Junit 依赖。

 <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-test</artifactId>
      <scope>test</scope>
      <exclusions>
          <exclusion>
              <groupId>org.junit.vintage</groupId>
              <artifactId>junit-vintage-engine</artifactId>
          </exclusion>
      </exclusions>
  </dependency>

1、在要生成测试类的类里面,按ctrl+shift+t –> create new test

Idea 使用技巧记录

2、将鼠标光标放到要生成测试类的类名或者方法名上面,按ctrl + enter –> create test

Junit 测试类

点击创建 create test:弹出下面选择框

Junit 测试类

Junit 测试类

后期会不断记录新的操作过程讲解。

更多内容可以参考官方文档:IntelliJ IDEA官方文档

发表评论 取消回复
表情 图片 链接 代码

分享