IDEA使用技巧
日常使用
快速输入
public static void main(String[] args){}psvm+ tab即可快速输入
System.out.println();
sout+ tab即可- 可以先输入任何想要输出的变量,再
.sout
想创建对象或使用一个能返回对象的方法时,直接写
new ClassName()/ClassName.methodName(parameters),再Alt + Enter,即可自动产生对象名。谷歌
IDEA优化,进行相关操作运行Java文件
- 上次运行过的文件:Shift + F10
- 当前文件:Ctrl + Shift + F10
反编译
- 工具栏 - Project Structure… - Project - Project compiler output,找到编译成字节码的class文件输出地址,在文件资源管理器中打开该地址;
- IDEA中,在中意的Package右键 - Show in Explore
- 在文件资源管理器中,复制class文件到java文件所在的目录,之后再在IDEA中打开,即可查看反编译后的内容。
编写构造器
Alt + insert –> Constructor
编写Getter和Setter方法
Alt + insert –> Getter and Setter
方法的重载
Alt + insert –> Override Methods…
// 创建重载方法后,IDEA 会自动写一个注解(有功能的注释) @Override public void overrideMethod() { // 方法体 }包裹选中的代码
Ctrl + Alt + T
自动清除无效import
Settings -> Editor -> General -> Auto Import -> Java
勾选
Optimize imports on the fly。
在底部的Git标签页中,添加Local Changes标签页
效果:

操作:File - Settings - Version Control - Commit - 取消勾选Use non-modal commit interfce
去掉import自动合并
Endpoints:查看web应用程序的请求映射view-Tool Windows-Endpoints

日志
设置快捷生成日志的提示:
- File - Settings - Editor - Live Templates - 加号 - Live Template

Abbreviation填写期望的快捷缩写,Template text填写期望的填充效果
private static final Logger LOGGER = LoggerFactory.getLogger($CLASS_NAME$.class);Edit Variables… - Expression选择
className()左下角
Define,设置生效的场景:java: declaration
文件和代码模板
创建类时自动添加注释
- File - Settings - Editor - File and Code Tmplates
- Scheme:
Default - Includes - File Header
Debug
断点
IDEA中有4种基础断点:
- 行断点
- 方法断点
- 属性断点
- 异常断点
以此4种断点为基础,衍生出了4种断点:
- **条件断点。**右键断点,添加Condition。只有在满足条件时,断点才会阻断程序运行。
- 源断点。可以在不阻断代码的情况下,在控制台上输出某些信息。
Shift+鼠标左键 添加断点,勾选"Breakpoint hit" message和Evaluate and log
"Breakpoint hit" message:在调试控制台中输出断点被触发的消息。默认消息为 “Breakpoint hit at <文件名>:<行号>”。Evaluate and log:执行输入框中输入的表达式,并将结果输出到控制台。

- 多线程断点。模拟线程的轮询执行。
右键断点,Suspend选择Thread。实际debug过程中,可以在Debugger的标签页看到不同的线程,通过切换线程进行Debug,就能模拟线程的轮询执行。
- **Stream断点。**在Stream的代码行加上断点,就可以在运行到这行代码时,点击
Trace Current Stream Chain,看到数据的流转情况。

进入断点之后的调试技巧
Step Over:一行行往下执行,不会进入方法内部。
Step Into:进入方法内部。但是一些外部Jar包的方法会无法进入。如果想要进入外部Jar包方法,可以使用Force Step Into
Step Out:跳转到调用方法处。Run to Cursor:跳转到鼠标光标所在位置。
回退重新执行方法 Reset Frame
在调用栈中,点击希望回退的位置对应方法左侧的回退图标Reset Frame,就能实现回退。

跳转至下一个断点 Resume Program
如果没有后续断点,就会将程序执行至结束。
观察指定变量的变化情况 Watches
Debug过程中,所有的变量都会被展示在Debugger栏中,如果只想要观察某几个特定的变量,不便于观察。
勾选Debug标签页右侧Layout Settings下的Separate Watches选项。再添加一个想要监听的变量或表达式,就能只关注自己关心的变量信息。
手动修改变量的值
通过Evaluate Expression...,就可以实现手动修改变量值,以快速进入某个代码逻辑中。
手动抛出异常,测试异常处理的代码逻辑
选择栈中方法后,右键选择Throw Exception:
例如构造一个空指针异常:
监控断点的开销
有时候打了断点会让项目执行很慢,尤其是一些复杂的条件断点。勾选Overhead,就能看到断点的执行次数和执行耗时。
如果发现断点耗时,可以去掉,节约资源。
添加JVM启动参数

-Xms:堆内存最小值,例如-Xms1m-Xmx:堆内存最大值,例如-Xmx1m-Xss:指定线程栈的大小通常不需要修改值,如果遇到栈溢出报错,可以适当增大;如果需要创建大量线程,可以适当减小。
-XX:+HeapDumpOnOutOfMemoryError:发生OOM后,生成相应的dump文件-XX:HeapDumpPath=[指定的存放路径]:dump文件存放路径-Xlog:gc*:查看GC日志-XX:MaxTenuringThreshold:设置对象从Survivor区晋升到老年代的年龄阈值-Dserver.port=[目标端口号]:指定运行的端口
Spring Boot多实例运行
参考:IntelliJIDEA中实现Spring Boot多实例运行:修改配置与批量启动详解-CSDN博客
允许多实例
右上角工具栏 - 选择Edit Configurations...
选择目标Spring Boot项目 - Modify options - Allow multiple instances(好像也不用勾选?)

指定端口
参照添加JVM启动参数章节,添加-Dserver.port=[目标端口号],保存。
批量操作
Copy Configuration…,指定不同的端口。点击IDEA左下角的Services,如果没有显示Spring Boot项目的启动类,选择Run Configuration... - Spring Boot,就能够显示。
可以进行批量操作,启动后会显示服务对应的端口:
方式二?直接Copy Configuration