idea社区版jdk设置(cqh-IntelliJIDEA使用)
内容导视:
- 介绍
- 创建普通 JavaSE 项目
- 常用的设置
- 常用快捷键
- 自定义模板
- 断点调试
- 其它
内容导视:
- 介绍
- 下载与安装
- 卸载
- 详细的教程
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 等
- 提示功能的快速、便捷
- 提示功能的范围广
- 好用的快捷键与代码模板
- 精准搜索
下载地址: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 源文件
创建一个新项目: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 '模块名' 后回车。
实际在模块下的 iml 文件中添加了 <orderEntry type="module" module-name="模块名" /> 标签。
9.3 常用的设置内容导视:
- Appearance & Behavior
- Editor
- Build,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 导入的类没用上时,自动删去该 import
Insert 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
9.5.2 后缀模板
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 键才会生效。
9.5.3 实时模板
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$
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 断点调试9.6.1 运行类
- 运行类
- debug 设置
- debug 调试快捷键
- debug 实际操作
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
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 类的无参构造器,构造器省略了两句话 :
- 调用父类的 init 实例初始化方法
- 显示初始化本类的实例变量和执行实例代码块(自上而下顺序执行)
忽略 Object 类的存在,最开始显示初始化的是 A 类的实例变量,接着执行可见部分的 A 类无参构造器给实例变量赋值。返回到 B 类的无参构造器,执行实例语句块给 tag 赋值,执行可见部分的 B 类的构造器输出 tag 的值。
符合看到的现象(先显示初始化父类实例变量,执行父类的构造方法;接着显示初始化子类的实例变量,执行子类的构造方法)。
,
免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com