IntelliJ IDEA 是 JetBrains 公司开发的 Java 集成开发环境,被公认为业界最优秀的 Java IDE 之一。本指南涵盖从基础操作到高级技巧的全面内容,帮助开发者充分发挥这款强大工具的潜力。
IntelliJ IDEA 基于 IntelliJ Platform 构建,这是一个模块化的 IDE 框架。理解其架构有助于更好地利用 IDE 的功能:
核心组件层次:
┌─────────────────────────────────────────┐
│ 用户界面层 (UI Layer) │
│ - 编辑器、工具窗口、对话框、菜单 │
├─────────────────────────────────────────┤
│ 语言支持层 (Language Support) │
│ - PSI (Program Structure Interface) │
│ - 语法高亮、代码分析、重构引擎 │
├─────────────────────────────────────────┤
│ 项目模型层 (Project Model) │
│ - 模块系统、依赖管理、构建配置 │
├─────────────────────────────────────────┤
│ 基础设施层 (Infrastructure) │
│ - VCS 集成、数据库工具、应用服务器 │
├─────────────────────────────────────────┤
│ 平台核心层 (Platform Core) │
│ - 组件容器、消息总线、持久化存储 │
└─────────────────────────────────────────┘
PSI (Program Structure Interface) 是 IntelliJ 最独特的技术之一。它将源代码解析为树形结构,使得 IDE 能够深入理解代码语义,而不仅仅是文本处理。PSI 树包含:
Project(项目)
项目是 IDEA 中的顶级组织单位,对应磁盘上的一个目录。项目包含:
.idea 目录)Module(模块)
模块是项目的逻辑分区,具有独立的依赖和设置。一个项目可包含多个模块:
Content Root(内容根)
标记源代码、测试代码、资源文件存放位置的目录。每个模块至少有一个内容根,可配置多个:
target/、node_modules/)IntelliJ IDEA 的配置分为多个层次:
| 配置级别 | 存储位置 | 作用范围 | 版本控制 |
|---|---|---|---|
| IDE 默认 | 安装目录 | 所有项目 | 否 |
| 全局设置 | ~/.config/JetBrains/ |
所有项目 | 否 |
| 项目设置 | .idea/ 目录 |
当前项目 | 是(建议) |
| 运行配置 | .idea/runConfigurations/ |
当前项目 | 是(建议) |
关键配置文件:
.idea/
├── .gitignore # 忽略部分 IDE 生成的文件
├── misc.xml # JDK 设置、项目语言级别
├── modules.xml # 模块列表
├── vcs.xml # 版本控制配置
├── compiler.xml # 编译器设置
├── encodings.xml # 文件编码设置
├── runConfigurations/ # 运行/调试配置
│ ├── Application_main.xml
│ └── SpringBoot_App.xml
└── inspectionProfiles/ # 代码检查配置
└── Project_Default.xml
版本控制建议:
misc.xml、modules.xml、vcs.xml、运行配置workspace.xml、tasks.xml、usage.statistics.xmlIntelliJ IDEA 提供多种项目创建方式:
New Project(新建项目)
适用于从零开始创建项目,支持:
Open(打开现有项目)
识别项目类型并自动配置:
pom.xml → Maven 项目build.gradle → Gradle 项目.idea/ 目录 → IDEA 项目.project → 可导入Get from VCS(从版本控制获取)
支持 Git、SVN、Mercurial 等,自动克隆并打开项目。
创建新模块:
File → New → Module...
模块设置关键选项:
Sources(源代码)
Paths(路径)
Dependencies(依赖)
依赖顺序与导出:
典型微服务项目结构:
my-microservices/
├── .idea/
├── pom.xml # 父 POM(聚合项目)
├── common-module/ # 公共模块
│ ├── pom.xml
│ └── src/
├── user-service/ # 用户服务
│ ├── pom.xml
│ └── src/
├── order-service/ # 订单服务
│ ├── pom.xml
│ └── src/
└── api-gateway/ # API 网关
├── pom.xml
└── src/
配置步骤:
File → New → Module,选择父项目user-service 中添加对 common-module 的依赖<modules>模块间依赖关系可视化:
右键项目 → Diagrams → Show Module Dependencies
添加 JAR 库:
项目级库(Project Library)
File → Project Structure → Libraries → + → Java
全局库(Global Library)
File → Project Structure → Global Libraries
Maven/Gradle 依赖
Maven 工具窗口 → Show Dependencies依赖冲突解决:
Maven 工具窗口 → 右键依赖 → Exclude
IntelliJ IDEA 的编辑器不仅仅是文本输入区域,它是一个智能代码理解环境:
编辑器区域组成:
┌─────────────────────────────────────────────┐
│ 面包屑导航 (Breadcrumbs) │
├─────────────┬───────────────────────────────┤
│ │ │
│ 装订线区 │ 编辑区域 │
│ (Gutter) │ (Editor Area) │
│ │ │
│ • 行号 │ │
│ • 断点标记 │ │
│ • 书签标记 │ │
│ • 代码折叠 │ │
│ • 变更标记 │ │
│ │ │
├─────────────┴───────────────────────────────┤
│ 状态栏 (Status Bar) │
└─────────────────────────────────────────────┘
面包屑导航 (Breadcrumbs)
显示当前光标位置的类/方法层级,支持:
Settings → Editor → Breadcrumbs)装订线区 (Gutter)
+ / - 展开/折叠代码块F11 添加,Ctrl+F11 带编号IntelliJ IDEA 提供三层代码补全机制:
1. 基础补全 (Basic Completion)
快捷键:Ctrl+Space
2. 智能补全 (Smart Completion)
快捷键:Ctrl+Shift+Space
3. 语句补全 (Statement Completion)
快捷键:Ctrl+Shift+Enter
高级补全技巧:
后缀补全 (Postfix Completion)
输入表达式后追加后缀,按 Tab 转换:
| 后缀 | 示例输入 | 转换结果 |
|---|---|---|
.var |
new ArrayList<>().var |
List<> list = new ArrayList<>(); |
.if |
obj != null.if |
if (obj != null) { ... } |
.for |
items.for |
for (Item item : items) { ... } |
.fori |
items.fori |
for (int i = 0; i < items.size(); i++) |
.sout |
"result: " + value.sout |
System.out.println("result: " + value); |
.return |
calculate().return |
return calculate(); |
.try |
riskyOperation().try |
try { riskyOperation(); } catch(...) { ... } |
.cast |
object.cast |
(TargetType) object |
.nn |
obj.nn |
if (obj != null) { ... } |
.null |
obj.null |
if (obj == null) { ... } |
模板补全 (Live Templates)
预定义代码片段,输入缩写后按 Tab 展开:
| 缩写 | 描述 | 展开结果 |
|---|---|---|
psvm / main |
主方法 | public static void main(String[] args) { ... } |
sout |
标准输出 | System.out.println(); |
soutv |
输出变量 | System.out.println("var = " + var); |
soutm |
输出方法名 | System.out.println("ClassName.methodName"); |
iter |
增强 for 循环 | for (Object o : collection) { ... } |
itco |
带计数器迭代 | for (int i = 0; i < collection.size(); i++) { ... } |
ifn |
空值检查 | if (var == null) { ... } |
inn |
非空检查 | if (var != null) { ... } |
psfi |
静态 final | public static final int |
thr |
抛出异常 | throw new |
自定义模板:Settings → Editor → Live Templates
Alt+Insert (Generate)
快速生成常用代码结构:
智能生成示例:
生成 Builder 模式:
// 在类中按 Alt+Insert → Builder
public class User {
private String name;
private int age;
// 自动生成:
public static Builder builder() { return new Builder(); }
public static class Builder {
private User target = new User();
public Builder name(String name) {
target.name = name;
return this;
}
public Builder age(int age) {
target.age = age;
return this;
}
public User build() { return target; }
}
}
列选择模式 (Column Selection)
Alt+Shift+Insert 切换Alt 拖动鼠标多光标编辑
Alt+Click:在点击位置添加光标Alt+Shift+Click:拖出矩形选择区域Ctrl+Shift+Alt+J:选中所有匹配的内容(批量编辑)Alt+J:逐个选中相同单词代码折叠
Ctrl+NumPad+ / Ctrl+=:展开当前区域Ctrl+NumPad- / Ctrl+-:折叠当前区域Ctrl+Shift+NumPad+:全部展开Ctrl+Shift+NumPad-:全部折叠Ctrl+Alt+T:折叠代码块( surrounds with...)意图动作 (Intentions)
黄色灯泡图标,按 Alt+Enter:
Go to Class(跳转到类)
Ctrl+NFBV 匹配 FooBarView)/ 跳转到内部类Go to File(跳转到文件)
Ctrl+Shift+Nresources/config.xml)Go to Symbol(跳转到符号)
Ctrl+Shift+Alt+NRecent Files(最近文件)
Ctrl+ECtrl+E 显示最近编辑的文件Structure 工具窗口
Alt+7Navigate to Declaration(跳转到声明)
Ctrl+B 或 Ctrl+ClickNavigate to Implementation(跳转到实现)
Ctrl+Alt+BNavigate to Type Declaration(跳转到类型声明)
Ctrl+Shift+BNavigate to Super Method(跳转到父类方法)
Ctrl+UFind Usages(查找使用)
Alt+F7Highlight Usages in File(高亮使用)
Ctrl+Shift+F7F3 / Shift+F3 在匹配项间跳转Call Hierarchy(调用层次)
Ctrl+Alt+HType Hierarchy(类型层次)
Ctrl+HFind in Path(全局搜索)
Ctrl+Shift+F*.java)Replace in Path(全局替换)
Ctrl+Shift+RSearch Everywhere(随处搜索)
Shift重构是 IntelliJ IDEA 的核心优势。所有重构都保证语义正确性,自动处理关联变更。
重构菜单
Ctrl+Alt+Shift+T(Refactor This)右键 → RefactorRename(重命名)
Shift+F6Change Signature(修改签名)
Ctrl+F6Extract Method(提取方法)
Ctrl+Alt+MExtract Variable(提取变量)
Ctrl+Alt+VExtract Field(提取字段)
Ctrl+Alt+FExtract Constant(提取常量)
Ctrl+Alt+CExtract Parameter(提取参数)
Ctrl+Alt+PInline(内联)
Ctrl+Alt+NMove(移动)
F6Pull Members Up(成员上移)
Ctrl+Alt+UPush Members Down(成员下移)
Ctrl+Alt+DSafe Delete(安全删除)
Alt+DeleteType Migration(类型迁移)
Ctrl+Shift+F6启动调试
Shift+F9断点类型
行断点(Line Breakpoint)
条件断点(Conditional Breakpoint)
i > 100 && user != null异常断点(Exception Breakpoint)
Run → View Breakpoints → + → Java Exception Breakpoints方法断点(Method Breakpoint)
字段观察点(Field Watchpoint)
单步执行
F8 (Step Over):执行当前行,不进入方法F7 (Step Into):进入方法内部Shift+F8 (Step Out):执行到方法返回Alt+F9 (Run to Cursor):执行到光标位置断点管理
Ctrl+F8:切换行断点Ctrl+Shift+F8:查看所有断点Mute Breakpoints:临时禁用所有断点变量查看
表达式求值
Alt+F8Stream 调试(Java 8+)
list.stream()
.filter(x -> x > 10) // 点击这里的 trace 图标
.map(x -> x * 2)
.collect(Collectors.toList());
异步堆栈跟踪
Memory View(内存视图)
Force Return(强制返回)
Throw Exception(抛出异常)
IntelliJ IDEA 提供深度 Git 集成,几乎不需要命令行。
版本控制工具窗口
Alt+9提交变更
Ctrl+K分支操作
查看历史
VCS → Git → Show History冲突解决
Annotate(追溯)
右键装订线 → AnnotateCompare with...(对比)
Ctrl+D:对比选中文件与编辑器内容Ctrl+Shift+D:对比任意两个文件Shelve Changes(搁置变更)
除 Git 外,还支持:
Maven 工具窗口
View → Tool Windows → Maven生命周期执行
依赖管理
Maven 设置
Settings → Build → Build Tools → MavenGradle 工具窗口
Gradle 配置
Settings → Build → Build Tools → Gradle任务执行
--continuous)创建运行配置
Run → Edit Configurations配置类型
Application:普通 Java 应用
Spring Boot:Spring Boot 应用
JUnit/TestNG:单元测试
Remote JVM Debug:远程调试
Docker:容器化应用
运行配置共享
.idea/runConfigurations/IntelliJ IDEA 内置 2000+ 代码检查规则。
检查级别
检查配置
Settings → Editor → Inspections编辑器内显示
快速修复
Alt+Enter:显示修复建议Analyze → Inspect Code
Code Cleanup
运行带覆盖率
覆盖率报告
覆盖率工具窗口
插件市场
Settings → Plugins → Marketplace插件仓库
开发效率
框架支持
前端开发
数据库工具
其他工具
自定义插件开发:
内存配置
编辑 idea.vmoptions:
-Xms1024m # 初始堆内存
-Xmx4096m # 最大堆内存
-XX:ReservedCodeCacheSize=512m
Help → Edit Custom VM Options
索引优化
右键目录 → Mark Directory as → Excluded省电模式
File → Power Save Mode减少模块数量
延迟加载
右键模块 → Load/Unload Modules构建优化
Settings → Build → Compiler → Build project automatically任务管理器
Help → Activity Monitor性能报告
Help → Collect Logs and Diagnostic Data| 操作 | Windows/Linux | macOS |
|---|---|---|
| 基础补全 | Ctrl+Space |
Ctrl+Space |
| 智能补全 | Ctrl+Shift+Space |
Ctrl+Shift+Space |
| 语句补全 | Ctrl+Shift+Enter |
Cmd+Shift+Enter |
| 快速修复 | Alt+Enter |
Opt+Enter |
| 生成代码 | Alt+Insert |
Cmd+N |
| 重命名 | Shift+F6 |
Shift+F6 |
| 提取方法 | Ctrl+Alt+M |
Cmd+Opt+M |
| 提取变量 | Ctrl+Alt+V |
Cmd+Opt+V |
| 内联 | Ctrl+Alt+N |
Cmd+Opt+N |
| 格式化代码 | Ctrl+Alt+L |
Cmd+Opt+L |
| 优化导入 | Ctrl+Alt+O |
Cmd+Opt+O |
| 注释/取消注释 | Ctrl+/ |
Cmd+/ |
| 块注释 | Ctrl+Shift+/ |
Cmd+Shift+/ |
| 复制行 | Ctrl+D |
Cmd+D |
| 删除行 | Ctrl+Y |
Cmd+Backspace |
| 上下移动行 | Alt+Shift+↑/↓ |
Opt+Shift+↑/↓ |
| 操作 | Windows/Linux | macOS |
|---|---|---|
| 随处搜索 | Double Shift |
Double Shift |
| 查找类 | Ctrl+N |
Cmd+O |
| 查找文件 | Ctrl+Shift+N |
Cmd+Shift+O |
| 查找符号 | Ctrl+Shift+Alt+N |
Cmd+Opt+O |
| 跳转到声明 | Ctrl+B |
Cmd+B |
| 跳转到实现 | Ctrl+Alt+B |
Cmd+Opt+B |
| 查找使用 | Alt+F7 |
Opt+F7 |
| 文件结构 | Ctrl+F12 |
Cmd+F12 |
| 最近文件 | Ctrl+E |
Cmd+E |
| 后退/前进 | Ctrl+Alt+←/→ |
Cmd+Opt+←/→ |
| 跳转到行 | Ctrl+G |
Cmd+L |
| 操作 | Windows/Linux | macOS |
|---|---|---|
| 启动调试 | Shift+F9 |
Ctrl+D |
| 切换断点 | Ctrl+F8 |
Cmd+F8 |
| 单步跳过 | F8 |
F8 |
| 单步进入 | F7 |
F7 |
| 跳出 | Shift+F8 |
Shift+F8 |
| 运行到光标 | Alt+F9 |
Opt+F9 |
| 计算表达式 | Alt+F8 |
Opt+F8 |
| 恢复运行 | F9 |
Cmd+Opt+R |
| 操作 | Windows/Linux | macOS |
|---|---|---|
| 重构菜单 | Ctrl+Alt+Shift+T |
Ctrl+T |
| 重命名 | Shift+F6 |
Shift+F6 |
| 修改签名 | Ctrl+F6 |
Cmd+F6 |
| 提取方法 | Ctrl+Alt+M |
Cmd+Opt+M |
| 提取变量 | Ctrl+Alt+V |
Cmd+Opt+V |
| 提取字段 | Ctrl+Alt+F |
Cmd+Opt+F |
| 提取常量 | Ctrl+Alt+C |
Cmd+Opt+C |
| 提取参数 | Ctrl+Alt+P |
Cmd+Opt+P |
| 移动 | F6 |
F6 |
| 复制 | F5 |
F5 |
| 安全删除 | Alt+Delete |
Cmd+Delete |
| 操作 | Windows/Linux | macOS |
|---|---|---|
| 提交 | Ctrl+K |
Cmd+K |
| 更新项目 | Ctrl+T |
Cmd+T |
| 推送 | Ctrl+Shift+K |
Cmd+Shift+K |
| 查看变更 | Alt+9 |
Cmd+9 |
| 下一个差异 | F7 |
F7 |
| 上一个差异 | Shift+F7 |
Shift+F7 |
IntelliJ IDEA 是一款功能极其丰富的 IDE,本指南涵盖了其主要功能和使用技巧。掌握这些技能将显著提升开发效率。
学习建议:
资源推荐:
本文档持续更新,建议配合实际 IDE 操作学习。