IntelliJ IDEA作为开发神器,尤其在开发Java语言上可谓一骑绝尘,所谓”工欲善其事,必先利其器”,熟练使用IntelliJ IDEA对开发效率和源码调试有质的提升,IntelliJ IDEA是打开源码调试的第一道门。下图是Intellij IDEA 2020.3.1 版本的界面,下面将一一解释标注数字的职责。
标识1:Project用于显示项目目录结构。
标识2:Commit用于显示git提交记录。
标识3:Pull Requests用于显示git推送请求记录。
标识4:用于显示当前类的类结构。
标识5:
标识6:JRebel的菜单。JRebel是一款JAVA虚拟机插件,它使得JAVA程序员能在不进行重部署的情况下,即时看到代码的改变对一个应用程序带来的影响,简单来说JRebel提供了热部署的功能能大大提升开发效率。因为我安装了JRebel插件所以才会有JRebel菜单。
标识7:Git菜单。
标识8:当运行可执行文件的控制台,例如运行一个Java类,Run控制台会显示运行类时的相关信息。
标识9:待办事项菜单。
标识10:Problems(问题)用于显示当前文件提示的一些问题,例如警告信息等等。
标识11:Terminal(终端)菜单,跟普通电脑打开终端是一样的。
标识12:Profiler
标识13:
标识14:
标识15:
标识16:显示当前项目所处git分支。
标识17:运行当前文件。
标识18:
标识19:
标识20:
标识21:
标识22:
标识23:
标识24:
标识25:
标识26:
标识27:
标识28:
标识29:
标识30:
标识31:
标识32:
标识33:
标识34:
标识35:
1.IDEA 常用快捷键(Mac)
作用 | 快捷键 |
---|---|
打开智能提示 | option + enter |
注释当前行或取消注释当前行 | command + / |
注释多行或取消注释多行 | option + command + / |
格式化代码 | option + command + l |
打开生成代码提示,例如生成构造、setter、getter、toString方法 | command + n |
跳转到类、方法、变量声明处 | command + 鼠标点击类、方法、变量 |
跳转到接口的实现类 | option + command + b |
复制当前行,并粘贴到下一行 | command + d |
删除当前行 | command + delete |
剪切当前行 | command + x |
打开搜索功能 | 按两下shift键 或 鼠标点击idea界面右上角的搜索图标 |
手动补全 | option + / |
当前文件查找关键字,局部搜索 | command + f |
当前项目查找关键字,全局搜索 | shift + command + f |
进行代码重构: 1.选中文件名、按快捷键后,可以重命名文件名(同时修改类名) 2.选中代码中的变量名、类名、方法名,按快捷键后,可以统一修改。 |
shift + fn + f6 |
将选中的代码提交到一个方法中 | option + command + m |
折叠代码 | command + - |
展开代码 | command + + |
2.IDEA 调试
在.class文件打上断点以Debug模式运行,就会出现如下图,下图主要分为左侧导航、上方导航、Frames(框架)部分、Variables(变量)部分、Watches(监视器)部分五个部分。
左侧导航部分:左侧导航部分分为10个按钮。按钮1用于重新运行当前可执行文件(上图是一个class)。按钮4用于配置运行类的配置信息,例如设置环境变量、运行参数等等。按钮5用于恢复程序,如果有多个断点,点击此按钮会跳转到下一个断点,如果只有一个断点就恢复执行。按钮6用于暂停执行。按钮7用于查看线程堆。
上方部分:上方部分分为8个按钮组成,这8个按钮是调试步骤的核心。
- Show Execution Point(显示执行点):如果你的光标在其它行或其它页面,点击此按钮可以使光标定位到当前执行行。
- Step Over (F8):步过,一行一行地往下走,如果执行行上有方法不会进入方法。
- Step Into (F7):步入,如果当前行有方法,可以进入方法内部,一般用于进入自定义方法内,不会进入官方类库的方法。
- Force Step Into (Alt + Shift + F7):强制步入,能进入任何方法,查看底层源码的时候可以用这个进入官方类库的方法。
- Step Out (Shift + F8):步出,从步入的方法内退出到方法调用处,此时方法已执行完毕,只是还没有完成赋值。
- Drop Frame (默认无):回退断点,后面章节详细说明。
- Run to Cursor (Alt + F9):运行到光标处,你可以将光标定位到你需要查看的那一行,然后使用这个功能,代码会运行至光标行,而不需要打断点。
- Evaluate Expression (Alt + F8):计算表达式。计算表达式可以在调试过程中计算某个表达式的值,而不用再去打印信息。
Variables部分用于显示当前类的变量。当Debug运行时参数所在行后面会显示当前变量的值,也可以悬浮在参数上,显示当前变量信息。
Watches部分用于监视变量。你可以在Watches部分输入需要查看的变量,如果要监视Variables中的变量拖拽到Watches面板即可。
(Watches 监视变量)
1.1 Evaluate Expression(计算表达式)
计算表达式(Alt+F8)主要有两个作用,第一计算表达式的值,这个表达式不仅可以是一般变量或参数,也可以是方法,当你的一行代码中调用了几个方法时,就可以通过这种方式查看查看某个方法的返回值。 第二是设置变量的值。
(计算条件表达式、计算方法的结果)
1.2 智能步入
1.3 断点条件设置
1.4 多线程的调试
3.IDEA 常用插件
插件名 | 作用 |
---|---|
Lombok | 通过注解的形式生成构造、getter、setter、toString方法,简化开发 |
MyBatisX | MyBatisX使得Mapper接口跳转Mapper.xml就跟吃饭一样容易 |
JReble | 热部署插件,修改代码无需重新启动就能生效 |
TranslationPlugin | 翻译插件,无需为命名而头疼 |
BackgroundImagePlus | 自定义IDEA背景图 |
Alibaba Java Coding Guidelines | 一款阿里巴巴公司试行的开发设计规范~ |
FindBugs | FindBugs静态代码检查插件,可以检查你代码中的隐患,并给出原因。 |
SequenceDiagram | 可以根据代码调用链路自动生成时序图,研究源码的神器 |
Java Stream Debugger | 它可以将 Stream 的操作步骤可视化,非常有助于我们的学习 |
Codota | 支持智能代码自动提示,该功能可以增强 IDEA 的代码提示功能。 支持 JDK 和知名第三方库的函数的使用方法搜索,可以看到其他知名开源项目对该函数的用法。 |
jclasslib bytecode viewer | 查看字节码可视化插件 |
4.IDEA 连接数据库
5.IDEA智能提示
1.快速生成for循环
fori可以快速生成for循环,如下图:
集合.for可以快速生成forEach,如下图:
集合.forr可以快速生成倒叙的fori循环,它们的执行效率为(从快到慢):fori倒叙 > fori正序 > forEach,如下图:
2.快速判断生成判空语句
变量.null快速生成变量等于null的if语句,如下图:
变量.notnull快速生成变量不等于null的if语句,如下图:
变量.nn快速生成变量不等于null的if语句,是.notnull的简写,如下图:
3.布尔类型取正和取反
布尔变量.if取正,如下图:
!布尔变量:.if取反,如下图:
4.定义变量
类型.new可以快速生成new 类型()语句,如下图:
.val可以快速生成一个变量,如下图:
.var可以快速生成一个以var声明的变量(因为我这里使用的是JDK8,JDK8不支持var关键字,所以.var与.val的效果是一样的),如下图:
.field可以在类中声明一个成员字段,如下图:
5.快速生成synchronized代码块
变量名.synchronized可以快速生成synchronized代码块,如下图:
6.快速生成try catch异常捕获语句
方法名().try快速生成try catch异步捕获语句,如下图:
7.强制转换
变量名.cast可以快速生成转换语句,如下图:
变量名.castvar可以快速生成转换和定义变量语句,如下图:
8.自定义智能提示
表达式为:
List<$EXPR$> $END$=new ArrayList();
测试: