🧠

IntelliJ IDEA

THE JAVA IDE · 从入门到专家 · macOS 篇

📑 目录
  1. JetBrains 生态与 IntelliJ IDEA 版本选择
  2. macOS 安装、JVM 调优与项目初始化
  3. 导航与搜索 — 键盘驱动的超高速操作
  4. 代码编辑 — Live Templates、重构、生成
  5. 调试 — 断点、条件、表达式求值
  6. Git 集成 — 从提交到冲突解决
  7. 插件推荐 — 10 个必装插件
  8. 高阶实战 — HTTP Client、Database、Docker、Spring
1
JetBrains 生态与版本选择

JetBrains 全家桶

JetBrains 是捷克 IDE 厂商,旗下每款 IDE 针对特定技术栈深度优化:

IDE核心技术栈相当于
IntelliJ IDEA UltimateJava + Spring + JVM + Web + DB + Docker全能旗舰
IntelliJ IDEA CommunityJava + Kotlin + Groovy + Gradle/Maven免费开源版
PyCharmPython + Django/Flask + Jupyter + Data SciencePython 专用
WebStormJavaScript/TypeScript + React/Vue/Angular + Node.js前端专用
GoLandGo + gRPC + Docker + KubernetesGo 专用
DataGripSQL + 所有主流数据库管理数据库工具
RiderC# + .NET + Unity.NET 专用

Community vs Ultimate — 怎么选?

Community(免费):如果只写纯 Java SE、Kotlin、Gradle/Maven 项目,Community 完全够用。
Ultimate(付费):如果你需要 Spring Boot、Jakarta EE、数据库工具、JavaScript/TypeScript、Docker、Kubernetes、HTTP Client — 那就上 Ultimate。学生/开源项目可申请免费 License。

💡 省钱技巧

如果你是 Java + Spring 开发,IntelliJ IDEA Ultimate 包含了 WebStorm 和 DataGrip 70% 的功能。不需要额外买 WebStorm。如果你只做 Python → PyCharm,只做 Go → GoLand。Ultimate 是全栈瑞士军刀,其他 IDE 是专精工具。

2
macOS 安装、JVM 调优与项目初始化

安装

macOS 安装方式
# 方式1:JetBrains Toolbox(推荐,统一管理所有 JetBrains IDE 的版本更新)
# 下载 https://www.jetbrains.com/toolbox-app/
# 通过 Toolbox 安装/更新/回退所有 JetBrains IDE

# 方式2:Homebrew
brew install --cask intellij-idea          # Ultimate
brew install --cask intellij-idea-ce       # Community

# 方式3:官网下载 .dmg
# https://www.jetbrains.com/idea/download/
# 选择 Apple Silicon (.dmg) 版本

macOS JVM 调优(提速利器)

IntelliJ 本身是一个 JVM 应用,默认堆内存只有 2GB,大项目会卡。在 macOS 上这样调优:

Help → Edit Custom VM Options
# 关键参数调整(按你的 Mac 内存调整)
# 16GB Mac: Xmx=4096m, 32GB+: Xmx=8192m

-Xms2048m
-Xmx4096m
-XX:ReservedCodeCacheSize=512m
-XX:+UseG1GC
-XX:SoftRefLRUPolicyMSPerMB=50
-XX:CICompilerCount=2
-XX:+HeapDumpOnOutOfMemoryError

# 以下适用于 Apple Silicon (M1/M2/M3/M4)
-XX:+UseStringDeduplication
--add-opens=java.base/java.lang=ALL-UNNAMED
⚠️ 注意

macOS 上的 IntelliJ 不要用 Java 8 运行(IDE 本身)。Toolbox 安装版自带 JBR (JetBrains Runtime),性能最好。如果用它,不需要单独安装 JDK。

macOS 键盘布局调整

macOS 的 键在 IntelliJ 中承担了大量快捷键,但 macOS 系统默认的键位切换(输入法切换)常和 IntelliJ 快捷键冲突。建议:

系统设置 → 键盘 → 键盘快捷键 → 输入法:把"选择上一个输入法"的快捷键从 Space 改为其他组合(如 Space),解绑 IntelliJ 的基础代码补全快捷键
IntelliJ 设置 → Keymap:选择 macOSIntelliJ IDEA Classic (macOS)

创建第一个项目

macOS 上的项目初始化实战
# 方式1:New Project → Spring Initializr(推荐 Spring Boot 项目)
#   Language: Java, Type: Maven, Spring Boot: 3.x
#   Dependencies: Spring Web, Spring Data JPA, Lombok, MySQL Driver

# 方式2:从现有代码导入
#   File → Open → 选择包含 pom.xml / build.gradle 的目录
#   IntelliJ 自动识别 Maven/Gradle 项目

# 方式3:从 Git 克隆
#   File → New → Project from Version Control → 粘贴 Git URL
#   IntelliJ 会在克隆后询问是否打开为项目

Project SDK 配置

macOS JDK 管理 — 推荐用 SDKMAN!
# 安装 SDKMAN!(Java 版本管理器)
curl -s "https://get.sdkman.io" | bash
source "$HOME/.sdkman/bin/sdkman-init.sh"

# 安装常用 JDK 版本
sdk install java 21.0.2-tem    # LTS,生产环境推荐
sdk install java 17.0.10-tem   # LTS,企业项目常用
sdk install java 11.0.22-tem   # LTS,老项目兼容
sdk default java 21.0.2-tem    # 设置默认版本

# IntelliJ 中: Project Structure → SDK → Add SDK → 选择 SDKMAN! 安装的路径
# 路径: ~/.sdkman/candidates/java/21.0.2-tem
3
导航与搜索 — 键盘驱动的超高速操作

IntelliJ 之王在于你可以完全不用鼠标。以下快捷键是 macOS 键位,假设你用 macOS Keymap。

搜索一切 — 最重要的一个快捷键

按两下 ⇧ (Double Shift) — Search Everywhere
# 在弹出框里你可以做所有事:
#   - 输入类名 → 直接跳转到类
#   - 输入文件名 → 直接打开文件
#   - 输入方法名 → 跳转到方法
#   - 输入 Action 名称 → 执行任意 IDE 操作(如 "refactor this")
#   - 输入 Git Branch 名 → 切换分支
#   - 输入设置项 → 直接跳转到对应设置

# 肌肉记忆:遇到任何事 — 双击 ⇧

文件与代码导航

导航快捷键速查(macOS Keymap)
⌘O        打开类 (Navigate → Class)
⌘⇧O      打开文件 (Navigate → File)
⌘⌥O       打开符号/方法 (Navigate → Symbol)
⌘E        最近打开的文件 (Recent Files)
⌘⇧E      最近编辑的位置 (Recent Locations)
⌘[ / ⌘]   前进/后退 (Navigate → Back/Forward)
⌘B        跳转到声明 (Go to Declaration)
⌘⌥B       跳转到实现 (Go to Implementation(s))
⌘U        跳转到父类/父方法 (Go to Super)
⌘F12      文件结构弹出窗 (File Structure Popup)
⌘L        跳转到指定行 (Go to Line)
⌘⇧F7     高亮文件中所有出现 (Highlight Usages in File)
⌘⌥F7      查找所有引用 (Find Usages)
^⌥H       查看方法调用层次 (Call Hierarchy)

搜索与替换

搜索快捷键
⌘F        当前文件内查找
⌘R        当前文件内替换
⌘⇧F      全局搜索 (Find in Files) — 可以限定目录、文件类型、正则
⌘⇧R      全局替换 (Replace in Files)
⌘⇧A      查找 Action (Find Action) — 搜索任何 IDE 操作
⌥F7       查找选中符号的引用
💡 肌肉记忆训练

不要试图一次背所有快捷键。第一周只练这 5 个:⇧⇧ ⌘O ⌘E ⌘B ⌘⌥L。练熟后每周加 3 个新快捷键。两周后你就不想碰鼠标了。

4
代码编辑 — Live Templates、重构、代码生成

Live Templates — 你的代码加速引擎

Live Templates 是 IntelliJ 的"代码片段缩写"。输入缩写 → 按 Tab → 展开为完整代码模板。

高频 Live Templates(先背这 10 个)
# Java
psvm + Tab         → public static void main(String[] args) {}
sout + Tab         → System.out.println();
soutv + Tab        → System.out.println("var = " + var);
soutm + Tab        → System.out.println("ClassName.methodName");
fori + Tab         → for (int i = 0; i < ; i++) {}
iter + Tab         → for (Type item : collection) {}
ifn + Tab          → if (var == null) {}
inn + Tab          → if (var != null) {}

# Spring Boot
@autowired + Tab   → 展开并自动提示需要注入的 Bean
@RestController    → 类级别:创建 RestController

# 自定义 Live Template(Settings → Editor → Live Templates)
# Abbreviation: logm
# Template text:
private static final Logger log = LoggerFactory.getLogger($CLASS_NAME$.class);

# Abbreviation: toj  (JSON 序列化)
# Template text:
objectMapper.writeValueAsString($EXPR$);

重构 — IntelliJ 最强大的能力

重构不是"查找替换",而是语义级的安全重构——IntelliJ 理解你的代码结构,重构时自动更新所有引用。

必学的 6 个重构操作
⇧F6        重命名 (Rename) — 类/方法/变量/包/文件,所有引用自动更新
⌘⌥V       提取变量 (Extract Variable)
⌘⌥M       提取方法 (Extract Method) — 选中代码块 → 生成独立方法
⌘⌥C       提取常量 (Extract Constant)
⌘⌥P       提取参数 (Extract Parameter)
⌘⌥N       内联 (Inline) — 反向操作,把方法/变量展开到调用处
⌘⌥T       包围 (Surround With) — 用 if/try-catch/while 包裹选中代码
^T        重构菜单 (Refactor This) — 显示当前上下文所有可用重构操作

代码生成

生成快捷键
⌘N        生成菜单 (Generate) — Constructor / Getter / Setter / toString / equals & hashCode
^I        实现方法 (Implement Methods) — 快速实现接口
^O        重写方法 (Override Methods) — 快速重写父类方法
⌘J        插入 Live Template 列表
⌘⌥T       包围 (Surround With)

# Lombok 时代(推荐用 Lombok 注解替代生成)
@Data           // @Getter + @Setter + @ToString + @EqualsAndHashCode + @RequiredArgsConstructor
@Builder        // Builder 模式
@AllArgsConstructor
@NoArgsConstructor

代码格式化与优化

格式与清理
⌘⌥L       格式化代码 (Reformat Code)
⌘⌥O       优化导入 (Optimize Imports) — 删除不用的 import,排序
⌘⌥I       自动缩进 (Auto-indent Lines)
⌘⇧↵      补全当前语句 (Complete Current Statement) — 自动加分号、括号
5
调试 — 断点、条件、表达式求值

调试基础

调试快捷键
^D        调试运行 (Debug) — 以 Debug 模式启动
F8        单步跳过 (Step Over) — 不进入方法
F7        单步进入 (Step Into) — 进入方法
⇧F8      单步跳出 (Step Out) — 跳出当前方法
⌥F9       运行到光标 (Run to Cursor)
⌘F8       切换断点 (Toggle Breakpoint)
⌘⇧F8     查看所有断点 (View Breakpoints)
⌥F8       表达式求值 (Evaluate Expression) — 在断点处执行任意代码

实战:条件断点(只在 n==99 时停住)

条件断点实战
# 场景:循环 10000 次,只在第 99 次进入时断点
for (int i = 0; i < 10000; i++) {
    processItem(list.get(i));  // 在这一行打断点
}

# 右键断点(红点)→ 勾选 Condition → 输入
i == 99

# 更多条件示例
user.getName().equals("Levi")              // 只在特定用户时停住
order.getAmount() > 10000                  // 大额订单才断
exception.getMessage().contains("timeout") // 特定错误才断

实战:调试中动态修改值

在断点处修改变量的值
# 断点停住后:
#   - Variables 面板 → 右键任意变量 → Set Value → 输入新值
#   - 或 ⌥F8 → 输入赋值语句 → 按回车

# 实战:故意把金额改成负数,测试异常处理
order.setAmount(-1.0);  // 在 Evaluate Expression 中执行

# 继续运行,观察系统如何处理负数金额

高级断点类型

IntelliJ 支持多种断点,右键断点可设置:
Exception Breakpoints:不打断在某一行,而是任何地方抛出指定异常时暂停(View Breakpoints → + → Java Exception Breakpoints)
Field Watchpoints:在某字段被读写时暂停(非常适合追踪"谁在改这个变量")
Method Breakpoints:进入或退出某个方法时暂停(适合追踪调用链)
Log Breakpoints:不暂停,只输出日志到 Console(适合不中断流程的调试)

💡 调试神技

在 Variables 面板选中一个复杂对象 → 右键 → View as → JSON → 直接把对象以 JSON 格式展示,比盯着 `toString()` 舒服 100 倍。Spring Boot 项目调试必用。

6
Git 集成 — 从提交到冲突解决

为什么不用命令行 Git?

IntelliJ 的 Git 集成不是简单的 GUI 外壳。它的优势:
Diff 视图:代码级高亮差异,比 git diff 直观 10 倍
智能合并:3-way merge 编辑器,左边是你的版本,右边是远程版本,中间是合并结果
局部提交:可以只提交文件中的部分改动(Changelist 功能)
Changelist:把改动分成多组,分别提交(比如"功能A改动"和"重构B改动"分开)
Shelve:暂存未完成的改动(比 git stash 强,可以 shelve 部分文件)

日常 Git 操作

Git 快捷键
⌘K        提交 (Commit) — 打开 Commit 面板
⌘⇧K      推送 (Push)
⌘T        拉取/更新 (Update Project)
⌘D        显示 Diff (Show Diff)
⌘⌥Z       回滚选中改动 (Rollback)
^V        VCS 操作弹出窗 (VCS Operations Popup)

# Commit 面板的最佳实践
#   - Before Commit: Reformat code ✓ / Optimize imports ✓ / Analyze code ✓
#   - Commit Message: 在 Commit 面板里写,标题行 + 空行 + 详细描述

Git 冲突解决

冲突发生时,IntelliJ 打开 3-way merge 编辑器
左面板:你的本地版本
右面板:远程/incoming 版本
中间面板:合并结果(你在这里编辑)

点击 « / » 箭头接受某一边的改动,或手动编辑中间面板。点 Apply 完成合并。这是比命令行 merge 高效得多的方式。

Local History — 你的后悔药

即使你没有 Git commit,IntelliJ 的 Local History 也会自动保存每次编辑的快照。右键文件 → Local History → Show History → 看到所有自动保存的版本,任何版本都可以 diff 和回滚。这个功能救了无数开发者。

7
插件推荐 — 10 个必装插件
插件作用安装原因
Key Promoter X你用鼠标点一个操作,它就弹提示告诉你这个操作的快捷键是什么🔑 肌肉记忆训练器,新手必装
Presentation Assistant执行任何快捷键操作时,屏幕下方显示你按了什么键👀 给别人演示时让观众看到你的操作
Rainbow Brackets每层括号用不同颜色显示👁️ 嵌套多层的括号不再数晕
GitToolBox显示每行代码的最后修改者和时间(inline blame)📋 看到代码就知道谁改的、什么时候改的
String Manipulation一行代码:大小写转换/驼峰↔蛇形/camelCase↔PascalCase/排序/去重/对齐⚡ 处理字符串的神器
.env files support对 .env 文件提供语法高亮和补全📄 现代项目都有 .env
Maven Helper分析 Maven 依赖冲突,一键排除🔗 依赖冲突排查必备
SonarLint实时代码质量检查,边写边提示问题🛡️ 相当于代码审查 AI 在编辑器里
Grep Console对 Console 输出着色/过滤/高亮🎨 日志堆里一眼看到 ERROR
One Dark Theme深色主题,对眼睛友好🌙 比默认 Darcula 更舒服的暗色主题
💡 IntelliJ 内置就能替代很多流行插件

IntelliJ Ultimate 自带很多功能,不需要装插件:Lombok(内置支持)、Database Tools(内置)、Docker(内置)、Kubernetes(内置)、Spring Boot Dashboard(内置)。安装插件前,先看看 IDE 是否已经自带。

8
高阶实战 — HTTP Client、Database、Docker、Spring

HTTP Client — Postman 替代品(IDE 内建)

IntelliJ Ultimate 内置 HTTP Client,可以直接在 IDE 里写 .http 文件发请求。相当于 Postman + 版本管理(文件可以 commit 到 Git)。

创建 api-test.http 文件
### 获取用户列表
GET http://localhost:8080/api/users
Accept: application/json

### 创建用户
POST http://localhost:8080/api/users
Content-Type: application/json

{
  "name": "Levi",
  "email": "levi@morningstar.club"
}

### 获取用户(使用响应提取的变量)
GET http://localhost:8080/api/users/{{userId}}
Authorization: Bearer {{authToken}}

# 所有 .http 文件都可以 Git 管理,团队共享
# 环境变量存 http-client.env.json 不提交

Database Tools — DataGrip 精华免费送

IntelliJ Ultimate 内置了 DataGrip 的数据库管理能力。右侧边栏 → Database+ → Data Source,支持 MySQL、PostgreSQL、MongoDB、Redis 等。

数据库工具实战技能
# 在 IDE 里直接做的事:
#   1. 连接数据库,浏览表、视图、存储过程
#   2. 打开 Query Console,写 SQL(自动补全表名、字段名!)
#   3. 选中 SQL → ⌘Enter → 执行
#   4. 结果可以直接导出为 CSV/JSON/HTML
#   5. 右键表 → Diagrams → Show Visualisation → 生成 ER 图
#   6. SQL 文件可以 commit 到 Git,作为数据库迁移脚本

# 更强大的是:写 Java 代码时,IDEA 知道你的数据库结构
# @Table(name = "users") → 自动提示 "users" 表中存在的列名

Spring Boot Dashboard

如果你写 Spring Boot,右侧边栏 → ServicesSpring Boot → 所有 @SpringBootApplication 类会被自动发现。
• 一键启动/停止/重启 Spring Boot 应用
• 查看所有 Bean、请求映射(Endpoint)
• 集成了 Actuator 信息(health / metrics / env)

Docker 集成

Settings → Build → Docker → 连接到本地 Docker daemon。之后可以:
• 在 IDE 里查看所有 container / image / network / volume
• Dockerfile / docker-compose.yml 语法高亮 + 自动补全
• 右键 → Run 直接启动 compose 环境
• 查看 container 日志流(带搜索和高亮)

Terminal 集成

⌥F12 或在底部栏点击 Terminal,打开内嵌终端。它直接打开在你的项目根目录,支持多个 Tab,支持分屏。macOS 默认用的是你的系统 zsh。

Profiler — 性能剖析

IntelliJ Ultimate 内置 Async Profiler。Run → Profile → 你的应用启动后会生成 Flame Graph、调用树、内存分配热点。这是 JVM 应用的性能分析利器。

学习路径

📚 从小白到专家的推荐路线

Week 1:安装 → 创建项目 → Double Shift 搜索一切 → 学会导航三件套 ⌘O / ⌘E / ⌘B → 学会代码补全
Week 2:Live Templates → 代码格式化 ⌘⌥L → 重构 F6/⌘⌥V/⌘⌥M → Git 提交 ⌘K
Week 3:断点调试 → 条件断点 → 表达式求值 → 变量 View as JSON
Week 4:HTTP Client → Database Tools → Spring Boot Dashboard → Docker → 3-way merge 冲突解决
Advanced:Profiler → 自定义 Live Templates → 自定义 Inspections → 多人协作 Changelist

JavaKotlinSpring Boot MavenGradleDebug RefactorGitHTTP Client DatabaseDockerProfiler
← 返回技能树