内容导视:
介绍创建普通 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:自带的 jrelib:依赖的类库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
如果没有配置 JAVA_HOME 环境变量,就不会显示 SDK,需要 Add JDK... 指定 JDK 的安装目录;
Project name 是项目名,Project location 是此项目的路径,Finish 即可。
创建空项目
还可以创建一个空项目,模块由自己手动创建。
会弹出一个 Project Structure 窗口,点击 New Module 创建模块。
或者 Alt + F 快捷键选择 New 可以创建 Module,或项目右键 New Module,或 Ctrl + Shift + Alt + S 打开 Project Structure/Modules 按下 + 号,点击 New Module。
9.2.2 切换项目在多个项目之间切换是 Open Recent,关闭项目 Close Project;
9.2.3 删除项目、模块可以单击想要操作的项目即可进入或者点击 Open Selected。
Show in Explorer 可以打开文件资源管理器的项目所在目录;Remove from Recent Projects 是删除此项目,但硬盘上还在;删除此项目后把文件资源管理器对应的项目选中按下 Shift + Del 快捷键永久删除。
而删除模块有两个步骤,右键模块 Remove Module,可以看到模块右下角的蓝色方块消失,意味着它变成了普通目录,再次右键 Delete(Del 是普通删除,Alt + Del 是安全删除)即可删除。
9.2.4 窗口结构分为菜单栏、工作列表、编辑区域、快捷栏。
在编辑区域编写源代码,按下 Ctrl + Shift + F10 即可运行 main 方法。
9.2.5 可能会遇见的错误Java 版本问题
打开项目结构,或快捷键 Ctrl + Alt + Shift + S
这个地方没设置会出错无法运行代码。
Project name:当前项目的名字
Project SDK:控制项目使用的 JDK 版本
Project language level:项目语言级别
当使用的新特性所在版本超过设定的 JDK 版本,就会报错。
例:在 JDK7 版本,新增了一个特性:自动类型推断机制(钻石表达式),使用泛型 new 对象时后面的 <> 中可以省略数据类型,会通过前面 <> 的内容自动推断类型。
一旦设置 level 为小于 7,如 level 6 就会报错:
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 下。
9.2.6 创建 Java 源文件module 下有个蓝色的 src 文件夹,用于存放源文件,src 右键/new/Java Class
或按下 Alt + Ins scrlk 快捷键,此键在 Backspace 退格键的上面。
通过上下左右箭头定位到 Java Class 然后回车或点击 Java Class,输入源文件名后回车。(不用写后缀 .java)
导入其它模块的类
在类中使用其它模块的类时,在错误处(将光标定位到红色波浪处)按下 Alt + Enter,选择 Add dependency on module '模块名' 后回车。
9.3 常用的设置实际在模块下的 iml 文件中添加了 <orderEntry type="module" module-name="模块名" /> 标签。
内容导视:
Appearance & BehaviorEditorBuild,Execution,Deployment其它首先打开设置 File/Settings(快捷键:Ctrl + Alt + S)
从上至下依次为:外观与行为、快捷键、编辑、插件、版本控制、构建执行部署、语言和框架、工具、高级设置
依次介绍:
9.3.1 Appearance & Behavior设置主题
Appearance/Theme
设置菜单栏字体大小
Appearance/Size
如果觉得菜单项或设置中的字体太小,Size 可以往上调,一般设置为 12。
重新启动项目时,如何打开一个项目
New window:新创建一个窗口Current window:使用当前窗口Ask:总是询问9.3.2 Editor内容如下:
设置使用鼠标滚轮调节字体大小自动导包行号与分隔符显示方法参数信息忽略大小写提示取消单行显示文件标签设置悬浮提示设置编辑区域字体单独设置控制台字体设置文档注释的字体颜色添加文件头部信息设置项目文件字符编码设置使用鼠标滚轮调节字体大小
General/Mouse Control,勾上 Change font size with Ctrl + Mouse Wheel,回到编辑页面按住 Ctrl 同时滚动鼠标滚轮即可调整字体大小。
Move code fragments with drag-and-drop:可以拖拽选中的代码片段到别的位置
自动导包
General/Auto Import
Add unambiguous imports on the fly:编写代码时,写的简单类名是唯一的,自动添加 import 导入该类Optimize imports on the fly:当 import 导入的类没用上时,自动删去该 importInsert imports on paste(在粘贴时导入),Always:总是,Never:从不,Ask:询问
如想使用 Date 类,但有多个简单类名为 Date,需要 Alt + Enter 键 import class 选择一个。
输入 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:弹出完整的方法签名
忽略大小写提示
General/Code Completion
老版将 Case sensitive completion 改为 None;
新版取消勾选 Match case(区分大小写)
First letter only:仅首字母区分大小写,如 String 等同电脑于 STRing
All letters:所有都区分大小写,String 不等同于 string
取消单行显示文件标签
如果设置单行显示,当编辑区即代码书写区域,编辑了或者浏览很多文件,可以看到 Number.java、Object.java ...这样展示不下的文件就会被隐藏。
General/Editor Tabs 取消勾选 Show tabs in one row(在同一行显示,可能会造成文件名显示不完全)
Hide tabs if there is no space:如果空间不足就隐藏标签
设置悬浮提示
当指针停在方法或某处时,会自动显示对应的文档注释信息。
Code Editing 勾选 Show quick documentation on hover
翻到最下面,Editor Tooltips/Tooltip delay:500,延迟 500 毫秒后再提示。
设置编辑区域字体
Font/Size
font 可以选择喜欢的字体,size 是字体大小,line height 是每行间距。
设置编辑区域主题
Color Scheme/Scheme
Scheme 与整体主题风格一致即可,下面就不太搭。
除了 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
同一个包下超过指定个数的 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.*;
添加文件头部信息
File and Code Templates/Includes/File Header 写入信息,每当创建文件时,自动在头部加入这段文字,在 Description: 中有各个变量的含义,如 ${DATE} 是当前系统日期。
我习惯在 java 源文件头部添加文档注释;作者处可以使用 ${USER} 替代。
设置项目文件字符编码
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。
取消方法形参名提示
想要取消显示 second:、minute:、hour:
Inlay Hints,将 java 取消勾选,确定保存。
或者右键 Disable Hints
若想重新显示提示,Inlay Hinst/java,Parameter hints,勾上 Show parameter hints for
9.3.3 Build,Execution,Deployment自动编译
Build project automatically:项目自动编译
Compile independent modules in parallel:多个模块并行编译
9.3.4 其它内容导视:
省电模式文件的显示位置保存及导入原有配置省电模式
File/Power Save Mode会关闭代码检查与提示等功能
如果没有了提示功能,可以看看是否误点了
文件的显示位置
Split Right:将文件在右边分屏
Split and Move Right:将文件移到右边分屏
Split Down:将文件在下边分屏
Split and Move Down:将文件移到下边分屏
设置单个文件的字符编码
编辑区右下角修改文件编码
Reload:暂时改成 xxx 编码显示,但文件还是原来的编码
Convert:真正的转换
保存及导入原有配置
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 开头的单词自动填人。(可以多按几次找到想要的单词)
多行操作:Shift + Alt + Ins Scrlk,再按住 Shift 和上下箭头,或者按住鼠标左键不放拖动鼠标,会增加光标个数。(期间左键单击光标变为 1)
另一种方法,按住 Alt 和鼠标左键不放,鼠标往下滑。
快速生成方法
Select None 是无参构造,如果想同时选中多个字段,可以通过 Shift + 上下键或 Ctrl + A 或 Ctrl + 鼠标点击选择生成的有参构造为哪些字段赋值。
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 |
查看此文件在磁盘的位置:按住 Ctrl 键,点击此文件标签,或者右键 Open In/Explorer
添加到收藏(Add To Favorites):Shift + Alt + F、或者文件右击 Add To Favorites 选择已有的收藏夹,Add To New Favorites List 创建新的收藏夹。
替换:Ctrl + R,Replace 一个个替换,All 全部替换,include 排除(被排除的不会被替换)
9.4.3 修改快捷键打开 Settings/keymap,有两个放大镜,左边输入功能名称;点击右边的放大镜按下快捷键,寻找快捷键对应的功能;
比如修改复制当前行操作的快捷键,搜索 Duplicate,右键 Add keyboard Shortcut,更换快捷键。不用输入字母,而是把你希望的组合键同时按下。
Add Keyboard Shortcut:键盘快捷键
Add Mouse Shortcut:鼠标快捷键,例 Ctrl + 左键单击
Add Abbreviation:添加操作的缩写
Remove:移除快捷键
Reset Shortcuts:重新设置快捷键
你怎么知道输入 Duplicate?在 IDEA 安装路径下有个 help 目录,里面有两个 pdf 文件,打开查看对组合键作用的描述;如 Ctrl + D,Duplicate current line or selected block:复制当前行及选中的文本,与上面的解释大同小异,配合显示的快捷键即可快速定位想要修改的组合键。
如 Ctrl + Alt + L 格式化代码,在第一列第 19 个,搜索 Reformat code
如果习惯使用 Eclipse 的快捷键,可以将 keymap 改为 Eclipse。
9.4.4 常见问题按下快捷键时,如果没有反应,那么这组快捷键可能是被其他软件占用了,需要更改快捷键组合方式。
或者你觉得快捷键很别扭,易混淆;比如 Ctrl + D,在其他软件是 delete 删除的意思,而在 IDEA 却是 add 增加一行的意思。
Ctrl + 空格、Ctrl + . 等快捷键已被 Windows 系统占用;
打开 Windows 设置,时间和语言/语言/键盘/输入语言热键,可以看到 Ctrl + 空格已被占用,所以 IDEA 的自动补全失效了。
或者首选语言选择中文(简体、中国)选项,键盘/微软拼音/选项/按键,看看快捷键组合方式是否被占用了。
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 |
打开 Settings,Editor/General/Postfix Completion,没法修改预定义的代码模板,倒是可以修改缩写(先选择要修改的地方,然后点击 + 右边的铅笔)。
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$:引用目标表达式
点击 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 键才会生效。
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
单词翻译
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:语句声明
自定义模板
按下 + 号(Alt + Ins scrlk),创建组,任意取名如 cqh;
Live Template:定义模板
Template Group ... :创建模板组
选中自己刚刚创建的组按下 + 号,点击 Live Template,可以模仿如下设置:
点击 Define 选择模板应用范围如 java;
点击 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 即可调试。
Edit Configurations 用来编辑每个类的运行配置
Alt + Shift + F9/F10,会列出已运行过的类,可以通过左右上下箭头选择 Run 后回车。
常用的 run 和 debug 快捷键
9.6.2 debug 设置减少内存占用
打开 Settings/Build,Execution,Deployment/Debugger,设置 Debug 连接方式,默认是 Socket。
Shared memory 是 Windows 特有的一个属性,一般在 Windows 系统下建议使用此设置,内存占用相对较少。
步入源码
Debugger/Stepping
Do not step into the classes:不要进入此类
取消勾选 java.*、javax.*
显示完整实例信息
Debugger/Data Views/Java
取消勾选 Enable alternative view for Collections classes
9.6.3 debug 调试快捷键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:为断点设置执行的条件
11:Mute Breakpoints:忽略剩下的断点
12:Evaluate Expression ...(Alt +F8):计算表达式,输入表达式查看结果。按下Alt + ↓ 或下拉框查看历史记录
9.6.4 debug 实际操作debug 就是断点调试,在某一行设置一个断点,debug 时,程序运行到这一行就会卡住,可以一步步执行代码(按下 F7 或 F8),定位错误的地方。
设置断点
单击红点的位置处生成断点,再单击就是取消断点。点击绿色小虫图标开始 debug,代码自动在断点处停下。
设置条件
当断点处于循环内时,右击红点,在条件处输入布尔表达式,如 i == 6,那么只有 i == 6 为 true 时,程序才会停下,不用 i = 1,2,3... 慢慢步进。
或者点击 Set Value(F2)修改值加快进程。
9.7 其它内容如下:
展开包名新增 JDK 与源码生成 JavaDoc清理缓存取消更新插件使用展开包名
使用 Alt + Ins scrlk 创建 package 后,包名都重叠在一起。
点击 Project 右边的设置图标,取消 Compact Middle Packages 的对勾
查看文件历史修改记录
对比两个文件
右键 Compare with 选择比较的文件,或者按住 Ctrl 不放选中两个文件,再按下 Ctrl + D
Do not ignore:不要忽视,Ignore whitespaces:忽略空格
官方比较文件的详细说明
新增 JDK 与源码
Project Structure/SDKs,点击 +/Add JDK...
SDK 是软件开发工具包,辅助开发某一类软件的相关文档、范例和工具的集合都可以叫做SDK;JDK是SDK的子集。
SDKs/Sourcepath/+,导入源码,方便以后 Ctrl + B 查看。
生成 JavaDoc
Tools/Generate JavaDoc...
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...
Invalidate Caches:清除缓存
Reload All from Disk:从磁盘重新加载所有内容
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
老版取消勾选 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/)
也可以点击设置从磁盘上安装插件。
插件名 | 功能 | 网址 |
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 体验更好,方便整合,但是如果是因为 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 类的无参构造器,构造器省略了两句话 :
调用父类的 init 实例初始化方法显示初始化本类的实例变量和执行实例代码块(自上而下顺序执行)忽略 Object 类的存在,最开始显示初始化的是 A 类的实例变量,接着执行可见部分的 A 类无参构造器给实例变量赋值。返回到 B 类的无参构造器,执行实例语句块给 tag 赋值,执行可见部分的 B 类的构造器输出 tag 的值。
符合看到的现象(先显示初始化父类实例变量,执行父类的构造方法;接着显示初始化子类的实例变量,执行子类的构造方法)。