工欲善其事必先利其器,对于Java开发来说,IDEA就是我们的利器之一。
今天我们一起来熟悉一下这个开发利器,不管是Java学习还是开发,熟练的掌握IDEA的使用,都是必要的。
一、下载安装
直接去官网下载:下载 IntelliJ IDEA
如果你去百度了IDEA,小心掉到了坑里,排在前面的全是广告或者盗版软件。
官网上,有两个版本:
Ultimate版和Community版,Ultimate版只有30天的试用期,试用期过后,是需要付费的。
Community版则是开源免费的。
对于还处于学习阶段的,可以直接Community版的,完全够用了(不分开发人员其实也是用的这个版本)。
对于某些特定的群体,比如学生、教师等,同样可以申请免费版的。
你可以去IntelliJ IDEA Ultimate特殊类别看看,自己是不是属于某些类别。
下载对应操作系统版本的可执行文件后,直接安装即可。
虽然IntelliJ IDEA是Java和Kotlin开发构建的,但是安装和运行不需要本地的Java运行时环境,也就是不需要你预先在本地安装 Java 运行时环境 (JRE)。它自身绑定的JetBrains Runtime (JBR),是专门用来运行 IntelliJ IDEA IDE本身的。 如果你要在IntelliJ IDEA里面开发Java的应用程序,就需要安装一个独立的Java Development Kit (JDK)。
二、使用
1、欢迎界面
安装完成,直接打开IDEA,进入欢迎界面。
第一次进入欢迎界面,项目菜单应该是干净的,没有任何项目。
后续创建或者导入项目后,欢迎界面会列出所有的项目。
要打开某个项目,直接单击项目名称即可。
2、创建项目
这里我们直接使用"New Project"新建一个项目:
接下来填写项目信息:
左侧选中Java(默认)。
右侧"Name:"表示该项目的名称。
"Location:"表示项目所在路径。
"Build system:"表示构建系统的选择,当前直接选择"Intellij",Maven和Gradle后续会专门写文章讲解。
"JDK:"表示使用的JDK版本。
有两种形式可以注册JDK(让IDEA识别到):
"Download JDK..."是在线下载,可以直接下载列出的合适版本。
"Add JDK from Disk..."用于你已经在本地开发环境下载了JDK,只需要通过这种方式告诉IDEA,JDK具体的路径就行。
当前项目的"Advanced Settings"是默认回填的,不需要修改。
直接"Created"即可。创建完成后的界面如下:
3、编写代码
在初学阶段,左侧工具栏最长使用的就是"Project"和"Structure"。
"Project"中以树状结构显示项目的目录和文件。"src"就是放源代码的地方。(我们还没开始写,所以是空的)。
"Structure"显示当前打开文件的代码结构(比如,Java类的方法、字段等),便于快速导航。目前显示 "No structure",因为没有文件被选中。
我们直接在src上右击,"New"-->"Java Class"准备创建一个Java类。
"New"还有一个选项"Package"是创建包的。
对包、类不太熟悉的,可以看下:
这里我们直接在创建类时,带上包名。
创建完成后的界面:
"com.lazy.snail"是包名,"HelloJava"是类名。
在代码编辑区域输入"psvm",然后按下Tab键,就会直接输出main方法。
这种输入几个字母快速生成代码使用的是IDEA的实时模版,后面会列出常用的。
左侧的Structure也显示出了main方法。
三、基础快捷键
3.1代码导航与搜索
Ctrl + N 快速查找类:输入类名的部分进行模糊匹配
Ctrl + Shift + N 快速查找文件:跟查找类差不多,可以快速查找文件
Ctrl + Alt + Shift + N 快速查找符号:不仅能查找类、方法,还能查找变量、字段等所有“符号”。
Shift + Shift 全局搜索:双击Shift键,弹出的全局搜索框。你可以搜索任何内容:类、文件、符号、配置项,甚至是IDEA的命令。熟练使用它能极大减少你在菜单中寻找功能的时间。
找东西我一般都使用这个快捷键。
Alt + F7 查找代码使用的地方:把光标放在方法、变量或类名上,使用这个快捷键,就可以快速列出所有调用或使用这个元素的地方。
Ctrl + B(Ctrl + 鼠标左键) 跳转到定义:把光标放在一个变量、方法或类名上,使用这个快捷键或点击鼠标,可以跳转到它的定义位置。
Ctrl + Alt + B 跳转到实现:光标在一个接口方法或抽象方法上时,按下快捷键,IDEA会列出所有实现该方法的类或方法,你可以选择跳转。
当前案例没有实现,使用后:
Ctrl + Shift + E 最近编辑的位置:显示你最近修改过代码的位置,精确到行。
3.2 代码编辑和生成
Alt + Insert 智能生成代码:可以快速生成构造函数、Getter/Setter、equals()和hashCode()、toString()等常用方法。
Ctrl + Alt + L 格式化代码:一键美化代码,使其符合统一的代码规范。避免因格式问题引起的洁癖症发作,提升代码可读性。
Ctrl + D 复制当前行或选中内容:快速复制一行或一块代码,省去了先复制再粘贴的步骤。
Ctrl + X 剪切当前行或选中内容:快速剪切一行或一块代码,光标在行首就可以了。
Ctrl + Alt + T 环绕代码块:选中一段代码,按下快捷键,可以选择用try-catch、if-else、for循环等结构将其包围。
Ctrl + Alt + M 提取方法:选中一段具有独立功能的代码,按下快捷键,IDEA会把这段代码提取成一个新方法,并自动处理参数和返回值。重构带代码的时候很好用。
Ctrl + Shift + Enter 智能补全语句:在当前语句结尾处按下这个快捷键,IDEA会自动添加分号、括号,甚至在if、for、while等语句后添加大括号。
Ctrl + Space 基本代码补全: 代码不全提示
Ctrl + Shift + Space 智能类型匹配补全:在需要某种类型对象的地方,IDEA会根据上下文提示符合类型的变量或方法。
3.3 快速定位与切换
Ctrl + Tab 在打开的文件之间快速切换: 类似Windows的Alt + Tab,用于快速切换当前已打开的文件。
Ctrl + F12 查看当前文件结构: 快速显示当前Java文件的所有方法和字段,方便快速定位。
Alt + F12 快速打开内置终端:不需要离开IDEA,就可以直接在内置终端中执行Maven命令、Git命令、系统命令等。
四、高级技巧
4.1 实时模版
psvm + Tab: 快速生成public static void main(String[] args) {}
sout + Tab:快速生成System.out.println();
fori + Tab:快速生成for (int i = 0; i < array.length; i++) {}
iter + Tab:快速生成for (ElementType element : collection) {}
还可以自定义模版:
File -> Settings/Preferences -> Editor -> Live Templates
效果就是在编辑区域输入logd然后Tab,就可以快速的生成日志声明。
4.2 后缀补全
expression.var + Tab:表达式结果提取为变量。
输入new HashMap<String, String>().var,按Tab,自动变成:Map<String, String> stringStringMap = new HashMap<>();
expression.for + Tab:为集合或数组生成增强for循环。
输入myList.for,按Tab,自动变为:for (String s : myList) {}
expression.null + Tab:生成if (expression == null)。
expression.notnull + Tab:生成if (expression != null)。
expression.cast + Tab:对表达式进行类型转换。
expression.try + Tab:用try-catch包裹表达式。
4.3 Debugger使用
调试是排查问题、理解代码执行流程的必备技能。
设置断点:
行断点:在代码行号旁边点击即可设置/取消。
条件断点:右键点击断点,选择More或Edit Breakpoint,可以在Condition中设置条件,只有当条件满足时断点才会被触发。
调试窗口:
变量窗口:在调试过程中,实时显示当前作用域内的所有变量及其值。
观察窗口:你可以添加自定义表达式,持续观察其值的变化,即使它不在当前作用域。
表达式求值:在调试暂停时,按下Alt + F8,可以即时输入任何Java表达式并查看其结果,非常适合临时测试或验证逻辑。
控制执行:
Step Over (F8): 单步跳过当前行,遇到方法调用时不进入方法内部。
Step Into (F7): 单步进入当前行的方法内部。
Step Out (Shift + F8): 从当前方法跳出,回到调用它的地方。
Resume Program (F9): 继续执行程序,直到下一个断点或程序结束。
Drop Frame:返回到函数调用的上一步(Ctrl + Alt + F8)
这是一个时光倒流的功能。当你调试进入一个方法后,发现参数不对或想重新执行,可以使用Drop Frame回到调用这个方法的上一步,重新进入或修改参数。
4.4 重构
Shift + F6 (Rename):智能重命名将光标放在类名、方法名、变量名上,按下后IDEA会帮你重命名所有引用到它的地方,非常安全高效。
Ctrl + Alt + V (Extract Variable):提取变量选中一个表达式,按下这个键,IDEA会将其提取为一个新的局部变量。
Ctrl + Alt + C (Extract Constant):提取常量选中一个字面量,按下后IDEA会将其提取为一个新的static final常量。
Ctrl + Alt + F (Extract Field):提取字段选中一个表达式,按下后IDEA会将其提取为一个新的类字段。
Ctrl + Alt + P (Extract Parameter):提取参数选中一个变量或表达式,把它作为参数传递给当前方法。
4.5 版本控制
IDEA深度集成了Git、SVN等版本控制系统,让你在IDE内完成大部分版本控制操作。
Commit(提交):Ctrl + K
打开提交窗口,查看修改,编写提交信息。
Push(推送):Ctrl + Shift + K
将本地提交推送到远程仓库。
Pull(拉取):Ctrl + T
从远程仓库拉取最新代码。
Update Project(更新项目):Ctrl + T
同步项目代码。
Show History(查看历史): 右键文件 -> Git -> Show History
查看文件的修改历史和提交记录。
Compare with... (比较): 右键文件 -> Compare with...
比较当前文件与版本库中某个版本或另一个分支的差异。IDEA的可视化差异对比非常直观。
4.6 代码分析
IDEA会实时分析你的代码,提供各种提示和建议,帮助你发现潜在问题和优化空间。
“小黄灯”提示:当代码行左侧出现一个黄色小灯泡图标时,表示IDEA检测到可优化的代码或潜在问题。点击它,会弹出建议列表,例如:“Remove unused import”(移除未使用的导入)
“Replace with enhanced 'for' loop”(替换为增强for循环)
“Simplify 'if' statement”(简化if语句)
学会看这些提示并采纳建议,你的代码会更简洁、更规范、更健壮。
Inspections(检查):File -> Settings/Preferences -> Editor -> Inspections。
这里列出了IDEA所有的代码检查规则。
你可以根据自己的喜好开启或关闭某些检查,甚至调整它们的严重级别。
五、其他
5.1 插件
通过安装插件,你可以为IDEA添加更多功能。
安装路径: File -> Settings/Preferences -> Plugins。
需要的插件可以直接在插件市场搜索:
目前我们使用较多的插件就是jclasslib,后期使用到的常见插件会在后续的文章中列出。
5.2 UI主题与字体设置
这块就一带而过了,全靠自己喜好,空闲时候看看就行,不是重点。
主题:File -> Settings/Preferences -> Appearance & Behavior -> Appearance。
Theme下拉菜单可以选择:Light(亮色)、Darcula(深色,默认推荐)、High contrast(高对比度)。
插件市场也有很多自定义主题。
字体:File -> Settings/Preferences -> Editor -> Font。
选择你喜欢的编程字体(例如JetBrains Mono、Fira Code、Consolas等),调整Size(字号)和Line height(行高),找到最适合自己的显示效果就行了。
5.3 存与性能优化
如果你的IDEA运行缓慢,就有可能是内存分配不足或插件太多了。
调整JVM内存:
Help -> Change Memory Settings...。
根据你的电脑内存大小,适当调大IDEA的Xmx(最大内存)和Xms(初始内存),
例如设置为2048MB或4096MB。调整后需要重启IDEA。
关闭不常用插件:
在Plugins设置里,禁用那些你不常用或不需要的插件,它们可能会占用额外的内存和CPU资源。
定期清理缓存:
File -> Invalidate Caches / Restart...。
选择Invalidate and Restart。
清除IDEA的缓存并重启,有时能解决一些奇奇怪怪的问题。
结语
大致先梳理到这里吧。
IDEA肯定不止我梳理的这些功能,而且它还在不断地丰富自己的功能。
在写代码的时候,会不自觉的使用这些功能,慢慢的就形成了肌肉记忆。
下一篇预告
Day23 | Java泛型详解
如果你觉得这系列文章对你有帮助,欢迎关注专栏,我们一起坚持下去!
更多文章请关注我的公众号《懒惰蜗牛工坊》