1. IntelliJ IDEA 介绍
2. windows 下安装过程
个人建议配置: 内存 8G 或以上, CPU 最好 i5 以上, 最好安装块固态硬盘(SSD),将 IDEA 安装在固态硬盘上,这样流畅度会加快很多。
IDEA 安装目录中的文件夹含义
路径:..ideaIU-2019.2
bin:容器,执行文件和启动参数等
help:快捷键文档和其他帮助文档
jre64: 64 位java 运行环境
lib: idea 依赖的类库
license:各个插件许可
plugin:插件
关于 IDEA VM配置的修改
- 大家根据电脑系统的位数,选择 32 位的 VM 配置文件或者 64 位的 VM 配置文件
- 32 位操作系统内存不会超过 4G,所以没有多大空间可以调整,建议不用调整了
- 64 位操作系统中 8G 内存以下的机子或是静态页面开发者是无需修改的。
- 64 位操作系统且内存大于 8G 的, 如果你是开发大型项目、 Java 项目或是 Android 项目,
建议进行修改,常修改的就是下面 3 个参数:
-Xms128m : 16G 内存的机器可尝试设置为 -Xms512m (设置初始的内存数,增加该值可以提高 Java 程序的启动速度。)
-Xmx750m : 16G 内存的机器可尝试设置为 -Xmx1500m (设置最大内存数,提高该值,可以减少内存 Garage 收集的频率,提高程序性能)
-XX:ReservedCodeCacheSize=240m : 16G 内存的机器可尝试设置为 -XX:ReservedCodeCacheSize=500m (保留代码占用的内存容量)
设置目录结构
路径: ..用户用户文件夹.IntelliJIdea2019.2
config: IntelliJ IDEA 个性化化配置目录
system: IntelliJ IDEA 系统文件目录
这是 IDEA 的各种配置的保存目录。 这个设置目录有一个特性,就是你删除掉整个目录之后,重新启动 IntelliJ IDEA 会再自动帮你生成一个全新的默认配置,所以很多时候如果你把 IntelliJ IDEA 配置改坏了,没关系,删掉该目录,一切都会还原到默认。
config 目录
config 目录是 IntelliJ IDEA 个性化化配置目录,或者说是整个 IDE 设置目录。此目录可看成是最重要的目录,没有之一,如果你还记得安装篇的介绍的时候,安装新版本的 IntelliJ IDEA 会自动扫描硬盘上的旧配置目录,指的就是该目录。这个目录主要记录了: IDE 主要配置功能、自定义的代码模板、自定义的文件模板、自定义的快捷键、 Project 的 tasks 记录等等个性化的设置。
system 目录
system 目录是 IntelliJ IDEA 系统文件目录,是 IntelliJ IDEA 与开发项目一个桥梁目录, 里面主要有:缓存、索引、容器文件输出等等,虽然不是最重要目录,
但也是最不可或缺的目录之一。
3. 启动应用后简单配置
设置 IDEA 中的各种插件,可以选择自定义设置、删除,或者安装本身不存在的插件(比如:支持 Scala 的插件)。这里不设置,后面也可以通过界面菜单栏的
settings 进行设置。
IDEA 插件官方下载地址: https://plugins.jetbrains.com/idea
4. 创建 Java 工程
IntelliJ IDEA 没有类似 Eclipse 的工作空间的概念(Workspaces),最大单元就是 Project。 这里可以把 Project 理解为 Eclipse 中的 Workspace。如果是对应 .net 技术栈的话,可以把 Project 理解为 VS 里面的解决方案。
- 不管是创建 class,还是 interface,还是 annotation,都是选择 new – java class
- 在 IDEA 里要说的是,写完代码,不用点击保存。 IDEA 会自动保存代码。
关于模块(Module)
- 在 Eclipse 中我们有 Workspace(工作空间)和 Project(工程)的概念,在 IDEA 中只有 Project(工程)和 Module(模块)的概念。这里的对应关系为:
Eclipse 中 workspace 相当于 IDEA 中的 Project
Eclipse 中 Project 相当于 IDEA 中的 Module
- 从 Eclipse 转过来的人总是下意识地要在同一个窗口管理 n 个项目,这在 IntelliJ IDEA 是无法做到的。 IntelliJ IDEA 提供的解决方案是打开多个项目实例,
即打开多个项目窗口。 即: 一个 Project 打开一个 Window 窗口。 - 在 IntelliJ IDEA 中 Project 是最顶级的级别,次级别是 Module。 一个 Project可以有多个 Module。目前主流的大型项目都是分布式部署的, 结构都是类似这种多 Module 结构。
- 相比较于多 Module 项目,小项目就无需搞得这么复杂。只有一个 Module 的
结构 IntelliJ IDEA 也是支持的,并且 IntelliJ IDEA 创建项目的时候,默认就是单 Module 的结构的。
如何删除模块
先从项目上移除模块,再从硬盘上删除模块。
5. 常用配置
File -> Settings
Build,Execution,Deployment
- 构建就是以我们编写的 java 代码、框架配置文件、国际化等其他资源文件、JSP 页面和图片等资源作为“原材料”,去“生产”出一个可以运行的项目的过程。
- Intellij Idea 默认状态为不自动编译状态, Eclipse 默认为自动编译:从 Eclipse 转到 Intellij 的,常常导致在需要操作 class 文件时忘记对修改后的 java 类文件进行重新编译, 从而对旧文件进行了操作。
6. 设置快捷键(Keymap)
操作 | 快捷键 |
---|---|
提示补全 (Class Name Completion) | alt+/ |
单行注释 | ctrl + / |
多行注释 | ctrl + shift + / |
收起所有的方法(collapse all) | ctrl + shift + 减号 |
打开所有方法(expand all) | ctrl + shift + = |
查找方法在哪里被调用(Call Hierarchy) | ctrl+shift+h |
查看类的继承结构图(Show UML Diagram) | ctrl + shift + u |
查看方法的多层重写结构(method hierarchy) | ctrl+alt+h |
7. 关于模板(Templates)
Editor – Live Templates 和 Editor – General – Postfix Completion
Live Templates(实时代码模板)功能介绍
它的原理就是配置一些常用代码字母缩写,在输入简写时可以出现你预定义的固定模式的代码,使得开发效率大大提高,同时也可以增加个性化。最简单的例子就是在 Java 中输入 sout 会出现 System.out.println();
psvm : 可生成 main 方法
sout : System.out.println() 快捷输出
// 类似的:
soutp => System.out.println("方法形参名 = " + 形参名);
soutv => System.out.println("变量名 = " + 变量);
soutm => System.out.println("当前类名.当前方法");
“abc”.sout => System.out.println("abc");
fori : 可生成 for 循环
// 类似的:
iter:可生成增强 for 循环
itar:可生成普通 for 循环
list.for : 可生成集合 list 的 for 循环
List<String> list = new ArrayList<String>();
输入: list.for 即可输出
for(String s:list){
}
又如: list.fori 或 list.forr
ifn:可生成 if(xxx = null)
//类似的:
inn:可生成 if(xxx != null) 或 xxx.nn 或 xxx.null
prsf:可生成 private static final
//类似的:
psf:可生成 public static final
psfi:可生成 public static final int
psfs:可生成 public static final String
8. 创建 Java Web Project 或 Module
9. 关联数据库
表面上很多人认为配置 Database 就是为了有一个 GUI 管理数据库功能,但是这并不是 IntelliJ IDEA 的 Database 最重要特性。数据库的 GUI 工具有很多,IntelliJ IDEA 的 Database 也没有太明显的优势。IntelliJ IDEA 的 Database 最大特性就是对于 Java Web 项目来讲,常使用的 ORM 框架,如 Hibernate、Mybatis 有很好的支持,比如配置好了 Database 之后, IntelliJ IDEA 会自动识别 domain 对象与数据表的关系,也可以通过 Database 的数据表直接生成 domain 对象等等。
10. 版本控制(Version Control)
- 很多人认为 IntelliJ IDEA 自带了 SVN 或是 Git 等版本控制工具,认为只要安装了 IntelliJ IDEA 就可以完全使用版本控制应有的功能。这完全是一种错误的解读, IntelliJ IDEA 是自带对这些版本控制工具的插件支持,但是该装什么版本控制客户端还是要照样装的。
- IntelliJ IDEA 对版本控制的支持是以插件化的方式来实现的。旗舰版默认支持目前主流的版本控制软件: CVS、 Subversion(SVN)、 Git、 Mercurial、Perforce、TFS。又因为目前太多人使用 Github 进行协同或是项目版本管理,所以 IntelliJ IDEA 同时自带了 Github 插件,方便 Checkout 和管理你的Github 项目。
- 在实际开发中,发现在 IDEA 中使用 SVN 的经历不算愉快,经常会遇到很多问题,比如紧急情况下 IDEA 无法更新、提交等。
即使我们项目没有使用版本控制功能, IntelliJ IDEA也给我们提供了本地文件历史记录。
11. 断点调试
Debug 的设置
设置 Debug 连接方式,默认是 Socket。 Shared memory 是 Windows 特有的一个属性,一般在 Windows 系统下建议使用此设置, 内存占用相对较少。
常用断点调试快捷键
操作 | 快捷键 | 解释 |
---|---|---|
step over | F8 | 当前行断点是一个方法,则不进入当前方法体内 |
step into | F7 | 当前行断点是一个方法,则进入当前方法体内 |
step out | Shift+F8 | |
resume program | F9 | 如断点下面代码还有断点则停在下一个断点上 |
stop | Ctrl+F2 | |
mute breakpoints | 使得所有的断点失效 | |
view breakpoints | 查看所有断点 |
条件断点
- 调试的时候,在循环里增加条件判断,可以极大的提高效率,心情也能愉悦
- 在断点处右击调出条件断点。可以在满足某个条件下,实施断点。
- 查看表达式的值(Ctrl + u):选择行, ctrl + u。还可以在查看框中输入编写代码时的其他方法:
12. 配置 Maven
Maven 的介绍
Maven 是 Apache 提供的一款自动化构建工具,用于自动化构建和依赖管理。开发团队基本不用花多少时间就能自动完成工程的基础构建配置,因为 Maven 使用了一个标准的目录结构和一个默认的构建生命周期。
在如下环节中,Maven 使得开发者工作变得更简单。
构建环节:
graph LR
清理-->编译
编译-->测试
测试-->报告
报告-->打包
打包-->部署
- 清理:表示在编译代码前将之前生成的内容删除
- 编译:将源代码编译为字节码
- 测试:运行单元测试用例程序
- 报告:测试程序的结果
- 打包:将 java 项目打成 jar 包;将 Web 项目打成 war 包
- 安装:将 jar 或 war 生成到 Maven 仓库中
- 部署:将 jar 或 war 从 Maven 仓库中部署到 Web 服务器上运行
13. 其它设置
常用插件
JRebel Plugin 热部署