如果你是首次接触IDEA建议先看IDEA萌新快速入手教程
高效定位代码
无处不在的跳转
在编码过程中我们在多窗口之间进行跳转都是使用鼠标点击窗口进行跳转,效率十分低下,使用快捷键进行跳转更加便捷哦~
项目之间的跳转
顾名思义,有时候我们会打开多个窗口进行开发,然后在多个window之间进行切换编码。
强大如IDEA,提供了如下快捷键进行window之间的跳转。Ctrl+Alt+[
和Ctrl+Alt+]
文件之间的跳转
使用快捷键Ctrl+E
查看近期打开的文件,使用方向键选择近期打开的文件进行跳转。
如果我们只想在近期修改过的文件中跳转注意上面的Show changed only
选项,再次按下Ctrl+E
勾选上即可过滤出近期修改过的文件。
编辑位置之间的跳转
有时我们在多个文件之间进行编码操作(比如Dao,Service,Controller层之间)需要快速跳转至上一次编辑位置,使用Ctrl+Shift+BackSpace
跳转至上次编辑位置(Last Edit Location)。跳转至下次编辑位置为Next Edit Location,我这居然没快捷键,所以大家自己查看一下。
浏览位置之间的跳转
浏览位置和编辑位置不一样,浏览位置为光标停留位置,我们可以在各个浏览位置之间迅速跳转,这在阅读源码时特别有帮助。跳转至上一浏览位置Ctrl+Alt+←
,跳转至下一浏览位置Ctrl+Alt+→
。
书签之间的跳转
使用Ctrl+F11
调出书签栏,选择喜欢的标签即可(还是按照顺序来选吧),使用Ctrl+标签
即能迅速的跳转至书签位置。有限像红色警戒游戏中为部队进行编号的意思呀_
当然,我们也可以直接使用Ctrl+Shift+标签
迅速打上(取消)书签。
编辑区和文件区
IDEA界面分为编辑区和文件区,如图所示。注意文件区中的数字(如1:project),使用Alt+数字
即可跳转至对应的文件区,使用Esc
即可返回原来位置。
精准搜索
搜索类
使用Ctrl+N
可快速查找项目中的类。
注意上面红框处,如果我们需要查找jar包中的类,则需要勾选上,再次按下Ctrl+N
即可勾选上。
搜索文件
使用Ctrl+Shift+N
迅速查找项目中的文件。
搜索符号
符号(Symbol)在IDEA中代表着函数或属性,我们使用Ctrl+Alt+Shift+N
查找相应的符号。
搜索字符串
当我们需要查找字符串时使用上面的所有查找都无用了,需要使用Find Path进行查找,对应快捷键为Ctrl+Shift+F
。
可以看到我们可以通过勾选不同的选项进行不一样的查找,比如设置查找的文件范围等。
高效编码
列操作
public enum Code {
100:"CONTINUE"
101:"SWITCHINGPROTOCOLS"
200:"OK"
201:"CREATED"
202:"ACCEPTED"
public int code;
Code(int code){
this.code = code;
}
}
如上这段代码,我们现在需要将诸如100:"CONTINUE"
这些写成枚举,不懂IDEA列操作我们只能一个个的去修改,很费时间,如果使用列操作将十分快捷,如动图所示。
在讲解这个操作中我们需要了解几个快捷键:
- 选中一个单词,
Ctrl+Shift+→
- 选中光标到行尾的内容,
Shift+End
- 光标跳转至行首,
Home
- 光标出现在所有相同内容的行,
Ctrl+Alt+Shift+j
记住这四个快捷键我们就可以进行列操作了,首先将光标移至第一个:
前,使用Ctrl+Shift+→
选中这个冒号,再使用Ctrl+Alt+Shift+j
使光标出现在所有有冒号的行,此时将光标移动至字符串前,使用Ctrl+Shift+→
选中字符串,剪切, 光标跳转至行首粘贴,左括号,跳转至数字后,右括号,选中光标至行尾的内容,逗号,Esc退出光标多行,将最后一个逗号修改为分号。
live template
很多时候我们需要写一些固定格式的代码,比如public static final String
,我们可以借助live template
设置自己的模板迅速完成这些代码的编写。如下图所示,我们只需要输入psfs
即可快速编写出public static final String
。我们可以自定义许多模板加快我们的开发。
postfix
在使用postfix
前我们需要确保开启了postfix
。
在编码过程中经常使用for
循环,借助postfix
我们可以释放快速的完成for循环的编写。如下图即可迅速生成for (int i = 0; i < 100; i++) {}
。下面我们将介绍一些常用的postfix
。此部分内容为转载,来自公众号Java葵花宝典
var 声明
null 判空
notnull 判非空
nn 判非空
for 遍历
fori 带索引的遍历
not 取反
if 条件判断
cast 强转
return 返回值
Alt+Enter
自动创建函数
list replace
List<Integer> list = new ArrayList<>();
for (int i = 0; i < list.size(); i++) {
Integer integer = list.get(i);
//do something
}
如上这段代码对列表继续遍历操作。我们使用alt+enter
将其快速转换为foreach形式。使用Alt+Enter
我们可以快速的对代码进行重构。
字符串format
如果我们打印多个变量时我们使用加号将多个变量连接起来打印,使用Alt+Enter
我们可以将其转换为format格式。
字符串build
字符串的连接推荐使用StringBuilder完成,而不是使用加号。
导包
如果IDEA没有自动导包我们需要手动进行导入,在需要导入的类名上使用Alt+Enter
选中合适的包进行导入。
断点调试
快捷键 | 功能描述 |
---|---|
F8 | 单步调试,不进入函数内部 |
F7 | 单步调试,进入函数内部 |
Shift+F7 | 选择要进入的函数 |
Shift+F8 | 跳出函数 |
Alt+F9 | 运行到光标处 |
Alt+F8 | 执行表达式查看结果 |
F9 | 继续执行,进入下一个断点或执行完程序 |
Ctrl+F8 | 设置/取消当前行断点 |
Ctrl+Shift+F8 | 查看断点 |
条件断点
我们可以为断点设置某一条件,当且仅当满足该条件时此断点才生效。使用Ctrl+Shift+F8
查看断点,在Condition中设置条件。
阅读源码
查看类的大纲
当我们查看源码时首先需要掌握的就是该类有哪些方法,哪些变量,我们不需要慢慢滚动鼠标去查看,使用快捷键Ctrl+F12
即可快速查看类的大纲。
查看类图
使用快捷键Ctrl+Alt+Shift+U
查看当前类的UML类图。
查看类继承层次
有时候我们需要查看继承此类或者实现此接口的类还有哪些,使用Ctrl+H
即可查看全部子类。
谁调的我,我调的谁
public class test2 {
public static void main(String[] args) {
fun1();
}
public static void fun1(){
fun2();
fun3();
}
public static void fun2(){
fun3();
}
public static void fun3(){
System.out.println("fun3...");
}
}
如上所示代码十分简单,通过它我向大家演示方法的调用层次,光标置于方法上,使用快捷键Ctrl+Alt+H
,注意两个红框所示,通过切换这两个选项我们即可了解方法的调用层次。
查看谁调用fun2()
:
查看fun1()
调用了谁: