引言:对于许多开发者而言,IDE的快捷键是非常常用且可以提升开发效率的,但是日常使用总是感觉会忘记,以下详细解读了两个常用快捷键,给出常用快捷键大全,希望能给到诸位一些参考。
一、Ctrl+shift+F9
IDEA 中 Ctrl+Shift+F9(对应「Build Project」/「Compile Modified」)的核心是增量编译,但修改达到一定 "量级" 或 "类型" 时,确实会触发自动重启 ------ 本质是因为这些修改超出了「热编译」的兼容范围,必须重启才能生效。
「增量编译」:
- 只编译你修改过的 Java 文件 / 资源文件,而非整个项目;
- 对于支持「热部署」的场景(如 Spring Boot DevTools、JRebel),编译后代码会直接生效,无需重启;
- 本质是 IDEA 对 JVM 「HotSwap」技术的封装,只能替换方法体、变量值等 "小范围修改"。
触发重启的核心原因是:修改内容超出了 JVM HotSwap 热替换的能力范围,IDEA 会自动判定 "增量编译无法生效",进而触发项目重启。
这些修改一定会触发重启(核心边界):
| 修改类型 | 示例 | 为什么会重启? |
|---|---|---|
| 类结构变更 | 新增 / 删除类、修改类名 / 包名、新增 / 删除字段 / 方法、修改方法签名(参数 / 返回值) | JVM HotSwap 只能替换「方法体内容」,无法修改类的元数据(结构),必须重启加载新的类结构 |
| 配置文件核心变更 | 修改 application.yml/application.properties 中核心配置(如端口、数据库连接、Bean 扫描路径) |
这类配置是项目启动时加载的,增量编译无法重新加载,IDEA 会自动重启上下文 |
| 依赖 / 插件变更 | 新增 / 删除 Maven/Gradle 依赖、修改插件配置 | 依赖需要重新下载 / 加载,类加载器必须重启才能识别新依赖 |
| 资源文件大范围变更 | 批量修改静态资源(如 HTML/CSS/JS)且未配置热部署、修改 mybatis 的 XML 映射文件(未开启热加载) | 部分资源文件的热加载需要额外配置,未配置时 IDEA 会判定需重启 |
| 多文件跨模块修改 | 同时修改多个模块的核心类(如公共工具类、父类) | 跨模块的类依赖链变更,增量编译无法保证所有依赖类都生效,触发重启 |
这些修改不会触发重启(安全范围)
- 仅修改方法体内的逻辑(如调整 if 判断、循环、变量赋值);
- 仅修改字符串常量、注释、局部变量名;
- 单文件小范围的资源文件修改(如单个静态图片、单个前端文件)
控制重启的核心方案:
- 避免自动重启:关闭「自动编译」,仅手动编译;
- 减少重启次数:用 Spring Boot DevTools 实现轻量级重启;
- 零重启:用 JRebel 插件覆盖所有修改场景。
二、Alt+左右箭头
IDEA 中 Alt+左箭头 和 Alt+右箭头 是代码跳转轨迹导航的核心快捷键,专门用来在你浏览 / 跳转代码的历史页面之间切换,就像浏览器的「后退」「前进」按钮一样,是日常编码中高频且超实用的操作。
| 快捷键 | 功能(官方名称:Back/Forward) | 适用场景 |
|---|---|---|
Alt + 左箭头 |
回到上一个代码跳转页面(后退) | 比如:跳转到方法定义后,想回到调用处;跳转到类后,想回到原文件 |
Alt + 右箭头 |
回到下一个代码跳转页面(前进) | 后退后,想重新回到之前跳转过的页面 |
1. 哪些操作会被记录到「跳转轨迹」?
只有跨位置的跳转操作 会被记录,普通的光标移动不会:
✅ 会记录:Ctrl+B(跳转到定义)、Ctrl+左键点击(跳转)、Ctrl+Alt+B(跳转到实现类)、F4(打开类 / 方法);
❌ 不记录:用鼠标滚动、方向键移动光标、编辑代码。
- 特殊场景的小技巧
- 轨迹清空:如果想重置跳转轨迹,关闭当前编辑的所有文件再重新打开,轨迹会清空;
- 多窗口兼容:在多标签页 / 分屏窗口中,跳转轨迹是「全局」的,跨窗口跳转也能正常回退;
- 替代方案 :如果键盘没有「左右箭头」(如笔记本小键盘),可通过 IDEA 菜单操作:
Navigate → Back/Forward(对应快捷键); - 补充快捷键 :
Ctrl+Alt+左箭头/Ctrl+Alt+右箭头是「代码撤销 / 重做」(和这个区分开,别混淆)。
配套高频导航快捷键(组合使用更高效)
| 快捷键 | 功能 | 搭配场景 |
|---|---|---|
Ctrl+E |
最近打开的文件列表 | 快速切换最近编辑的文件,配合跳转轨迹使用 |
Ctrl+Shift+Backspace |
回到最后编辑的位置 | 编辑代码后,快速回到之前的编辑点 |
Alt+F7 |
查找所有引用 | 跳转到引用位置后,用 Alt + 箭头回退 |
Alt+左/右箭头是 IDEA 「代码跳转轨迹」的后退 / 前进,核心解决「跳转后回退」的需求;- 只有跨位置的跳转操作会被记录,普通光标移动不影响轨迹;
- 搭配
Ctrl+B(跳转定义)、Ctrl+E(最近文件)使用,是代码浏览的 "黄金组合"。
三、总结常用快捷键大全(导航、编辑、重构、调试)
一、代码导航(找代码最快的快捷键)
| 快捷键 | 功能(中文) | 适用场景 |
|---|---|---|
Ctrl + B / Ctrl + 左键点击 |
跳转到定义 / 实现类 | 看方法 / 类的源码、找接口实现类 |
Ctrl + Alt + B |
跳转到所有实现类 / 实现方法 | 接口有多个实现时,快速切换(如 Spring Bean) |
Ctrl + E |
最近打开的文件列表 | 快速切换最近编辑的文件(比找标签页快) |
Ctrl + Shift + E |
最近修改的文件列表 | 改完代码后,快速回到修改过的文件 |
Ctrl + Shift + Backspace |
回到最后编辑的位置 | 编辑代码时被打断,快速回到上次编辑点 |
Alt + F7 |
查找所有引用 | 看某个方法 / 变量被哪些地方调用 |
Ctrl + N |
快速查找类(全局) | 输入类名,直接打开(支持模糊匹配) |
Ctrl + Shift + N |
快速查找文件(全局) | 找配置文件、XML、JS 等非 Java 文件 |
Ctrl + F12 |
显示当前类的结构(方法 / 字段列表) | 大型类中快速定位方法 / 字段 |
Alt + 7 |
打开类结构面板(侧边栏) | 持续浏览当前类的所有成员 |
二、代码编辑(写代码最常用)
| 快捷键 | 功能(中文) | 适用场景 |
|---|---|---|
Ctrl + D |
复制当前行 / 选中内容到下一行 | 快速复制代码行(比 Ctrl+C/V 快) |
Ctrl + Y |
删除当前行 | 删行不用选,直接删(比 Backspace 快) |
Ctrl + X |
剪切当前行 / 选中内容 | 剪切后可直接粘贴,或移动代码行 |
Ctrl + / |
单行注释 / 取消注释 | 快速注释调试代码 |
Ctrl + Shift + / |
块注释(/* ... */) | 注释多行代码 |
Ctrl + Alt + L |
格式化代码(全局) | 代码乱了一键整理(支持自定义格式化规则) |
Ctrl + Alt + O |
优化导入(删除无用 import) | 写完代码后清理冗余导入,避免黄线 |
Alt + Insert |
生成代码(Getter/Setter/ 构造器等) | 实体类快速生成 get/set、toString、构造方法 |
Ctrl + Space |
基础代码补全 | 自动提示变量 / 方法 / 关键字(默认开启) |
Ctrl + Shift + Space |
智能代码补全(上下文感知) | 更精准的补全(如方法参数、泛型) |
Shift + Enter |
换行(光标跳到下一行,不管光标位置) | 写代码时不用移光标到行尾,直接换行 |
Ctrl + Shift + U |
大小写转换 | 快速切换变量 / 常量的大小写 |
三、重构 / 调试(改代码、查问题必备)
1. 重构快捷键
| 快捷键 | 功能(中文) | 适用场景 |
|---|---|---|
Shift + F6 |
重命名(变量 / 方法 / 类 / 包) | 批量改名字,自动更新所有引用(超安全) |
Ctrl + F6 |
修改方法签名(参数 / 返回值) | 改方法参数名 / 个数,自动同步所有调用处 |
Ctrl + Alt + M |
提取方法(把选中代码封装成方法) | 代码冗余时,快速重构为独立方法 |
Ctrl + Alt + V |
提取变量(把表达式封装成变量) | 长表达式拆成变量,提升可读性 |
F6 |
移动类 / 文件到其他包 / 目录 | 调整代码结构,自动更新包名和 import |
2. 调试快捷键(Debug 必备)
| 快捷键 | 功能(中文) | 适用场景 |
|---|---|---|
Shift + F9 |
启动 Debug(代替右键点击) | 快速启动调试 |
F8 |
单步执行(跳过方法调用) | 逐行调试,不进入子方法 |
F7 |
单步执行(进入方法调用) | 进入被调用的方法内部调试 |
Shift + F8 |
跳出当前方法 | 调试完方法内部,快速回到调用处 |
Alt + F9 |
运行到光标处 | 跳过无关代码,直接到需要调试的位置 |
Ctrl + F8 |
切换断点(添加 / 删除) | 快速给当前行加 / 删断点 |
Ctrl + Shift + F8 |
查看所有断点(管理断点) | 禁用 / 删除多余断点,避免调试卡顿 |
四、窗口 / 操作快捷(提升整体效率)
| 快捷键 | 功能(中文) | 适用场景 |
|---|---|---|
Alt + 1 |
打开 / 关闭项目结构面板(Project) | 快速切换是否显示项目目录 |
Alt + 2 |
打开 / 关闭收藏面板(Favorites) | 快速访问常用文件 / 类 |
Alt + 8 |
打开 / 关闭终端(Terminal) | 不用切出 IDEA,直接执行命令 |
Ctrl + Tab |
切换打开的文件标签页 | 比鼠标点标签页快,支持循环切换 |
Ctrl + Shift + F |
全局文本搜索 | 找项目中所有包含指定字符串的文件 |
Ctrl + Shift + R |
全局文本替换 | 批量替换项目中的字符串(谨慎使用) |
Ctrl + S |
保存当前文件 | 自动触发编译(开启自动编译时) |
Ctrl + Shift + S |
保存所有文件 | 批量保存修改,避免漏存 |
五、必记的 "一键操作" 快捷键(效率天花板)
这几个是 "一招鲜" 的快捷键,能省大量重复操作:
Alt + Enter:万能修复键 ------ 代码标红 / 黄线时,按它会弹出修复建议(如导入类、补全变量、修正语法),90% 的代码问题能一键解决;Ctrl + Shift + F9:增量编译 ------ 只编译修改过的代码,不用重启项目(你之前问过的);Ctrl + Alt + T:包裹代码 ------ 选中代码后,按它可快速包裹成if/for/try-catch/synchronized等块,不用手动写括号;F2/Shift + F2:跳转到下一个 / 上一个错误 ------ 编译报错后,快速定位所有错误位置。
总结
- 优先级最高 :先记
Ctrl+B(跳转定义)、Alt+Enter(万能修复)、Ctrl+Alt+L(格式化)、Shift+F6(重命名),这 4 个是 "基础中的基础"; - 场景化记忆:按 "写代码→找代码→改代码→调代码" 的流程记,比死记清单更易上手;
- 自定义适配 :如果某些快捷键不顺手(比如和输入法冲突),可在
File→Settings→Keymap里修改,优先适配自己的打字习惯。