IDEA(IntelliJ IDEA)是业界公认的最好开发工具之一,当然好不好也因人而异,也不要刻意去争谁强谁弱,高手往往不在乎手中的兵器是什么的。个人而言,更高效的工具适合每个开发人员,在编写代码的时候花的时间少,就有更多的时间去设计…
目录
[toc]
一、概述
IDEA(IntelliJ IDEA)是业界公认的最好开发工具之一,当然好不好也因人而异,也不要刻意去争谁强谁弱,高手往往不在乎手中的兵器是什么的。个人而言,更高效的工具适合每个开发人员,在编写代码的时候花的时间少,就有更多的时间去设计代码,当然,使用一个陌生的 IDE,效率肯定是比不上自己熟练的 IDE 的,所以为了节省诸君的学习成本,也为了更快地去接纳和熟练 IDEA,所以周末之余,故作此文。—- 一品江南
准备
- 所有的电脑软件都有着相同的 UI 框架、菜单结构,对于每一个开发人员来说,基本的文件操作、项目操作、工作空间操作不成问题,不会讲到。
- 涉及的其他工具(Maven、Git 等)不会详细讲,只会讲到如何操作,想要深入学习,关注其他博文。
二、配置
在安装软件(JDK、Maven、Git、IDEA)搭建好环境后,要对 IDEA 进行一番配置,才能开始开发,每个人都有每个人的配置习惯,可以自己研究自己喜欢的配置,进入 IDEA 的配置 File | Settings(Ctrl+Alt+S)开始配置。
选择菜单或设置步骤使用 “|” 分开,后面操作一样
1. 主题与行为
选择自己喜欢的主题:Appearance & Behavior | Appearance | Theme
配置骚气的背景图片:Appearance & Behavior | Appearance | UI Options | Background Image…
在配置中选择合适的窗口选项:Appearance & Behavior | Appearance | Window Options
- Animate windows:关闭动画效果
- Show memory indicator:显示内存使用情况
- Show tool window bars:关闭工具栏显示,按两次
Alt键可以显示 - Small labels in editor tabs:编辑器显示小标签
配置自己想看到的菜单项和工具栏:Appearance & Behavior | Menus and Toolbars
配置启动退出和保存同步:Appearance & Behavior | System Settings
2. 快捷键与编辑器
配置快捷键:Keymap
配置 Git 的 Pull 操作快捷键:Version Control Systems | Git | Repository | Pull 添加
Alt+P
配置 Maven 窗口显示快捷键:Tool Windows | Maven 添加Alt+3
优化导包:Editor | General | Auto Import | Java
Insert imports on paste: All:粘贴的时候导入全部包
- Add unambiguous imports on the fly
- Optimize imports on the fly (for current project)
配置显示行号和方法分隔线:Editor | General | Appearance
- Show line numbers
- Show method separators
配置代码折叠规则:Editor | General | Code Folding
配置编辑器标签页:Editor | General | Editor Tabs
- Show tabs in one row:多行显示标签
配置高效的智能键:Editor | General | Smart Keys
- Insert paired brackets (), [], <>:成双成对输入
- Reformat block on typing ‘}’:输入’}‘后格式化代码
- Use “CamelHumps” words:使用驼峰词,使用
Ctrl+Righ/Left可以词内移动

- Jump outside closing bracket/quote with Tab:使用 Tab 键跳到括号 / 引号外面
配置牛逼的字体:Editor | Font
- Enable font ligatures:使用连字符
推荐字段:Fira Code,使用连字符输入
>=,<=,==,!=,=>等符号有惊喜。
配置文件和代码模板:Editor | File and Code Templates
配置文件编码:Editor | File Encodings
建议全部配置成 UTF-8
配置代码片段:Editor | Live Templates

添加高效的代码片段可以提高效率
3. 编译构建
配置 JDK 环境:File | Other Settings | Structure for New Projects… | Project | Project SDK
配置 Maven 构建:Build, Execution, Deployment | Maven
-
配置 Maven 主目录:
D:/apache-maven-3.5.4 -
配置用户 Maven 设置文件:
D:\apache-maven-3.5.4\conf\settings.xml -
配置本地仓库:
D:\apache-maven-3.5.4\repo -
Always update snapshots:构建时总是更新依赖快照版本
4. 版本管理
配置 Git 管理:Version Control | Git
- 配置 Git 路径:
D:\Program Files\Git\bin\git.exe
5. 运行内存
编辑 IDEA 安装目录下 bin 目录:D:\IntelliJ IDEA\bin\idea64.exe.vmoptions文件
-Xms750m
-Xmx750m
运行内存配置可以配置 IDEA 初时内存大小和最大内存数,根据自己电脑配置优化
三、视图
好的界面布局和主题,会让开发者更舒适。快速地能看到想要的信息,会让开发者事半功倍。
1. 工具
常用的工具栏默认位于 IDEA 界面的左、右、下三侧,也可以用鼠标悬停界面左下角图标弹出所有工具栏,你如果在前面主题与行为中配置隐藏工具栏显示,可以按两次 Alt 键显示。按键Esc可以帮助你从任何激活的工具栏返回到代码编辑。每个工具栏窗口顶部都会有一个 Toolbar,可快速实现某些常用功能以及配置。

推荐使用快捷键弹出想要使用的工具栏,不建议修改默认快捷键,但常用的工具栏如果没有快捷键,应当自定义:
Alt+1:ProjectAlt+2:FavoritesAlt+3:Maven(自定义)Alt+4:RunAlt+5:DebugAlt+6:TODOAlt+7:StructureAlt+9:Version ControlAlt+F12:Terminal
1.1 Project
Project 工具栏主要是管理项目文件和目录,所有的项目资源都能在些找到,而且它可以有多种管理形式,可以更好聚焦于当前工作。
管理形式
- Project:显示项目所有资源
- Packages:显示项目所有包,适合开发模式
- Tests:显示项目所有测试资源,适合测试模式
- Problems:显示项目所有问题,所有存在问题的代码都会列举
- Changed Files:显示项目所有修改资源,VCS 中修改未提交的代码
Toolbar:
- Scroll form source:从当前打开的文件定位文件树位置
- Collapse All:折叠所有目录(
Ctrl+-) - Setting:打开工具栏设置
- Flatten Packages:平铺展示所有包
- Compact Middle Packages:折叠包名显示
- Hide:隐藏工具栏(
Shift+Esc)
由于所有的工具栏都会有 Setting 和 Hide,所以后面不会再说,在 Setting 里面会挑选几个常用的设置说。在 Setting 中的 View Mode 配置工具栏的显示模式:
- Dock Pinned:钉住停靠显示
- Dock Unpinned:不钉信停靠显示,激活其他工具栏隐藏
- Undock:不停靠显示,类似 Dock Unpinned
- Float:浮动显示
- Window:窗口模式显示,在全屏查看日志时非常有用
技巧
- 在展开的文件树中,可以直接输入字母对类或包进行模糊搜索,快速定位目标。

在很多的窗口都可以这样进行模糊搜索,可以自己大胆尝试,效率大大地提高,不过注意要使用英文输入法。
- 使用
Left/Right键可以快速折叠 / 展开当前目录 - 使用
Alt+Home可以导航当前项目
1.2 Favorites
Favorites 可以用来管理开发人员高频使用的目录或文件,可以是包和类,或者是类中的某一行,它分为三类:
项目:在 Project 工具栏中对包或类右击选择 Add Favorites 添加
书签:在 Project 工具栏中对包或类或者代码某行,按 F11 添加书签
断点:打断点就会创建
在很多地方使用
F4快捷键可以快速跳转到源码或目录位置。比如选中 Favorites 中的某个书签或断点,选中 VCS 中的某个记录文件。
1.3. Maven
Maven 是管理 Maven 项目的工具集合,可以执行 Maven 的生命周期和插件,可以查看依赖等。
Toolbar:
- Reimport All Maven Projects:重新导入 Maven 项目和依赖
- Generate Sources and Update Folders For All Projects:创建源码更新目录
- Download Sources and/or Documentation:下载源码或文档
- Add Maven Projects:添加 Maven 项目
- Run Maven Build:运行 Maven 生命周期或插件 Goal
- Execute Maven Goal:运行 Maven 插件 Goal
- Toggle Offline Mode:切换离线模式
- Toggle ‘Skip Tests’ Mode:是否跳过测试
Setting
- Group Modules:Maven 模块分组展示
- Always Show ArtifactId:总是展示项目 ArtifactId
Profiles
选择激活 Maven 配置的 Profile
1.4 TODO
TODO 是管理项目代码中所有含有 // TODO 注释以及 // FIXME 注释的代码,这类特殊注释可以帮助开发人员处理事务。

1.5 Structure
Structure 可以管理文件结构,包括类、接口等源文件的属性、方法等。
Toolbar:
- Sort by Visibility:按可见性排序
- Sort Alphabetically:按字母排序
- Group Methods by Defining Type:方法按类型分组
- Show Properties:显示属性
- Show Fields:显示字段
- Show non-public:显示非公共的
- Show Inherited:显示继承的
- Show Anonymous Classes:显示匿名类
- Show Lambdas:显示 Lambda
- Autoscroll to Source:自动定位到源码
- Autoscroll from Source:自动从源码定位
1.6 Version Control
Version Control 是版本管理工具,这里使用 Git 为例,它一般会有两个固定标签页 Local Changes 和 Log,用来管理本地修改和提交日志。
Toolbar:
- Refresh:刷新本地修改列表
- Commit:提交(
Ctrl+K) - Revert:撤消选中的修改(
Ctrl+Alt+Z) - Show Diff:查看修改源文件的 Diff(
Ctrl+D) - Changelists:把修改源文件分组
- Shelve Silently:搁置修改源文件(
Ctrl+Alt+H) - Group By:分组方式:Directory、Repository、Module
- Ignored Files:忽略的文件
- Expand All:展开所有目录(
Ctrl++) - Collapse All:折叠所有目录(
Ctrl+-) - Preview Diff:预览修改源文件的 Diff
技巧
- 查看 Diff 或者合并冲突的时候使用
F7/Shift+F7查看下一个 / 上一个修改或冲突。 - 在提交代码的时候,可以查看历史的 Commit 信息。

- 在提交代码的时候可以配置提交方式和提交前置事件。
提交方式:
- Amend commit:和上一次提交合并,等于命令
git commit --amend- Sign-off commit:在提交信息后面追加用户签名
提交前置事件:
- Alibaba Code Guidelines:阿里开发规约检测(插件)
- Reformat code:格式化代码
- Optimize imports:优化包的导入
- Perform code analyses:代码分析
- Check TODO(Show All):检查 TODO
前置事件非常有用,在提交代码前会自动优化代码的格式以及检查出不合格的代码。
- 在推送(
Ctrl+Shift+K)代码到远程仓库的时候,可以配置推送 Tag 以及强推。 - 在 IDEA 状态栏右边可以操作 Git 仓库的分支,包括本地仓库和远程仓库。

1.7 Event Log
Event Log 查看 IDEA 全局操作的所有日志,当某些操作异常了,可以在此找到答案。
1.8 Spring
Spring 可以根据当前的 Spring 框架管理 Bean 和 MVC,对于使用 Spring 框架的开发人员来说,非常方便。


技巧
- 在 Spring 项目中,在自己创建的 properties 配置文件,在添加配置的时候,只有默认的
application.properties文件才会有上下文提示,可以在项目右击菜单中 Open Module Settings (F4)中将 properties 文件添加到 Spring 上下文环境中。

1.9 Terminal
Terminal 是 IDEA 的集成终端,方便执行命令行。
技巧
- Windows 系统的开发人员会觉得 CMD 的功能太弱鸡,所以会使用 Git 软件自带的 Bash,可以将 Bash 集成到 IDEA 中。
IDEA 集成终端配置 Bash:File | Settings | Tools | Terminal | Application settings
Shell path:
D:\Program Files\Git\bin\bash.exeNOTE:如果终端出现乱码问题,可以百度解决,很简单。
2.0 Web
Web 工具栏和 Java Enterprise 工具栏有点类似,在 Web 项目中,会管理 Servlet、Filter、Listener,当然,如果我们的项目中只用到 SpringMVC,而不是自己编写 Servlet 的话,这工具似乎没有太多的作用。
2. 代码
在代码视图中,主要是使用快捷键快速浏览一些代码的信息,这些快捷键在开发过程中也是大有用处的。
- 查看当前变量、方法、类等的定义:
Ctrl+Shift+I - 查看当前变量、方法、类等的文档注释:
Ctrl+Q - 查看当前方法的参数信息:
Ctrl+P - 查看当前输入表达式信息:
Ctrl+Shift+P - 查看当前上下文信息:
Alt+Q(可以查看当前类文件类定义信息)

技巧
- 使用
Ctrl+Shift+I快速查看当前枚举、常量的信息 - 调用方法的时候使用
Ctrl+P查看当前参数输入情况,由其是重载方法的情况 - 使用
Ctrl+Shift+P快速修改某段代码
3. 文件
在文件视图中,可以导航最近修改的文件或位置。
- 查看最近修改的文件:
Ctrl+E - 查看最近修改的位置:
Ctrl+Shift+E


4. 窗口
窗口视图可以设置 IDEA 主界面的显示方式。
- 演示模式:View | Enter Presentation Mode
- 专注模式:View | Enter Distraction Mode
- 全屏模式:View | Enter Full Mode
四、导航
想去哪儿就去哪儿,定位问题与查阅代码都很方便。
1. 文件
- 类全局查找:
Ctrl+N - 文件全局查找:
Ctrl+Shift+N - 符号全局查找:
Ctrl+Alt+Shift+N - 行 / 列定位:
Ctrl+G - 退回上 / 下一个位置:
Ctrl+Alt + Left/Right - 跳转到文件上 / 下一个修改的位置:
Ctrl+Alt+Shift + Top/Bottom - 切换文件标签页:
Ctrl+Tab和Ctrl+Shift+Tab
2. 代码
- 跳转到属性、方法、类定义的位置:
Ctrl+B - 跳转到接口、方法实现的位置:
Ctrl+Alt+B - 跳转到类型定义的位置:
Ctrl+Shift+B - 跳转到父类,父方法的位置:
Ctrl+U - 跳转类测试类、方法的位置:
Ctrl+Shift+T - 跳转到下一个错误位置:
F2 - 跳转到上一个错误位置:
Shift+F2 - 跳转到上 / 下一个方法位置:
Alt + Top/Bottom - 跳转到大括号开头 / 结尾:
Ctrl + [/]
在代码编辑器的左侧会存在 Gutter 图标,在设置 File | Settings | Editor | General | Gutter Icons 中我们可以看到这些图标的含义,单击图标也可以跳转到对应的位置。
3. 结构
- 查看文件结构:
Ctrl+F12 - 查看文件路径:
Ctrl+Alt+F12 - 查看类型层次结构:
Ctrl+H - 查看方法层次结构:
Ctrl+Shift+H - 查看调用层次结构:
Ctrl+Alt+H
技巧
- 在查找类、文件的时候可以通过特殊符号定位到类中的某个方法或某行。
这个方法在定位问题的时候大有用处,而且只需简单的规则,就可以形成代码的坐标。
- 使用
#标记类或文件中的某个方法或属性:HttpProxy#get- 使用
:标记类或文件中的某行某列:HttpProxy:37:10在团队之间发送代码位置的时候,使用右击菜单中 Copy Reference(
Ctrl+Alt+Shift+C)来复制某个类、方法、属性等的唯一坐标,然后开发人员可以使用Ctrl+N输入坐标来定位代码。

- 查看类型层次结构的时候可以使用
Ctrl+Alt+U来显示类的 UML 图。
在 Project 文件树中也可以选择类使用
Ctrl+Alt+U生成 UML 图。

五、代码
高效编辑代码,节省苦力活,缩短开发时间,今天不加班。
1. 插入
- 重写父类方法:
Ctrl+O - 实现父类接口:
Ctrl+I - 生成代理方法:Code | Delegate Methods
- 生成多种代码:
Alt+InsertConstructor:构造方法Getter:Get 方法Setter:Set 方法Getter and Setter:Get 方法和 Set 方法equals() and hashCode():equals 方法和 hashCode 方法toString():toString 方法Test:测试类或测试方法Copyright:版权信息@Autowired Dependency:注入 Spring Bean
- 插入包围代码:
Ctrl+Alt+Tif / else / while / fortry / catch / finallysynchronized / Runnableregion...endregion Comments
- 去除包围代码:
Ctrl+Shift+Delete - 补全当前词语:
Alt+/或Alt+Shift+/ - 当前行前面插入一行:
Ctrl+Alt+Enter - 当前行后面插入一行:
Shift+Enter - 删除当前行或选中行:
Ctrl+Y - 重复插入当前行或选中行:
Ctrl+D
在编写代码的时候,经常会要记录一些非代码文件,可以使用
Ctrl+Alt+Shift+Insert来新建草稿文件,支持多种格式,新建好的草稿文件会保存在 Project 文件树的/Scratches and Consoles/Scratches目录下。
2. 选择
- 选择当前光标所在区域:
Ctrl+W,重复使用扩大选择范围 - 缩小当前选择范围:
Ctrl+Shift+W - 选择当前光标所在表达式:
Ctrl+Shift+P
3. 格式
- 插入行注释:
Ctrl+/ - 插入块注释:
Ctrl+Shift+/ - 格式化代码:
Ctrl+Alt+L - 自动缩进对齐:
Ctrl+Alt+I - 生动优化导包:
Ctrl+Alt+O - 列自动对齐:Code | Align to Columns
- 代码折叠
- 折叠 / 展开当前代码段:
Ctrl + -/+ - 折叠 / 展开全部代码:
Ctrl+Shift + -/+ - 折叠全部文档注释:Code | Folding | Collapse doc comments
- 展开全部文档注释:Code | Folding | Expand doc comments
- 折叠 / 展开当前代码段:
4. 移动
- 代码语句上 / 下移动:
Ctrl+Shift + Up/Bottom,可以简单移动方法的位置 - 代码行上 / 下移动:
Alt+Shift + Up/Bottom
5. 片段
在快捷键与编辑器配置中说到了如何配置代码片段,代码片段可以明显地提高编辑代码的速度,由其插入高频代码。
智能片段:可以直接输入,也可以使用Ctrl+J来选择

包围片段:可以选中一段代码使用Ctrl+Alt+J插入,也可以使用Ctrl+Alt+T

6. 纠错
- 在代码中存在红色波浪线的代码都是有问题的代码
- 右侧滚动条上方图标不为绿色的对钩时表示该文件中存在有问题的代码
- 可以点击滚动条的彩色条来定位有问题的代码
- 也可以使用
F2和Shift+F2来快速定位有问题的代码 - 滚动条的彩色条颜色决定着问题的严重性,例:警告、错误等
- 光标置于错误代码的时候,左侧会出现电灯泡,单击它有解决办法
- 使用快捷键
Alt+Enter和单击电灯泡的功能一样
不管代码有什么问题,使用
Alt+Enter总能找到解决办法。不要轻易关闭代码的错误提示,级别较低的警告可以酌情处理
网上有许多坑人的教程,解决报红的错误的办法就是把错误提示关掉,万不可取。
技巧
- 在接口名称
AE选择 Implement interface 快速添加接口的实现类。 - 在抽象类名称
AE选择 Implement abstract class 快速添加抽象类的实现类。 - 在类名称
AE选择 Create subclass 快速添加该类的子类。 - 在接口、抽象类、类名称
AE选择 Create Test 快速添加类的测试类。 - 在方法名称
AE选择 Generate missed test methods 创建测试方法。 - 在方法名称
AE选择 Generate overloaded method with default parameter values 创建当前方法的重载方法。 - 在属性、方法、类名称
AE选择 Add Javadoc 快速添加文档注释。 - 在正则表达式字符串
AE选择 Check RegExp 校验正则表达式。
AE表示使用Alt+Enter快捷键
- 在光标拖动选择的时候按住
Alt键可以垂直选择进行多行编辑。 - 按住
Alt+Shift键使用光标单击可以进行多个位置编辑。 - 在使用
Ctrl+F的时候,想要编辑所有的结果可以使用Ctrl+Alt+Shift+J。
六、分析
分析项目,分析代码,才能分析设计。
1. 代码
- 检查代码:Analyze | Inspect Code
- 检查代码并修复:Analyze | Code Cleanup
2. 依赖
- 分析依赖信息:Analyze | Analyze Dependencies
- 分析被依赖信息:Analyze | Analyze Backward Dependencies
- 分析 Module 依赖信息:Analyze | Analyze Module Dependencies
- 分析依赖矩阵:Analyze | Analyze Dependency Matrix
3. 数据
- 分析传递到当前的数据流:Analyze | Analyze Data Flow to Here
- 分析从当前开始传递的数据流:Analyze | Analyze Data Flow from Here
- 分析异常堆栈信息:Analyze | Analyze Stack Trace
技巧
- 分析数据流可以追踪方法调用关系。

- 可以使用分析异常堆栈信息来处理异常日志。

七、重构
珍惜每一次重构的机会,尽量把项目设计的更好。
1. 重构
- 重构当前代码:
Ctrl+Alt+Shift+T - 重命名:
Shift+F6 - 修改类或方法签名:
Ctrl+F6 - 修改定义类型:
Ctrl+Shift+F6 - 修改成静态定义:Refactor | Make Static
- 修改成实例方法:Refactor | Convert To Instance Method
- 移动 / 复制:
F6/F5(可以移动静态变量或方法) - 安全删除:
Alt+Delete - 提取方法生成代理类:Refactor | Extract | Delegate
- 提取方法生成接口:Refactor | Extract | Interface
- 提取方法生成父类:Refactor | Extract | Superclass
2. 优化
- 对当前表达式提取并封装:Refactor | Extract
- 提取为变量:
Ctrl+Alt+V - 提取为常量:
Ctrl+Alt+C - 提取为类属性:
Ctrl+Alt+F - 提取为方法参数:
Ctrl+Alt+P - 提取为函数式参数:
Ctrl+Alt+Shift+P - 提取为函数式变量:Refactor | Extract | Functional Variable
- 提取方法的多个参数封装为对象:Refactor | Extract | Parameter Object
- 提取为方法:
Ctrl+Alt+M - 提取为方法并封装成对象:Refactor | Extract | Method Object
- 提取为变量:
- 对当前表达式去除封装:Refactor | Inline
- 查找并封装重复代码:Refactor | Find and Replace Code Duplicates
- 倒置布尔类型:Refactor | Invert Boolean
- 去除中介调用:Refactor | Remove Middleman
- 包装方法返回结果:Refactor | Wrap Method Return Value
- 使用方法概括属性:Refactor | Encapsulate Fields
- 变量的初始化提取为方法:Refactor | Replace Temp with Query
- 使用工厂方法替换构造方法:Refactor | Replace Constructor with Factory Method
- 使用构建器替换构造方法:Refactor | Replace Constructor with Builder
- 使用安全的类型填充泛型:Refactor | Generify
3. 继承
- 将类成员推送到父类:Refactor | Pull Members Up
- 将类成员拉取到子类:Refactor | Push Members Dowm
- 使用接口替换类定义:Refactor | Use Interface Where Possible
- 使用代理来替换继承:Refactor | Replace Inheritance with Delegation
- 匿名类替换成内部类:Refactor | Convert Anonymous to Inner
技巧
- 在 Controller 方法中,使用 Refactor | Extract | Parameter Object 把多个接收表单的参数封装成 VO 类。

灵活运用好重构技能,编码速度可以提高几个档。
八、构建
蛋变成鸡的一步,怎样处理好一个蛋,一窝蛋?
1. 构建
- 构建项目:Build | Build Project (
Ctrl+F9) - 重新构建项目:Build | Rebuild Project (
Ctrl+Shift+F9) - 构建 Module:Build | Build Module
2. 运行
在菜单 Run 下面会有相关运行的操作,可以在 Run | Edit Configurations 中管理配置各种运行方式。
- 运行 / 调试:
Shift + F10/F9 - 运行 / 调试列表:
Alt+Shift + F10/F9 - 停止 / 重启:
Ctrl + F2/F5
2.1 Main
如果代码中存在 Main 方法,并以 Main 方法形式启动,打开 Main 方法所有类,除了使用 Alt+F10 或 Alt+Shift+F10 启动之外,也可以单击类名或方法名所在的运行 Gutter 图标。
如果想要全屏或者分屏显示运行日志,可以把运行工具窗口的 View Mode 设置成 Window 模式。
2.2 Tomcat
如果 Web 项目要使用 Tomcat 启动,则先要配置 Tomcat Server 运行方式,在 Run | Edit Configurations 添加该运行方式,在添加列表中选择 Tomcat Server | Local,配置好后即可运行。
在配置之前需要在本地下载 Tomcat,在 Edit Configurations 配置中可以不仅可以添加运行方式,还可以对每个运行方式进行其他配置,比如:VM Options 等。
3. 调试

使用 Debug 启动可以快速定位问题,打断点步进调试是每个开发人员必备的技能,这里不多说,常用快捷键:
- 每行执行:
F8 - 进入方法:
F7 - 跳出方法:
Shift+F8 - 执行到下一个断点:
F9 - 跳转到当前执行的断点位置:
Alt+F10 - 计算表达式:
Alt+F8
技巧
- 在断点停止的时候可以使用计算表达式来调试断点前的数据。

- 不小心跳过了自己想要调试的断点,可以使用 Drop Frame 来删除当前栈帧,来重新执行方法。

- 在栈帧窗口(Frames)右击,可以使用 Force Return 来强制返回当前方法,或使用 Throw Exception 来抛出异常。
九、工具
IDEA 不仅仅只是一个写代码的软件,还拥有开发过程中经常使用的工具。
1. 数据库
在视图工具栏 View | Tool Windows | Database 中可以找到 Database 工具,点击 Toolbar 上的加号可以添加数据源,配置好服务器和驱动后就可以使用了,打开 Console 输入 SQL,使用 Ctrl+Enter 执行。

2. 服务器管理
在工具栏 Tools | Deployment | Browse Remote Host 菜单打开 Remote Host 工具,点击 … 配置服务器,配置好了之后就可以操作 Remote Host 的文件树了。

3. HTTP 客户端
在任何目录下都可以右击新建文件的时候创建 New HTTP Request 文件来编写 HTTP 报文来请求和测试 HTTP 接口,推荐在test目录下创建。创建测试文件如下:
GET http://localhost:80/api/item?id=99
Accept: application/json
点击每个请求报文左侧的运行 Gutter 图标就可以发送请求,同样创建 POST 请求:
POST http://localhost:80/api/item?id=99
Content-Type: application/x-www-form-urlencoded
id=1&name=2&gender=1&mobile=1413131212
可以在请求报文中使用环境变量,使用{{var}}来引用变量,变量可以在配置文件(http-client.env.json或rest-client.env.json)中定义:
{
"local": {
"host": "http://localhost:8080",
"x_token": "token"
},
"test": {
"host": "http://10.250.1.122:8087",
"x_token": "token"
}
}
在运行的时候选择不同的环境使用不同的变量:
POST {{host}}/api/item
Content-Type: application/json
{
"name": "ajn",
"age": 24
}
变量也可以在响应脚本中使用
client.global.set设置和使用client.global.get获取。
可以使用响应脚本来测试 HTTP 请求,脚本使用 Javascript 语言编写:
GET https://httpbin.org/status/404
Accept: application/json
> {%
client.test("Request executed successfully", function() {
client.assert(response.status === 200, "Response status is not 200");
});
%}
响应脚本 API 详解:
client:客户端对象
global:全局变量属性
set(string, object):设置变量get(string):获取变量isEmpty():判断全局变量是否为空clear(string):清除某个变量clearAll():清除所有变量test(string, function):测试函数assert(boolean, string):断言函数log(string):输出日志函数response:响应对象
body:响应体headers:响应头status:响应状态码contentType:响应的 ContentType 头
4. SSH 会话
在工具栏 Tool | Start SSH session 菜单可以新建 SSH 会话,在前面服务器管理中如果创建了服务器,会自动添加该服务器的 SSH 会话。

十、插件
强大的功能,还远远不够,一个合格的软件,都应支持功能自由地扩展。
1. Lombok
Lombok 插件支持代码中使用 Lombok 注解编译生成 Get 和 Set 等方法,该插件不仅支持注解,它在菜单中添加了两个功能:
- Refactor | Lombok:插入 Lombok 注解
- Refactor | Delombok:将 Lombok 注解生成代码
更多设置:File | Settings | Other Settings | Lombok plugin
2. Alibaba Java Coding Guidelines
该插件是结合阿里巴巴 Java 开发规约而出的,主要功能用于检测代码是否条例阿里开发规范,它结合了 IDEA 的纠错功能可以快速定位问题和修复问题,在菜单中添加的功能有:
- Tool | 阿里编码规约
阿里规约插件提示的问题也可以使用
Alt+Enter来寻找解决办法。
技巧
- 根据阿里规约,快速分析代码并一键修复。

3. CamelCase
CamelCase 添加一个快捷键 Alt+Shift+U来修改标识符的下划线、小驼峰、大驼峰等格式,并支持批量转换。

按住
Alt+Shift使用鼠标单击可以选择多选编辑。
4. Easy Code
Easy Code 插件可以根据数据库表和模板来生成代码,可以解决编写重复底层代码的问题。添加的设置项有:
- 配置编码和作者名称:Other Settings | Easy Code
- 配置类型映射:Other Settings | Easy Code | Type Mapper
- 配置模板:Other Settings | Easy Code | Template Setting
- 配置全局模板:Other Settings | Easy Code | Global Config
只需在 Database 工具栏选中一个或多个表,右击 EasyCode | Generate Code 就可以生成代码,针对单表配置类型映射可以右击 EasyCode | Config Table 来配置。

5. GenerateAllSetter
该插件可以一键调用对象的所有 Setter 方法,在新建对象实例后使用 Alt+Enter 弹出面板中菜单:
- 创建似有 Setter 不带默认值:Generate all setter no default value
- 创建似有 Setter 带默认值:Generate all setter with default value

6. Maven Helper
该插件用于 Maven 管理,可以分析 Maven 依赖结构和执行 Maven 生命周期,添加快捷键 Ctrl+Alt+R 来运行 Maven 生命周期,可以在 File | Settings | Other Settings | Maven Helper 中进行设置,另外一个功能就是在pom.xml文件下方添加了一个 Dependency Analyzer 标签,可以用来分析 Maven 依赖,可以查看和解决 Maven 依赖冲突。

7. MyBatisX
MyBatisX 插件主要增强了 IDEA 对 MyBatis 框架的支持,可以在 File | Settings | Other Settings | Mybatis 进行设置,它添加的功能有:
- 检验 Mapper 层的代码逻辑
- 添加 Mapper 层接口与 XML 文件跳转功能的 Gutter 图标
- 快速根据接口生成 XML 标签
- 接口参数生成
@Param注解

8. RestfulToolkit
该插件是管理 Restful 接口的工具集,它提供的功能有:
- 使用快捷键
Ctrl+\来根据 URL 来跳转到方法定义 - 提供了一个接口的树形窗口
- 提供了一个简单的 HTTP 请求工具
- 在请求方法上生成特殊字符串并复制的功能
- 复制 K-V 形式的 QueryString:Generate & Copy Query Param (Key value)
- 复制 JSON 形式的请求体:Generate & Copy RequestBody (JSON)
- 复制相对路径 URL:Generate & Copy Relation URL
- 复制全路径 URL:Generate & Copy Full URL
- 在 Java 类上生成 JSON 并复制的功能
- 复制压缩格式的 JSON:Convert to JSON(Compressed)
- 复制 JSON:Convert to JSON

参考文献
- IDEA 快捷键手册:Help | Keymap Reference
- IDEA 2019.1 官方文档:https://www.jetbrains.com/help/idea/2019.1/