idea的使用技巧

idea的使用技巧

一、断点调试

1. 源断点

要输出每一次的参数信息:

System.out.print不应该使用它,它是一个同步方法,是线程安全,过多时会挤占线程、占用资源!

//内部实现
public void println(int x) {
        synchronized (this) {
            print(x);
            newLine();
        }
    }

shift+鼠标左键,出现黄色标记:

idea的使用技巧_第1张图片

相关的信息:

idea的使用技巧_第2张图片

以debug方式执行就可以输出相应信息

可以打印日志,所在行信息、堆栈信息,只需要点击相应的选框

命中后移除:执行完毕后移除断点

合格次数:行断点时使用


2. 行断点

解析每一步的执行步骤,鼠标左击会出现红色标记

debug执行:

idea的使用技巧_第3张图片

控制台打印每一个变量的信息: idea的使用技巧_第4张图片

指定调试开始处与结束处:

idea的使用技巧_第5张图片

idea的使用技巧_第6张图片

只执行固定方法的断点:

idea的使用技巧_第7张图片


3.方法断点

public class ServiceImplA implements Service{
    @Override    
    public String method() {        
        return "hello A";    
    }
}

public class ServiceImplB implements Service{    
    @Override    
    public String method() {        
        return "hello B";    
    }
}
public String hello() {        // 假设通过看代码很难确定是哪个实现类的实例
    Service service = createService();
    return service.method();
}

这个时候,我们不能一眼看出 service 是 ServiceImplA 的实例,还是 ServiceImplB 的实例

idea的使用技巧_第8张图片

idea的使用技巧_第9张图片


4.属性断点

当一个成员变量被多方引用时,它可以精准的找到谁读取、修改了它的值。

idea的使用技巧_第10张图片


5.异常断点

可以精准的定位到发生(指定类型)异常的代码行。

此时以debug方式运行会抛出异常:

idea的使用技巧_第11张图片

但此时加上一个断点,并且添加一个异常类,就能够停在异常断点处:

idea的使用技巧_第12张图片

idea的使用技巧_第13张图片


6.断点工具栏

idea的使用技巧_第14张图片


7.安全退出

退出后不再进行断点之后的执行

idea的使用技巧_第15张图片

开启返回:

idea的使用技巧_第16张图片

idea的使用技巧_第17张图片


8.多线程调试

默认:

idea的使用技巧_第18张图片

勾选Thread:

idea的使用技巧_第19张图片

可以在两个线程间切换调试:

idea的使用技巧_第20张图片


9.远程断点调试

不建议使用

建立远程连接:

idea的使用技巧_第21张图片

打包项目,推送到远程服务器上:

idea的使用技巧_第22张图片

控制台:

idea的使用技巧_第23张图片

进入远程服务器:

项目跑起来了:

idea的使用技巧_第24张图片

打了断点之后再次在浏览器访问:

idea的使用技巧_第25张图片




二、代码重构

1. 修改名称

shift+f6:修改类名、方法名、包名

2. 更改方法签名

选中方法名后com+f6,修改方法参数:

idea的使用技巧_第26张图片

idea的使用技巧_第27张图片


3. 方法抽取

抽取方法

选中方法后com+option+N:

idea的使用技巧_第28张图片

(只内联这个并保留这个方法)执行后:

idea的使用技巧_第29张图片

抽取常量

抽取前

idea的使用技巧_第30张图片

抽取后com+option+C:

idea的使用技巧_第31张图片

抽取变量

抽取前:

idea的使用技巧_第32张图片

抽取后com+shfit+V:

idea的使用技巧_第33张图片

在此选中上图中蓝色部分,将其抽取为全局变量com+option+F:

idea的使用技巧_第34张图片

抽取参数

idea的使用技巧_第35张图片

com+option+P:

idea的使用技巧_第36张图片

抽取父类方法到子类,子类到父类

idea的使用技巧_第37张图片

抽取方法到接口中

抽取方法到指定类中

以上这些都可以通过idea上方的状态栏重构功能中找到!




三、快捷键操作

1. 自定义模板

${desc}表示要手动输入说明


2. 自定义快捷键模板

idea的使用技巧_第38张图片

生效后:

idea的使用技巧_第39张图片


3.常用快捷键

mac系统

  • com+shift+回车 智能补全

  • shift+回车 生成下一行

  • com+option+T 环绕方式

  • com+N 生成代码

  • com+D 向下复制

  • com+/ 注释

  • com+'-' 折叠

  • com+'+'展开

  • com+'.'折叠/展开

  • ctrl+shift+R 运行

  • ctrl+D debug运行

  • com+delete 删除当前行

  • command+R 查找和替换

  • shift*2 快速查找


4.使用技巧

优化import语句

idea的使用技巧_第40张图片

代码达到指定长度自动折行

idea的使用技巧_第41张图片

取消大小写匹配搜索

idea的使用技巧_第42张图片

代码变更后会改变文件夹的颜色

idea的使用技巧_第43张图片

去除打开时会打开上一次的项目

idea的使用技巧_第44张图片

多行操作

idea的使用技巧_第45张图片

比较文件

idea的使用技巧_第46张图片


5.常用插件

idea的使用技巧_第47张图片

idea的使用技巧_第48张图片




四、配置项目参数

配置相关参数:

idea的使用技巧_第49张图片

添加源断点,debug启动,结果如上图右侧终端中:

源断点添加:args+"\n"+System.getenv()+"\n"+System.getenv(“env”),为了输出相应的配置

idea的使用技巧_第50张图片

相关代码:

import java.util.Arrays;

public class Memory {
    public static void main(String[] args) {
        //返回JVM试图使用的最大内存-->1/4
        long maxMemory = Runtime.getRuntime().maxMemory();
        //返回JVM初始化时的内存-->1/64
        long totalMemory = Runtime.getRuntime().totalMemory();

        System.out.println("字节"+maxMemory+" 内存"+maxMemory/(double)1024/1024+"MB");
        System.out.println("字节"+totalMemory+" 内存"+totalMemory/(double)1024/1024+"MB");

        //内存调优
        //-Xms1024m -Xms1024m -XX:+PrintGCDetails
        System.out.println(Arrays.toString(args));	//此处打源断点
    }
}



参考信息:

https://baijiahao.baidu.com/s?id=1723755922598922521&wfr=spider&for=pc

https://www.bilibili.com/video/BV1Cq4y1A7yq?spm_id_from=333.1007.top_right_bar_window_history.content.click

你可能感兴趣的:(工具,intellij-idea,idea)