idea社区版jdk设置(cqh-IntelliJIDEA使用)

9. IntelliJ IDEA 使用

内容导视:

  • 介绍
  • 创建普通 JavaSE 项目
  • 常用的设置
  • 常用快捷键
  • 自定义模板
  • 断点调试
  • 其它
9.1 介绍

内容导视:

  • 介绍
  • 下载与安装
  • 卸载
  • 详细的教程
9.1.1 介绍

IDE 即集成开发环境,可以把编写代码、组织项目、编译、运行、调试放在一个环境下,极大提高开发效率。

有快捷键一键生成代码与注释;写代码会有自动提示补全方法名;会自动检查代码中有误的地方并给出提示选择方案修改错误;查看类与类的关系、此类的所有方法和字段等。

目前最流行用于 Java 开发的 IDE 是 IntelliJ idea,因为确实好用,整合主流框架十分轻松,极大提升开发代码的效率。

介绍

IDEA 是 JetBrain 公司的其中一款产品,官网:https://www.jetbrains.com

其它产品如 WebStorm 用于开发 JavaScript、HTML5、CSS3 等前端技术。

IDEA 全称 IntelliJ IDEA,是 Java 语言的集成开发环境,在业界被公认为是最好的 java 开发工具之一,尤其在智能代码助手、代码自动提示、重构、J2EE 支持、Ant、JUnit、CVS 整合、代码审查、创新的 GUI 设计等方面的功能可以说是超常的。

IDEA 也支持主流的技术与框架,擅长企业应用、移动应用和 WEB 工具的开发。

相比 Eclipse 的优势

  • 强大的整合能力,比如 Git、Maven、Spring 等
  • 提示功能的快速、便捷
  • 提示功能的范围广
  • 好用的快捷键与代码模板
  • 精准搜索
9.1.2 下载与安装

下载地址:https://www.jetbrains.com/idea/download/#section=windows

有 Ultimate 旗舰版和 Community 社区版,社区版是免费的,旗舰版支持的功能更多,如协同远程开发、数据库工具、前端语言、JavaEE 等,两个版本的详细对比:JetBrains Products Comparison,需要付费,可以先试用一个月,选择其一点击 Download 下载,.exe 与 .zip 随意(exe 直接双击,zip 需要解压缩)

您不需要安装 Java 来运行 IntelliJ IDEA,因为 JetBrains 运行时与 IDE 捆绑在一起(基于 jre 11)。但是,如果要开发 Java 应用程序,还需要一个独立的 JDK。

汉化:https://blog.csdn.net/qq_35067322/article/details/105429832

目录结构

  • bin:启动文件、虚拟机配置信息等
  • help:帮助文档
  • jbr:自带的 jre
  • lib:依赖的类库
  • license:插件的许可信息
  • plugins:插件

bin 目录下的 idea64.exe.vmoptions 文件是虚拟机的配置信息

-Xmx750m// 最大内存,将数值调大可以提高程序性能 -Xms128m// 初始内存 -XX:ReservedCodeCacheSize=512m// 保留代码的缓存大小 -XX: UseG1GC// 垃圾优先收集器

请勿添加注释

C:\Users\用户名\AppData\Local\JetBrains\IntelliJIdea2021.2 存放(system)系统临时、缓存、本地历史文件等

C:\Users\用户名\AppData\Roaming\JetBrains\IntelliJIdea2021.2 存放(config)插件、文件模板、快捷键等文件

9.1.3 卸载

控制面板/卸载程序,或 Windows 设置/应用

点击要卸载的应用;且手动删除内容如下:软件的安装目录、system 与 config、代码存放目录。

一个 project 项目就是一个工作窗口,一个项目可以有多个 module 模块,每个模块里面都有 src 目录存放着 *.java 源文件;除了创建空项目,每个项目都自带一个模块。

9.1.4 详细的教程

官方详细使用文档:https://www.jetbrains.com/help/idea/installation-guide.html#standalone

IntelliJ IDEA使用教程:https://lixuekai.blog.csdn.net/article/details/77449117,作者:请叫我大师兄

9.2 创建普通 JavaSE 项目

内容导视:

  • 创建普通项目
  • 切换项目
  • 删除项目、模块
  • 窗口结构
  • 可能会遇见的错误
  • 创建 Java 源文件
9.2.1 创建普通项目

创建一个新项目:Projects/New Project/java

idea社区版jdk设置(cqh-IntelliJIDEA使用)(1)

如果没有配置 JAVA_HOME 环境变量,就不会显示 SDK,需要 Add JDK... 指定 JDK 的安装目录;

idea社区版jdk设置(cqh-IntelliJIDEA使用)(2)

Project name 是项目名,Project location 是此项目的路径,Finish 即可。

创建空项目

还可以创建一个空项目,模块由自己手动创建。

idea社区版jdk设置(cqh-IntelliJIDEA使用)(3)

会弹出一个 Project Structure 窗口,点击 New Module 创建模块。

idea社区版jdk设置(cqh-IntelliJIDEA使用)(4)

或者 Alt F 快捷键选择 New 可以创建 Module,或项目右键 New Module,或 Ctrl Shift Alt S 打开 Project Structure/Modules 按下 号,点击 New Module。

idea社区版jdk设置(cqh-IntelliJIDEA使用)(5)

9.2.2 切换项目

在多个项目之间切换是 Open Recent,关闭项目 Close Project;

idea社区版jdk设置(cqh-IntelliJIDEA使用)(6)

9.2.3 删除项目、模块

idea社区版jdk设置(cqh-IntelliJIDEA使用)(7)

可以单击想要操作的项目即可进入或者点击 Open Selected。

Show in Explorer 可以打开文件资源管理器的项目所在目录;Remove from Recent Projects 是删除此项目,但硬盘上还在;删除此项目后把文件资源管理器对应的项目选中按下 Shift Del 快捷键永久删除。

而删除模块有两个步骤,右键模块 Remove Module,可以看到模块右下角的蓝色方块消失,意味着它变成了普通目录,再次右键 Delete(Del 是普通删除,Alt Del 是安全删除)即可删除。

idea社区版jdk设置(cqh-IntelliJIDEA使用)(8)

idea社区版jdk设置(cqh-IntelliJIDEA使用)(9)

9.2.4 窗口结构

分为菜单栏、工作列表、编辑区域、快捷栏。

idea社区版jdk设置(cqh-IntelliJIDEA使用)(10)

在编辑区域编写源代码,按下 Ctrl Shift F10 即可运行 main 方法。

9.2.5 可能会遇见的错误

Java 版本问题

打开项目结构,或快捷键 Ctrl Alt Shift S

idea社区版jdk设置(cqh-IntelliJIDEA使用)(11)

idea社区版jdk设置(cqh-IntelliJIDEA使用)(12)

idea社区版jdk设置(cqh-IntelliJIDEA使用)(13)

这个地方没设置会出错无法运行代码。

Project name:当前项目的名字

Project SDK:控制项目使用的 JDK 版本

Project language level:项目语言级别

当使用的新特性所在版本超过设定的 JDK 版本,就会报错。

例:在 JDK7 版本,新增了一个特性:自动类型推断机制(钻石表达式),使用泛型 new 对象时后面的 <> 中可以省略数据类型,会通过前面 <> 的内容自动推断类型。

idea社区版jdk设置(cqh-IntelliJIDEA使用)(14)

一旦设置 level 为小于 7,如 level 6 就会报错:

idea社区版jdk设置(cqh-IntelliJIDEA使用)(15)

Project language level 是编译时检查源码是否符合指定版本的语法。如果 level 设置为 6,则代码使用的 JDK7 和 JDK8 版本的新特性会被认为是语法错误。

一般 level 等级与 JDK 版本一致即可,但如果自己开发使用的 JDK 版本大于部署时服务器的 JDK 版本,可以把 level 往下调至服务器的 JDK 版本,且不使用高版本的新特性。

JDK8 新增了 Lambda 表达式、函数式接口等新特性;特性只能往下兼容,如 JDK8 版本可以使用 JDK7、JDK6 ... 的特性,而不能使用 JDK9 的特性。

Project compiler output:用于指定项目中的 java 源文件编译后生成的这些 *.class 文件存放的根目录

修改成如下即可,记得修改后点击 Apply 或 OK,否则不生效。如 01-module 模块的 class 文件会在 out/production/01-module 下。

idea社区版jdk设置(cqh-IntelliJIDEA使用)(16)

9.2.6 创建 Java 源文件

module 下有个蓝色的 src 文件夹,用于存放源文件,src 右键/new/Java Class

idea社区版jdk设置(cqh-IntelliJIDEA使用)(17)

或按下 Alt Ins scrlk 快捷键,此键在 Backspace 退格键的上面。

idea社区版jdk设置(cqh-IntelliJIDEA使用)(18)

通过上下左右箭头定位到 Java Class 然后回车或点击 Java Class,输入源文件名后回车。(不用写后缀 .java)

导入其它模块的类

在类中使用其它模块的类时,在错误处(将光标定位到红色波浪处)按下 Alt Enter,选择 Add dependency on module '模块名' 后回车。

实际在模块下的 iml 文件中添加了 <orderEntry type="module" module-name="模块名" /> 标签。

9.3 常用的设置

内容导视:

  • Appearance & Behavior
  • Editor
  • Build,Execution,Deployment
  • 其它

首先打开设置 File/Settings(快捷键:Ctrl Alt S)

idea社区版jdk设置(cqh-IntelliJIDEA使用)(19)

从上至下依次为:外观与行为、快捷键、编辑、插件、版本控制、构建执行部署、语言和框架、工具、高级设置

依次介绍:

9.3.1 Appearance & Behavior

设置主题

Appearance/Theme

idea社区版jdk设置(cqh-IntelliJIDEA使用)(20)

设置菜单栏字体大小

Appearance/Size

如果觉得菜单项或设置中的字体太小,Size 可以往上调,一般设置为 12。

idea社区版jdk设置(cqh-IntelliJIDEA使用)(21)

重新启动项目时,如何打开一个项目

  • New window:新创建一个窗口
  • Current window:使用当前窗口
  • Ask:总是询问

idea社区版jdk设置(cqh-IntelliJIDEA使用)(22)

9.3.2 Editor

内容如下:

  • 设置使用鼠标滚轮调节字体大小
  • 自动导包
  • 行号与分隔符
  • 显示方法参数信息
  • 忽略大小写提示
  • 取消单行显示文件标签
  • 设置悬浮提示
  • 设置编辑区域字体
  • 单独设置控制台字体
  • 设置文档注释的字体颜色
  • 添加文件头部信息
  • 设置项目文件字符编码

设置使用鼠标滚轮调节字体大小

General/Mouse Control,勾上 Change font size with Ctrl Mouse Wheel,回到编辑页面按住 Ctrl 同时滚动鼠标滚轮即可调整字体大小。

Move code fragments with drag-and-drop:可以拖拽选中的代码片段到别的位置

idea社区版jdk设置(cqh-IntelliJIDEA使用)(23)

自动导包

General/Auto Import

  • Add unambiguous imports on the fly:编写代码时,写的简单类名是唯一的,自动添加 Import 导入该类
  • Optimize imports on the fly:当 import 导入的类没用上时,自动删去该 import

idea社区版jdk设置(cqh-IntelliJIDEA使用)(24)

Insert imports on paste(在粘贴时导入),Always:总是,Never:从不,Ask:询问

如想使用 Date 类,但有多个简单类名为 Date,需要 Alt Enter 键 import class 选择一个。

idea社区版jdk设置(cqh-IntelliJIDEA使用)(25)

输入 DateFormat,类名唯一,会自动在首行添加 import 此类的完整类名;删去 DateFormat 会自动删除首行的 import 导入语句。

行号与分隔符

General/Appearance,勾选 Show method separators,显示方法之间的分隔符;勾选 Show line numbers 显示行号。

关闭文档弹窗

General/Code Completion 取消勾选 Show the documentation popup in...

显示方法参数信息

General/Code Completion 勾选 Show the paramerter info...

Show parameter name hints...:提示方法参数名称和类型

Show the paramerter info...:弹出方法参数名和类型

Show full method signatures:弹出完整的方法签名

idea社区版jdk设置(cqh-IntelliJIDEA使用)(26)

忽略大小写提示

General/Code Completion

老版将 Case sensitive completion 改为 None;

新版取消勾选 Match case(区分大小写)

idea社区版jdk设置(cqh-IntelliJIDEA使用)(27)

First letter only:仅首字母区分大小写,如 string 等同于 STRing

All letters:所有都区分大小写,String 不等同于 string

取消单行显示文件标签

如果设置单行显示,当编辑区即代码书写区域,编辑了或者浏览很多文件,可以看到 Number.java、Object.java ...这样展示不下的文件就会被隐藏。

idea社区版jdk设置(cqh-IntelliJIDEA使用)(28)

General/Editor Tabs 取消勾选 Show tabs in one row(在同一行显示,可能会造成文件名显示不完全)

Hide tabs if there is no space:如果空间不足就隐藏标签

idea社区版jdk设置(cqh-IntelliJIDEA使用)(29)

设置悬浮提示

当指针停在方法或某处时,会自动显示对应的文档注释信息。

idea社区版jdk设置(cqh-IntelliJIDEA使用)(30)

Code Editing 勾选 Show quick documentation on hover

翻到最下面,Editor Tooltips/Tooltip delay:500,延迟 500 毫秒后再提示。

idea社区版jdk设置(cqh-IntelliJIDEA使用)(31)

设置编辑区域字体

font/Size

font 可以选择喜欢的字体,size 是字体大小,line height 是每行间距。

idea社区版jdk设置(cqh-IntelliJIDEA使用)(32)

设置编辑区域主题

Color Scheme/Scheme

Scheme 与整体主题风格一致即可,下面就不太搭。

idea社区版jdk设置(cqh-IntelliJIDEA使用)(33)

除了 Font/size 可以设置字体外,通过 Color Scheme/Color Scheme Font,勾选 Use color scheme font instead of the,也可以设置。

单独设置控制台字体

Color Scheme/Console Font 勾选 Usb console font instead of the

设置文档注释的字体颜色

Color Scheme/Language Defaults,Comments/Doc comment/Text

idea社区版jdk设置(cqh-IntelliJIDEA使用)(34)

同一个包下超过指定个数的 import 会自动转为 *

Code Style/java/Imports

Class count to use import with '*':5,导入同一个包的类累计 5 次时,自动转为 *

Names count to use static import with '*':3,导入同一个包下静态的类累次 3 次时,自动转为 *

例:导入 5 个 java.util 包下的类会转为 import java.util.*;

idea社区版jdk设置(cqh-IntelliJIDEA使用)(35)

添加文件头部信息

File and Code Templates/Includes/File Header 写入信息,每当创建文件时,自动在头部加入这段文字,在 Description: 中有各个变量的含义,如 ${DATE} 是当前系统日期。

我习惯在 java 源文件头部添加文档注释;作者处可以使用 ${USER} 替代。

idea社区版jdk设置(cqh-IntelliJIDEA使用)(36)

设置项目文件字符编码

File Encodings/Global Encoding 等为 UTF-8(统一编码才不会乱码,UTF-8 是全球通用的)

勾选 Transparent native-to-ascii conversion:将 properties 文件输入的所有字符转换成 ASCII 序列码保存

UTF-8 BOM 又叫 UTF-8 签名。(BOM:byte order mark)

UTF-8 的 BOM 是为了支援 UTF-16、UTF-32;BOM 签名的意思就是告诉编辑器当前文件采用何种编码,方便编辑器识别。BOM 虽然在编辑器中不显示,但是会产生输出,就像多了一个空行。

有很多软件不能识别 BOM,也会被当作编码的一部分造成乱码,所以最好选择 with NO BOM。

idea社区版jdk设置(cqh-IntelliJIDEA使用)(37)

取消方法形参名提示

idea社区版jdk设置(cqh-IntelliJIDEA使用)(38)

想要取消显示 second:、minute:、hour:

Inlay Hints,将 java 取消勾选,确定保存。

idea社区版jdk设置(cqh-IntelliJIDEA使用)(39)

或者右键 Disable Hints

idea社区版jdk设置(cqh-IntelliJIDEA使用)(40)

若想重新显示提示,Inlay Hinst/java,Parameter hints,勾上 Show parameter hints for

idea社区版jdk设置(cqh-IntelliJIDEA使用)(41)

9.3.3 Build,Execution,Deployment

自动编译

idea社区版jdk设置(cqh-IntelliJIDEA使用)(42)

Build project automatically:项目自动编译

Compile independent modules in parallel:多个模块并行编译

9.3.4 其它

内容导视:

  • 省电模式
  • 文件的显示位置
  • 保存及导入原有配置

省电模式

File/Power Save Mode会关闭代码检查与提示等功能

idea社区版jdk设置(cqh-IntelliJIDEA使用)(43)

如果没有了提示功能,可以看看是否误点了

文件的显示位置

idea社区版jdk设置(cqh-IntelliJIDEA使用)(44)

Split Right:将文件在右边分屏

Split and Move Right:将文件移到右边分屏

Split Down:将文件在下边分屏

Split and Move Down:将文件移到下边分屏

设置单个文件的字符编码

idea社区版jdk设置(cqh-IntelliJIDEA使用)(45)

编辑区右下角修改文件编码

Reload:暂时改成 xxx 编码显示,但文件还是原来的编码

Convert:真正的转换

保存及导入原有配置

idea社区版jdk设置(cqh-IntelliJIDEA使用)(46)

File/Manage IDE Settings,Export Settings 导出设置;以后 Import Settings 导入,恢复原本设置。

9.4 常用快捷键

内容导视:

  • 文本编辑
  • 查找浏览
  • 修改快捷键
  • 常见问题

的确很便捷对吧。up、down、left、right 分别对应上下左右箭头。

9.4.1 文本编辑

选择要粘贴的内容

Ctrl Shift V

粘贴带包名的类名

先 Ctrl Shift Alt C 复制类名,再 Ctrl Shift Alt V 粘贴

撤销

Ctrl Z

反撤销

Ctrl Shift Z

逐渐选中区域

Ctrl W

删除一行(Delete Line)

Ctrl Y

向下复制一行(Duplicate Line Or Selection)

Ctrl D

在域的范围内上下移动行

Shift Ctrl 上下箭头

上下移动行

Shift Alt 上下箭头

整体移动

Tab

向上开始新的一行(Start New Line Before Current)

Ctrl Alt Enter

向下开始新的一行(Start New Line)

Shift Enter

自动在语句末尾加上分号

Ctrl Shift Enter

单行注释

Ctrl /

多行注释

Ctrl Shift /,再按还原

格式化代码

Ctrl Alt L

大小写转换

Ctrl Shift U

重命名

Shift F6

提示补全(Basic)

Ctrl 空格

收起代码块或方法

Ctrl . 或 Ctrl - 或右键/Folding

打开代码块或方法

Ctrl . 或 Ctrl

收起全部代码块

Ctrl Shift -

打开全部代码块

Ctrl Shift

提示方法形参类型(Parameter Info)

Ctrl P(先将光标定位到方法的括号里)

查看文档(Quick Documentation),将光标定位方法名或类名上

Ctrl Q 、 Alt 鼠标中键

快速定位至错误处

F2 、 Shift F2

解决错误

Alt Enter

快速生成构造和其他方法如 getset 、 toString 等方法

Alt Ins Scrlk

局部变量抽取为成员变量

Ctrl Alt F

生成 try-catch 等常用代码块

Ctrl Alt T

抽取成方法

Ctrl Alt M

自动分配变量名

Ctrl Alt V

清除多余的 import

Ctrl Alt O

重写方法

Ctrl O

实现接口方法

Ctrl i

选择单词填入(Cyclic Expand Word): Alt (Shift) /,Shift 是反方向

当你什么都不写,按下此快捷键从当前行的上方选择并填入单词;当你已经输入开头,如 s,就会寻找本类 s 开头的单词自动填人。(可以多按几次找到想要的单词)

idea社区版jdk设置(cqh-IntelliJIDEA使用)(47)

多行操作:Shift Alt Ins Scrlk,再按住 Shift 和上下箭头,或者按住鼠标左键不放拖动鼠标,会增加光标个数。(期间左键单击光标变为 1)

idea社区版jdk设置(cqh-IntelliJIDEA使用)(48)

另一种方法,按住 Alt 和鼠标左键不放,鼠标往下滑。

快速生成方法

Select None 是无参构造,如果想同时选中多个字段,可以通过 Shift 上下键或 Ctrl A 或 Ctrl 鼠标点击选择生成的有参构造为哪些字段赋值。

idea社区版jdk设置(cqh-IntelliJIDEA使用)(49)

idea社区版jdk设置(cqh-IntelliJIDEA使用)(50)

9.4.2 查找浏览

关闭当前编辑页面

Ctrl F4、右键编辑区的文件标签点击 Close、Shift 单击标签

单独为编辑页面生成窗口

Shift F4

关闭/隐藏页面

(Shift) Esc、Ctrl Shift F4

编辑窗口全屏显示

Ctrl Shift F12

左右移动标签查看对应文件

Alt 左右箭头

光标不动,上下翻页

按住 Ctrl 不松,按下 Up/Down

光标至当前显示的内容首尾

Ctrl Pgup/Pgdn

光标至文件首尾

Ctrl Home/End

光标在方法之间移动

Alt 上下箭头(up/down)

光标返回上一次编辑的位置

Ctrl Alt 左右箭头(left right)

查看光标最近到过的位置(Recent Locations)

Ctrl Shift E

跳转至某行某列

Ctrl G

打开对应菜单栏

Alt 划横线的字母

打开对应快捷栏

Alt 数字

打开当前文件所在文件夹(Show In Explorer)

按住 Ctrl 点击文件标签 或 Ctrl Alt F12

打开最近修改的文件

Ctrl E 、Ctrl Tab(Ctrl 不要松,按下 Tab 键或按下画横线的字母和数字)

Alt 1 、 Alt Home 进入工作列表,上下箭头选择文件,回车或按下 F4。

查找所有文件

双击 Shift

查找类文件

Ctrl N

查找文件

Shift Ctrl N

查找(全局)

Ctrl (Shift) F

选中查找的结果之一

(Shift) F3、 Ctrl (Shift) L

替换

Ctrl R

标记某行

Ctrl Shift 数字(再按取消标记)

标记某行

Ctrl F11,点击对应序号标记

跳转至标记的某行

Ctrl 数字

添加书签

F11

查看收藏与书签

Alt 2

跳转书签所在位置

Shift F11

查找已有的模板缩写

Ctrl J

查看源码

按住 Ctrl 再单击类名、Ctrl B

查看父类方法(Go To Super Method)

将光标定位到子类方法名处,按下 Ctrl U

查看一个类的结构

Ctrl F12、Alt 7

查看类的继承关系

Ctrl H

查看有关所有实现或者覆写了当前方法的类的结构图(Method Hierarchy)

Ctrl Shift H

查看类的继承结构图(Show UML Diagram)

Ctrl Alt (Shift) U、右键 Diagrams

呈现当前方法的调用层级结构(Call Hierarchy)

Ctrl Alt H

idea社区版jdk设置(cqh-IntelliJIDEA使用)(51)

查看此文件在磁盘的位置:按住 Ctrl 键,点击此文件标签,或者右键 Open In/Explorer

idea社区版jdk设置(cqh-IntelliJIDEA使用)(52)

添加到收藏(Add To Favorites):Shift Alt F、或者文件右击 Add To Favorites 选择已有的收藏夹,Add To New Favorites List 创建新的收藏夹。

替换:Ctrl R,Replace 一个个替换,All 全部替换,include 排除(被排除的不会被替换)

idea社区版jdk设置(cqh-IntelliJIDEA使用)(53)

9.4.3 修改快捷键

打开 Settings/keymap,有两个放大镜,左边输入功能名称;点击右边的放大镜按下快捷键,寻找快捷键对应的功能;

idea社区版jdk设置(cqh-IntelliJIDEA使用)(54)

比如修改复制当前行操作的快捷键,搜索 Duplicate,右键 Add keyboard Shortcut,更换快捷键。不用输入字母,而是把你希望的组合键同时按下。

idea社区版jdk设置(cqh-IntelliJIDEA使用)(55)

Add Keyboard Shortcut:键盘快捷键

Add Mouse Shortcut:鼠标快捷键,例 Ctrl 左键单击

Add Abbreviation:添加操作的缩写

Remove:移除快捷键

Reset Shortcuts:重新设置快捷键

你怎么知道输入 Duplicate?在 IDEA 安装路径下有个 help 目录,里面有两个 pdf 文件,打开查看对组合键作用的描述;如 Ctrl D,Duplicate current line or selected block:复制当前行及选中的文本,与上面的解释大同小异,配合显示的快捷键即可快速定位想要修改的组合键。

idea社区版jdk设置(cqh-IntelliJIDEA使用)(56)

如 Ctrl Alt L 格式化代码,在第一列第 19 个,搜索 Reformat code

idea社区版jdk设置(cqh-IntelliJIDEA使用)(57)

如果习惯使用 Eclipse 的快捷键,可以将 keymap 改为 Eclipse。

idea社区版jdk设置(cqh-IntelliJIDEA使用)(58)

9.4.4 常见问题

按下快捷键时,如果没有反应,那么这组快捷键可能是被其他软件占用了,需要更改快捷键组合方式。

或者你觉得快捷键很别扭,易混淆;比如 Ctrl D,在其他软件是 delete 删除的意思,而在 IDEA 却是 add 增加一行的意思。

Ctrl 空格、Ctrl . 等快捷键已被 Windows 系统占用;

打开 Windows 设置,时间和语言/语言/键盘/输入语言热键,可以看到 Ctrl 空格已被占用,所以 IDEA 的自动补全失效了。

或者首选语言选择中文(简体、中国)选项,键盘/微软拼音/选项/按键,看看快捷键组合方式是否被占用了。

idea社区版jdk设置(cqh-IntelliJIDEA使用)(59)

idea社区版jdk设置(cqh-IntelliJIDEA使用)(60)

idea社区版jdk设置(cqh-IntelliJIDEA使用)(61)

9.5 自定义模板

内容导视:

  • 常用模板缩写
  • 后缀模板
  • 实时模板

Templates,代码片段对应的字母缩写,输入缩写按下 Tab 键后可以出现预定义的固定模式的代码,提高了开发效率;如 sout 是 System.out.println(),Ctrl J 快捷键可以查看所有模板缩写。

9.5.1 常用模板缩写

输入缩写后按下 Tab 键,如 main 方法的缩写:main、psvm。

输出语句

缩写

普通输出语句

sout

输出方法参数名及值

soutp

输出方法名

soutm

输出变量值

soutv 或 xxx.sout

输出变量名及值

xxx.soutv

for 语句

缩写

i 从 0 到 ?,i

fori

增强 for 循环

iter、xxx.for

遍历数组

itar

迭代器遍历

itit

顺序遍历

xxx.fori

逆序遍历

xxx.forr

if 语句

缩写

if (xxx == null)

ifn、xxx.null

if (xxx != null)

inn、xxx.nn

9.5.2 后缀模板

打开 Settings,Editor/General/Postfix Completion,没法修改预定义的代码模板,倒是可以修改缩写(先选择要修改的地方,然后点击 右边的铅笔)。

idea社区版jdk设置(cqh-IntelliJIDEA使用)(62)

Enable postfix completion:启动后缀模板

Expand templates with Tab:输入xxx.缩写后按下 Tab 键后生成模板,一般还未输入完时 IDEA 会自动弹出提示回车就行。

打个比方,定义了一个 int 类型的数组 arr,fori 是后缀模板缩写,输入 arr.fori 按下 Tab 键后出现预定义的代码。

自定义后缀模板

自定义后缀模板,按下 ,选择将模板应用在哪里,比如 java。

介绍含义:

key:缩写,这里我填写的是 syso

Minimum language level:此模板生效的最低 JDK 版本。例:假如 level 设置为 9,那么在 JDK8 中此模板不生效

Use static import if possible:如果可能的话使用静态导入

$EXPR$:引用目标表达式

idea社区版jdk设置(cqh-IntelliJIDEA使用)(63)

点击 OK,在 java 源文件中,假设现在有变量,名为 i,输入 i.syso 按下 Tab 键后生成 System.out.println("i的值:" i);

那么 $EXPR$ 就是 i。

Applicable expression types:应用至哪些类型,如果不选择,默认任意类型都可以使用此模板;

void:没有返回类型才能使用此模板

not primitive type:包装类型

array:数组类型

choose class in xxx:选择自己的模块中哪些类可以使用此模板

enter class name:选择哪些类可以使用此模板

$END$:生成模板后光标所在位置

例:设置只有数组类型的变量才能使用此模板,有 int 类型的数组 arr,输入 arr.cqhsort 后按下 Tab 键才会生效。

idea社区版jdk设置(cqh-IntelliJIDEA使用)(64)

if ($EXPR$ instanceof int[]) { int temp = 0; for (int i = 0; i < $EXPR$.length - 1; i ) { int min = i; for (int j = i 1; j < $EXPR$.length; j ) { if($EXPR$[j] < $EXPR$[min]) { min = j; } } if (min != i) { temp = $EXPR$[min]; $EXPR$[min] = $EXPR$[i]; $EXPR$[i] = temp; } } } System.out.println(Arrays.toString($EXPR$));$END$

9.5.3 实时模板

Edit/Live Templates

单词翻译

idea社区版jdk设置(cqh-IntelliJIDEA使用)(65)

By default expand with Tab:默认情况按下 Tab 生成模板

Abbreviation:模板的缩写词

Description:模板的描述

Template text:预定义的模板文本

Applicable in Java: statement:将此模板应用至 java 中的语句声明

Expand with Tab:按下 Tab 键后生成模板

Reformat according to style:格式化预定义的模板

Use static import if possible:如果可能的话使用静态导入

模板应用范围

点击 Change 改变模板应用范围

Comment:注释

Consumer function:方法

Declaration:变量声明

Expression:表达式

Statement:语句声明

idea社区版jdk设置(cqh-IntelliJIDEA使用)(66)

自定义模板

按下 号(Alt Ins scrlk),创建组,任意取名如 cqh;

Live Template:定义模板

Template Group ... :创建模板组

选中自己刚刚创建的组按下 号,点击 Live Template,可以模仿如下设置:

idea社区版jdk设置(cqh-IntelliJIDEA使用)(67)

点击 Define 选择模板应用范围如 java;

idea社区版jdk设置(cqh-IntelliJIDEA使用)(68)

点击 Edit variables,为变量 $VAR$ 设值为第一个变量名,默认值为 var,跳过定义(如果 skip if defined 不勾选,光标会停在 $VAR$ 处)

suggestFirstVariableName("Object"):获取第一个变量名

常见的 Expression(预定义函数)请看实时模板变量。

点击 OK 后,在 java 文件中输入 try 按下 Tab 后即可生成模板。

9.6 断点调试
  • 运行类
  • debug 设置
  • debug 调试快捷键
  • debug 实际操作
9.6.1 运行类

run 即调用某个类的 main 方法,快捷键:Shift Ctrl F10,也可以右键或点击绿色三角图标也可以运行此类;运行过后右上角会多出此类的运行配置信息,下拉框选中此类,Shift F10 即可运行,Shift F9 即可调试。

idea社区版jdk设置(cqh-IntelliJIDEA使用)(69)

Edit Configurations 用来编辑每个类的运行配置

idea社区版jdk设置(cqh-IntelliJIDEA使用)(70)

Alt Shift F9/F10,会列出已运行过的类,可以通过左右上下箭头选择 Run 后回车。

idea社区版jdk设置(cqh-IntelliJIDEA使用)(71)

常用的 run 和 debug 快捷键

idea社区版jdk设置(cqh-IntelliJIDEA使用)(72)

9.6.2 debug 设置

减少内存占用

打开 Settings/Build,Execution,Deployment/Debugger,设置 Debug 连接方式,默认是 Socket。

Shared memory 是 Windows 特有的一个属性,一般在 Windows 系统下建议使用此设置,内存占用相对较少。

idea社区版jdk设置(cqh-IntelliJIDEA使用)(73)

步入源码

Debugger/Stepping

Do not step into the classes:不要进入此类

取消勾选 java.*、javax.*

idea社区版jdk设置(cqh-IntelliJIDEA使用)(74)

显示完整实例信息

Debugger/Data Views/Java

取消勾选 Enable alternative view for Collections classes

idea社区版jdk设置(cqh-IntelliJIDEA使用)(75)

9.6.3 debug 调试快捷键

idea社区版jdk设置(cqh-IntelliJIDEA使用)(76)

1:step over(F8):进入下一行,如果当前行断点是方法,不进入方法内

2:step into(F7):进入下一行,如果当前行断点是方法,则进入方法体内

3:force step into(Alt Shift F7):同上,但有些进不去的方法可以使用此键强制进入(比如源码)

4:step out(Shift F8):跳出方法

5:Drop Frame:回退到上一个调用的方法

6:Run to Cursor(Alt F9):运行到光标位置,只能前进

7:Ctrl F5:重新 debug

8:Resume Program(F9):恢复程序运行,但如果下面还有断点则停到下个断点处,没有断点直接跑完

9:stop(Ctrl F2):结束进程

10:View Breakpoints(Ctrl Shift F8):查看所有断点,Condition:为断点设置执行的条件

idea社区版jdk设置(cqh-IntelliJIDEA使用)(77)

11:Mute Breakpoints:忽略剩下的断点

12:Evaluate Expression ...(Alt F8):计算表达式,输入表达式查看结果。按下Alt ↓ 或下拉框查看历史记录

idea社区版jdk设置(cqh-IntelliJIDEA使用)(78)

9.6.4 debug 实际操作

debug 就是断点调试,在某一行设置一个断点,debug 时,程序运行到这一行就会卡住,可以一步步执行代码(按下 F7 或 F8),定位错误的地方。

设置断点

idea社区版jdk设置(cqh-IntelliJIDEA使用)(79)

单击红点的位置处生成断点,再单击就是取消断点。点击绿色小虫图标开始 debug,代码自动在断点处停下。

设置条件

idea社区版jdk设置(cqh-IntelliJIDEA使用)(80)

当断点处于循环内时,右击红点,在条件处输入布尔表达式,如 i == 6,那么只有 i == 6 为 true 时,程序才会停下,不用 i = 1,2,3... 慢慢步进。

或者点击 Set Value(F2)修改值加快进程。

idea社区版jdk设置(cqh-IntelliJIDEA使用)(81)

9.7 其它

内容如下:

  • 展开包名
  • 新增 JDK 与源码
  • 生成 JavaDoc
  • 清理缓存
  • 取消更新
  • 插件使用

展开包名

使用 Alt Ins scrlk 创建 package 后,包名都重叠在一起。

点击 Project 右边的设置图标,取消 Compact Middle Packages 的对勾

idea社区版jdk设置(cqh-IntelliJIDEA使用)(82)

查看文件历史修改记录

idea社区版jdk设置(cqh-IntelliJIDEA使用)(83)

对比两个文件

右键 Compare with 选择比较的文件,或者按住 Ctrl 不放选中两个文件,再按下 Ctrl D

Do not ignore:不要忽视,Ignore whitespaces:忽略空格

官方比较文件的详细说明

新增 JDK 与源码

Project Structure/SDKs,点击 /Add JDK...

idea社区版jdk设置(cqh-IntelliJIDEA使用)(84)

SDK 是软件开发工具包,辅助开发某一类软件的相关文档、范例和工具的集合都可以叫做SDK;JDK是SDK的子集。

SDKs/Sourcepath/ ,导入源码,方便以后 Ctrl B 查看。

idea社区版jdk设置(cqh-IntelliJIDEA使用)(85)


生成 JavaDoc

Tools/Generate JavaDoc...

idea社区版jdk设置(cqh-IntelliJIDEA使用)(86)

idea社区版jdk设置(cqh-IntelliJIDEA使用)(87)

Generate JavaDoc Scope:生成 API 文档的范围 Whole project:当前项目的所有模块 Module '01-package':当前模块 File:当前文件 Custome scope: 自定义范围 Include JDK and library sources in -sourcepath:包含 JDK 源码 Link to JDK documentation:链接 JDK 的 API 文档 Output directory:生成的 API 文档的位置 显示 protected 以上级别的内容:private 私有和 package 包级别不显示 Locale:语言类型,如 zh_CN Other command line arguments:其它命令行参数:-encoding UTF-8 -charset UTF-8 -charset 是告知浏览器此文件采用什么编码方式读取这个文件 -encoding 是告知 java 源代码的字符编码 Open generated documentation in browser:在浏览器打开生成的文档

点击 OK 后,生成了一大堆 html 文件,点击 index.html 即可。

清理缓存

我没有经历过,用的挺好,下面是尚硅谷资料的原话。

IntelliJ IDEA 首次加载项目的时候,都会创建索引,创建索引的时间跟项目的文件多少成正比。IntelliJ IDEA的缓存和索引主要是用来加快文件查询,从而加快各种查找、代码提示等操作的速度。

在某些特殊条件下,IntelliJ IDEA 的缓存和索引文件也是会损坏的,比如:断电、蓝屏引起的强制关机,当你重新打开 IntelliJ IDEA,很可能 IntelliJ IDEA 会报各种莫名其妙错误,甚至项目打不开,IntelliJIDEA 主题还原成默认状态。

即使没有断电、蓝屏,也会有莫名奇怪的问题的时候,也很有可能是 IntelliJ IDEA 缓存和索引出现了问题,这种情况还不少。遇到此类问题也不用过多担心。我们可以清理缓存和索引。

File/Invalidate Caches...

idea社区版jdk设置(cqh-IntelliJIDEA使用)(88)

Invalidate Caches:清除缓存

Reload All from Disk:从磁盘重新加载所有内容

idea社区版jdk设置(cqh-IntelliJIDEA使用)(89)

Clear file system cache and Local History:清除文件的系统缓存和本地历史修改记录(即清除C:/Users/用户名/AppData/Local/JetBrains/IntelliJIdea2021.2/LocalHistory,一般不建议勾选)

Clear VCS Log caches and indexes:清除 VCS(版本控制系统) 日志缓存和索引

Clear downloaded shared indexes:清除下载的共享索引

Ask before downloading new shared indexes:请在下载新的共享索引之前进行询问

Invalidate and Restart:清除并重启(老版会全部清除,记得备份 config)

cancel:取消

Just Restart:仅重启

取消更新

打开 Settings,Appearance & Behavior/System Settings/Updates

idea社区版jdk设置(cqh-IntelliJIDEA使用)(90)

老版取消勾选 Automatically check updates for

下面根据自己的情况取消勾选

Check IDE updates for Stable Releases:检查 IDEA 稳定版的更新

Check for plugin updates:检查插件的更新

Show What's New in the editor after an IDE update idea:更新后显示更新的内容

插件使用

Settings/Plugins,在 Marketplace 中搜自己想要的插件,installed 是已安装的插件。(官方的插件库:https://plugins.jetbrains.com/)

也可以点击设置从磁盘上安装插件。

idea社区版jdk设置(cqh-IntelliJIDEA使用)(91)

插件名

功能

网址

Key promoter

快捷键提示

https://plugins.jetbrains.com/plugin/4455?pr=idea

CamelCase

驼峰式命名和下划线命名交替变化

https://plugins.jetbrains.com/plugin/7160?pr=idea

Checkstyle-IDEA

代码样式检查

https://plugins.jetbrains.com/plugin/1065?pr=idea

FindBugs-IDEA

代码 Bug 检查

https://plugins.jetbrains.com/plugin/3847?pr=idea

Statistice

代码统计

https://plugins.jetbrains.com/plugin/4509?pr=idea

JRebel Plugine

热部署

https://plugins.jetbrains.com/plugin/?id=4441

CodeGlance

在编辑代码最右侧,显示一块代码小地图

https://plugins.jetbrains.com/plugin/7275?pr=idea

Eclipse Code Formatter

使用 Eclipse 的代码格式化风格,在一个团队中如果公司有规定格式化风格,这个可以使用

https://plugins.jetbrains.com/plugin/6546?pr=idea

GsonFormate

把 JSON 字符串直接实例化成类

https://plugins.jetbrains.com/plugin/7654?pr=idea

IDE Eval Reset

重置 IDEA 使用

https://zhile.io/2020/11/18/jetbrains-eval-reset-deprecated.html

Translation

中英文翻译 Ctrl Shift O,或选中单词 后 Ctrl Shift Y

https://plugins.jetbrains.com/plugin/8579-translation

Xcode-Dark Theme

一种 IDEA 主题

https://plugins.jetbrains.com/plugin/13106-xcode-dark-theme

Alibaba Java Coding Guidelines

阿里巴巴代码检查

https://plugins.jetbrains.com/plugin/10046-alibaba-java-coding-guidelines

idea社区版jdk设置(cqh-IntelliJIDEA使用)(92)

9.x 总结回顾

其实也没有什么好回顾的,我又不擅长做视频,内容也不太全面,大家百度就行。虽然使用 IDEA 体验更好,方便整合,但是如果是因为 Eclipse 太卡了,才考虑使用 IDEA,但 IDEA 占用内存只会更多,大概 40% 的内存。

9.y 实战演练

9.1 使用 debug 测试创建对象时的代码执行顺序。

创建子类对象时,会先显示初始化父类的实例变量,再执行父类的构造方法,接着显示初始化子类的实例变量,执行子类的构造方法。

// 父类 class A { int age = 22; String name; String flag; public A() { age = 33; name = "33"; } } // 子类 class B extends A { { tag = "无聊"; } String tag; public B() { System.out.println(tag); } } class test { public static void main(String[] args) { // new 对象 new B(); } }

在 new 对象的地方打个断点,使用 debug 得知:

new 先创建了 B 类的对象,age、name、flag、tag 等实例变量附上默认值 0 或 null。随之调用 B 类的无参构造器,构造器省略了两句话 :

  1. 调用父类的 init 实例初始化方法
  2. 显示初始化本类的实例变量和执行实例代码块(自上而下顺序执行)

idea社区版jdk设置(cqh-IntelliJIDEA使用)(93)

忽略 Object 类的存在,最开始显示初始化的是 A 类的实例变量,接着执行可见部分的 A 类无参构造器给实例变量赋值。返回到 B 类的无参构造器,执行实例语句块给 tag 赋值,执行可见部分的 B 类的构造器输出 tag 的值。

符合看到的现象(先显示初始化父类实例变量,执行父类的构造方法;接着显示初始化子类的实例变量,执行子类的构造方法)。

,

免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com

    分享
    投诉
    首页