IDEA
IntelliJ IDEA 是 JetBrains 出品的 Java/Kotlin 主流 IDE,内置智能补全、重构、调试、版本控制、数据库、Docker 等能力。
项目与 JDK 配置
File → Project Structure(Ctrl+Alt+Shift+S)
├── Project Settings → Project:选择 SDK、语言级别
├── Project Settings → Modules:源码根、资源根、测试根
└── Platform Settings → SDKs:管理本机 JDK 版本
File → Settings(Ctrl+Alt+S)
└── Build, Execution, Deployment → Build Tools → Maven/Gradle
设置 JVM 参数、并发构建、仓库地址
Maven 本地仓库路径、settings.xml 均在此处配置,与 Maven 联动。
核心快捷键
导航
| 快捷键 | 功能 |
|---|---|
Double Shift | 全局搜索(文件、类、符号、操作) |
Ctrl+N | 搜索类 |
Ctrl+Shift+N | 搜索文件 |
Ctrl+Alt+Shift+N | 搜索符号(方法、字段) |
Ctrl+Shift+A | 搜索 IDE 功能/Action |
Ctrl+E | 最近打开的文件 |
Ctrl+Shift+E | 最近编辑的文件 |
Alt+F7 | 查找用法(Find Usages) |
Ctrl+B / Ctrl+Click | 跳转到声明 |
Ctrl+Alt+B | 跳转到实现 |
Ctrl+U | 跳转到父类/接口方法 |
Ctrl+H | 类继承层级 |
Ctrl+Alt+H | 方法调用层级 |
Ctrl+G | 跳转到指定行 |
Alt+←/→ | 前进/后退(导航历史) |
Ctrl+[ / Ctrl+] | 跳转到代码块起止 |
编辑
| 快捷键 | 功能 |
|---|---|
Alt+Enter | 快速修复 / 意图操作(Show Intention Actions) |
Ctrl+Space | 基础代码补全 |
Ctrl+Shift+Space | 智能类型补全 |
Ctrl+D | 复制当前行/选中 |
Ctrl+Y | 删除当前行 |
Ctrl+Shift+↑/↓ | 上下移动语句 |
Alt+Shift+↑/↓ | 上下移动行 |
Ctrl+/ | 行注释切换 |
Ctrl+Shift+/ | 块注释切换 |
Ctrl+Alt+L | 格式化代码 |
Ctrl+Alt+O | 优化 import |
Ctrl+Shift+U | 大小写切换 |
Ctrl+W | 扩展选区 |
Ctrl+Shift+W | 缩小选区 |
Alt+J | 多光标:选中下一个相同词 |
Ctrl+Alt+Shift+J | 多光标:选中所有相同词 |
重构
| 快捷键 | 功能 |
|---|---|
Shift+F6 | 重命名(Rename)—— 所有引用同步更新 |
Ctrl+Alt+M | 提取方法(Extract Method) |
Ctrl+Alt+V | 提取变量(Extract Variable) |
Ctrl+Alt+F | 提取字段(Extract Field) |
Ctrl+Alt+C | 提取常量(Extract Constant) |
Ctrl+Alt+P | 提取参数(Extract Parameter) |
F6 | 移动类/方法 |
Ctrl+F6 | 修改方法签名 |
Alt+Delete | 安全删除(检查引用) |
运行与调试
| 快捷键 | 功能 |
|---|---|
Shift+F10 | 运行最近配置 |
Shift+F9 | 调试最近配置 |
Ctrl+Shift+F10 | 运行当前文件/方法 |
F8 | 单步跳过(Step Over) |
F7 | 单步进入(Step Into) |
Shift+F8 | 步出(Step Out) |
F9 | 恢复执行(Resume) |
Alt+F9 | 运行到光标处 |
Alt+F8 | 求值表达式(Evaluate Expression) |
Ctrl+F8 | 切换断点 |
Ctrl+Shift+F8 | 查看所有断点 |
代码生成
Live Templates(实时模板)
输入缩写后按 Tab 展开:
| 缩写 | 展开内容 |
|---|---|
sout | System.out.println(); |
soutv | System.out.println("var = " + var); |
fori | for (int i = 0; i < n; i++) {} |
iter | 增强 for 循环 |
psvm | public static void main(String[] args) {} |
thr | throw new |
nn | if (obj != null) {} |
自定义 Live Template:Settings → Editor → Live Templates
Postfix Completion
在表达式后输入缩写:
| 缩写 | 效果(在 expr 后) |
|---|---|
.var | Type name = expr; |
.null | if (expr == null) {} |
.notnull | if (expr != null) {} |
.for | for (Type item : expr) {} |
.not | !expr |
.sout | System.out.println(expr) |
.return | return expr; |
.throw | throw expr; |
.try | try { } catch (Exception e) { } 包裹 |
代码生成菜单(Alt+Insert)
在类中按 Alt+Insert 可快速生成:
- Constructor、Getter/Setter、
toString()、equals()/hashCode() Override MethodsTest(跳转 / 新建测试类)- Spring Bean 注入代码
调试技巧
断点类型
| 类型 | 用途 |
|---|---|
| 行断点 | 最常用,执行到该行时暂停 |
| 条件断点 | 右键断点设置条件表达式,只在满足时暂停 |
| 日志断点(非挂起) | 不暂停,仅打印表达式到控制台 |
| 方法断点 | 进入 / 离开方法时暂停 |
| 异常断点 | 抛出指定异常时暂停(Ctrl+Shift+F8 添加) |
| Field Watchpoint | 字段被读写时暂停 |
Evaluate Expression(Alt+F8)
在断点处可执行任意 Java 代码:调用方法、修改变量值、查看复杂对象结构。
Drop Frame(回退调用帧)
在调试面板中右键帧 → Drop Frame,回到方法入口重新执行(不能回退 I/O 和数据库副作用)。
远程调试
目标 JVM 启动时加 JVM 参数:
-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=*:5005IDEA 中:Run → Edit Configurations → Remote JVM Debug,填写主机和端口后启动调试。
适合调试 Docker 容器中的应用,与 Docker 配合使用。
版本控制集成
Git 的主要操作均可在 IDEA 中可视化完成:
| 面板 / 操作 | 位置 |
|---|---|
| Commit 面板 | Alt+0(Commit Tool Window) |
| Git Log 图形 | Alt+9(Git Tool Window) |
| 冲突解决(3 路合并) | Git → Resolve Conflicts |
| Annotate(git blame) | 行号处右键 → Annotate with Git Blame |
| Revert / Rollback | 右键文件 → Git → Rollback |
| Stash | Git → Stash Changes |
| Interactive Rebase | Git → Rebase Interactively |
Spring Boot 支持
安装 Spring Boot 插件(Ultimate 版内置)后:
- Spring Initializr:
File → New Project → Spring快速创建项目 - Run Dashboard:统一管理多个 Spring Boot 实例
- Endpoints 面板:可视化浏览 Actuator 端点
- Bean 依赖图:查看 Spring Bean 依赖关系(
Show Bean Dependencies) - 配置文件补全:
application.yml中自动补全配置键
数据库工具
IDEA Ultimate 内置 Database 工具,支持 MySQL、PostgreSQL、Redis 等:
右侧 DB 图标 → + → Data Source
填写 JDBC URL、用户名、密码 → Test Connection
- SQL 编辑器带语法高亮、执行计划分析
- 可直接导入导出数据
- 支持与 Navicat 相同的常用 DDL 操作
性能分析集成
内置 Async Profiler(Ultimate)
Run → Profile,直接在 IDEA 中启动 CPU/内存采样,结果以 Flame Graph 展示。
JProfiler 集成
安装 JProfiler 插件后,工具栏出现 JProfiler 按钮,可一键在 JProfiler 中启动当前配置进行深度分析。
Arthas 集成
社区插件 Arthas Idea 可快速生成 Arthas 命令(watch/trace/ognl),直接复制到目标机器执行。
插件推荐
| 插件 | 用途 |
|---|---|
| Lombok | 处理 @Data、@Builder 等注解,避免红色报错 |
| MapStruct Support | MapStruct 注解跳转支持 |
| SonarLint | 本地静态代码检查 |
| Alibaba Java Coding Guidelines | 阿里规约实时提示 |
| GitToolBox | 行内显示 git blame 信息 |
| String Manipulation | 字符串格式互转(驼峰/下划线/Base64) |
| MybatisX | Mapper 方法与 XML 之间互相跳转 |
| JRebel | 热部署(修改代码无需重启,收费) |
| HTTP Client | 内置类 Postman,.http 文件发送请求 |
| Docker | Docker 容器管理与日志查看 |
内存与性能设置
Help → Change Memory Settings
推荐设置(8GB+ 内存机器):
-Xms1g
-Xmx4g
-XX:ReservedCodeCacheSize=512m
自定义 VM 参数:Help → Edit Custom VM Options
开启索引加速(降低 CPU 占用):
Settings → Advanced Settings → Reduce the number of indexing threads
常用技巧
Ctrl+Alt+Shift+U:查看 Maven / Gradle 依赖关系图Ctrl+P:在方法调用处显示参数信息Ctrl+Q:快速文档(显示 Javadoc)Alt+F1:当前文件在项目树 / 文件系统 / Git 中定位Ctrl+Shift+T:快速跳转到 / 生成测试类- 多剪贴板:
Ctrl+Shift+V弹出历史剪贴板记录 - 列选择模式:
Alt+Shift+Insert,再用鼠标拖拽
HTTP Client(内置接口测试)
IDEA Ultimate 内置 HTTP Client,.http 文件即接口文档:
### 登录
POST {{baseUrl}}/api/auth/login
Content-Type: application/json
{
"username": "admin",
"password": "123456"
}
> {%
client.global.set("token", response.body.data.token);
%}
### 查询用户列表
GET {{baseUrl}}/api/users?page=1&size=10
Authorization: Bearer {{token}}在 http-client.env.json 定义多环境变量:
{
"dev": { "baseUrl": "http://localhost:8080" },
"prod": { "baseUrl": "https://api.example.com" }
}运行按钮旁可切换环境;响应结果支持 JSON 格式化预览。适合与 Apifox 配合——复杂用例在 Apifox,简单冒烟测试用 .http 文件。
Local History(本地历史)
IDEA 自动保存每次编辑快照,无需 Git 也能回溯:
右键文件 → Local History → Show History
- 可查看每次修改的 diff,选择任意版本恢复
- Git 提交前误删代码时,是最后防线
- 保留约 5 天历史(根据磁盘空间动态调整)
Scratch Files(临时文件)
不属于任何项目的临时代码文件,关闭项目后仍保留:
Ctrl+Alt+Shift+Insert
选择语言(Java、JSON、SQL、HTTP…),用于:
- 临时测试代码片段
- 格式化粘贴的 JSON/XML
- 写 SQL 草稿后复制到 MyBatis XML
存储位置:~/.config/JetBrains/<IDE版本>/scratches/
Code Coverage(代码覆盖率)
运行测试时选择「Run with Coverage」(Shift+F10 旁的下拉):
- 编辑器左侧沟槽显示绿(覆盖)/ 红(未覆盖)行
Coverage面板展示按包/类统计的行覆盖率、分支覆盖率- 可导出 HTML 报告
与 JaCoCo 集成(Maven 插目标 jacoco:report)可生成标准化报告上传到 SonarQube。
File Templates(文件模板)
新建文件时自动填充内容:
Settings → Editor → File and Code Templates
常见定制:
// Java 类模板:自动加版权注释
/**
* @author ${USER}
* @date ${DATE}
*/
public class ${NAME} {
}内置变量:${USER}、${DATE}、${TIME}、${NAME}(类名)、${PACKAGE_NAME}
内置终端
Alt+F12 打开内置终端,默认使用系统 Shell(Windows 可配置为 Git Bash 或 PowerShell):
Settings → Tools → Terminal → Shell path
Terminal 会自动激活 Maven/Gradle 项目的环境,可直接运行 mvn、./gradlew 命令,与编辑器共享项目路径。