五个很实用的IDEA使用技巧

日常开发中,相信广大 Java 开发者都使用过 IntelliJ IDEA 作为开发工具,IntelliJ IDEA 是一款优秀的 Java 集成开发环境,它提供了许多强大的功能和快捷键,可以帮助开发者提高编码效率和质量。除了一些常见的技巧,如自动导包、智能补全、重构工具等。IntelliJ IDEA 还有一些不为人知的技巧,可能很多开发者都没有注意到或者使用过。本文就在为你介绍博主常用的五个 IntelliJ IDEA 使用技巧,希望能够给你带来一些工作效率上的提升。本文内容大纲如下

  • 注释对齐

  • 快速创建包目录/文件夹

  • 快付复制类代码生成 Java 类

  • 多实例启动

  • 分支比较

注意:本文的示例截图以及操作演示都是基于 IntelliJ IDEA 2023.2 版本而来。过低版本可能不尽相同,大家注意。

注释对齐

日常开发中,相信大家在添加注释时都知道使用快捷键 ctrl + / ,不过大家可能会遇见下面这种情况,

    public DiamondJumpContext(List<DiamondJumpType> diamondJumpTypes) {
//添加注释for (DiamondJumpType diamondJumpType : diamondJumpTypes) {
//            map.put(diamondJumpType.getType(), diamondJumpType);}}

可以看到,使用快捷键 ctrl + / 添加注释代码或者注释已有代码时,默认是在首行位置,无法与下方 for 循环代码自动对齐,造成了视觉上的不美观,那如何解决这个问题嘞?其实解决方法就藏在 IDEA 里,我来告诉大家如何设置。

打开 IDEA 设置 Editor -> Code Style -> Java -> Code Generation,找到下方的 Comment code 区域, 取消 Line comment at first column 的默认勾选,将 Add a space at line comment start 以及 Enforce on reformat 打上勾就可以了。如下图所示,

然后我们重新给上面的示例代码打赏注释时,效果就是下面这样了,

    public DiamondJumpContext(List<DiamondJumpType> diamondJumpTypes) {// 添加注释for (DiamondJumpType diamondJumpType : diamondJumpTypes) {// map.put(diamondJumpType.getType(), diamondJumpType);}}

大家可以很明显的看到,此时添加的注释默认是跟当前代码对齐,并且自动留出一个空格,代码的可阅读性有了很大提升。

快速创建包目录/文件夹

创建包目录

日常开发时,当大家想新建 Java 类时,考虑到项目的包目录划分可能需要新建一个包目录,那么大家是如何操作的嘞?是先创建好包目录后,在创建 Java 类吗?其实在 IDEA 中创建 Java 类时,是可以直接顺带创建包目录的,具体操作如下。

在创建 Java 类时,直接写出包目录名称通过 . 拼接即可,如下图新建 Java 类时填上 controller.TestController

效果如下,

可以看到,包目录自动创建成功。

创建文件夹

快速创建文件夹的方式跟快速创建包目录差不多,只不过将 . 拼接改为 / 即可,如下图新建文件时填上 template/test.csv

效果如下,

可以看到,文件夹自动创建成功。

快付复制类代码生成 Java 类

日常中有个场景,博主经常在上网浏览网上的技术资料,看到感兴趣的文章时,想要复制文章中的 demo 代码在本地跑一遍验证一下。于是就有了这个快付复制代码生成 Java 类的需求。起初博主老老实实通过常规操作在本地手动创建 Java 类,然后拷贝 demo 代码进行验证。后来了解到其实在 IDEA 中是有快付复制类代码生成 Java 类的功能,这里分享给大家。

假如当前我们想要快速复制下方的 Java 类代码到 IDEA 项目中,那改如何操作嘞?

/*** 金刚位跳转策略配置*/
@Component
public class DiamondJumpContext {private final Map<Integer, DiamondJumpType> map = new HashMap<>();/*** 由spring自动注入DiamondJumpType子类** @param diamondJumpTypes 金刚位跳转类型集合*/public DiamondJumpContext(List<DiamondJumpType> diamondJumpTypes) {for (DiamondJumpType diamondJumpType : diamondJumpTypes) {map.put(diamondJumpType.getType(), diamondJumpType);}}public DiamondJumpType getInstance(Integer jumpType) {return map.get(jumpType);}
}

其实操作是很简单的,我们可以通过全选复制上述 Java 类代码,然后打开 IDEA,鼠标选中指定的包目录后通过 ctrl + v 粘连即可。

效果如下,

可以看到,我们已经将 Java 类代码快速复制到本地文件中。

多实例启动

日常本地开发微服务项目时,博主想要验证一下网关的负载均衡以及感知服务上下线能力时,需要用到多实例启动。

那么什么是多实例启动嘞?简单说就是能在本地同时启动多个同一服务。打个比方项目中有一个 MobileApplication 服务,我现在想要同时启动两个 MobileApplication 服务,通过不同端口区分,该如何操作嘞?IDEA 中其实是支持这个操作的。我将给大家介绍如何启用多实例功能。

打开服务配置,点击 Modify options 选项,

勾选打开 Operation System -> Alow multiple instance ,继续勾选打开 Java -> Program arguments,然后在 Program arguments 输入框中指定端口,在 Spring 项目中通过 --server.port=9999,如下图(注意每次启动实例时,这里的端口不能相同),

效果图如下,

可以看到,这里多实例启动的功能就 OK 了,在 Modify options 选项中还有许多常用功能,对于日常开发都是很多帮助的,比如 Java -> add VM options 可以用来添加 jvm 启动参数等。

分支比较

日常开发中,当项目上线时,博主经常会使用这个功能,用于比较当前新功能分支与 master 分支的代码差异。

假如新功能分支上线前经历了多个人员参与迭代以及冲突修复,作为项目主程的你需要在项目上线前进行代码 review,以确保代码质量,那该如何操作嘞? 其实 IDEA 已经贴心的为我们做好了一切,这里我将给大家介绍远程分支比较功能。

右键项目根目录,找到 Git -> Compare with Branch 选项,点击打开,

此时 IDEA 会显示项目的所有分支列表,我们从中找到 master 分支,点击即可,

最后 IDEA 会显示所有的文件差异在项目左侧栏目,我们点击某个文件即可查看某个具体差异。

效果如下,

可以看到,通过 IDEA 提供的分支比较功能,为我们进行代码 review,提供了非常便利的操作。

总结

其实本文所讲解的五个实用技巧不光在 IDEA 里可以使用,在 PhpStorm、PyCharm 中都是通用的,欢迎大家在浏览完本文后实践体验下。最后希望本文在日常工作中能够帮助到大家,感谢阅读。

关注公众号【waynblog】每周分享技术干货、开源项目、实战经验、国外优质文章翻译等,您的关注将是我的更新动力!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/83184.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【vue3页面展示代码】展示代码codemirror插件

技术版本&#xff1a; vue 3.2.40、codemirror 6.0.1、less 4.1.3、vue-codemirror 6.1.1、 codemirror/lang-vue 0.1.2、codemirror/theme-one-dark 6.1.2 效果图&#xff1a; 1.安装插件 yarn add codemirror vue-codemirror codemirror/lang-vue codemirror/theme-one-dar…

神经网络 03(参数初始化)

一、参数初始化 对于某一个神经元来说&#xff0c;需要初始化的参数有两类&#xff1a;一类是权重W&#xff0c;还有一类是偏置b&#xff0c;偏置b初始化为0即可。而权重W的初始化比较重要&#xff0c;我们着重来介绍常见的初始化方式。 &#xff08;1&#xff09;随机初始化 …

《PostgreSQL与NoSQL:合作与竞争的关系》

&#x1f337;&#x1f341; 博主猫头虎&#xff08;&#x1f405;&#x1f43e;&#xff09;带您 Go to New World✨&#x1f341; &#x1f405;&#x1f43e;猫头虎建议程序员必备技术栈一览表&#x1f4d6;&#xff1a; &#x1f6e0;️ 全栈技术 Full Stack: &#x1f4da…

山西电力市场日前价格预测【2023-09-21】

日前价格预测 预测说明&#xff1a; 如上图所示&#xff0c;预测明日&#xff08;2023-09-21&#xff09;山西电力市场全天平均日前电价为345.38元/MWh。其中&#xff0c;最高日前电价为408.38元/MWh&#xff0c;预计出现在19: 00。最低日前电价为246.41元/MWh&#xff0c;预计…

ew三层代理使用方法

1.获得目标网络内两台主机 A、B 的权限&#xff0c;情况描述如下&#xff1a; A 主机&#xff1a; 目标网络的边界主机&#xff0c;无公网 IP&#xff0c;无法访问特定资源。 B 主机&#xff1a; 目标网络内部主机&#xff0c;可访问特定资源&#xff0c;却无…

查看docker镜像是由哪些指令创建来的

–no-trunc 是不要省略。 docker history --no-trunc kevinchina/deeplearning:sd_base_cuda116clip7 > history.txtcp -aL ~/.cache/huggingface/hub/models–Salesforce–blip-image-captioning-large/snapshots/e33defe055114d86bec9c0705b71e590cfc0694c/* ~/.cache/hu…

k8s手动下载镜像、通过容器创建镜像方法

手动下载镜像 1、首先pull镜像到本地 docker pull <镜像名称>:<标签>2、转储镜像 docker save -o /path/to/save/image.tar 3、解压 tar -xvf /path/to/save/image.tar补充 1、如果要将tar还原成镜像 docker load -i /path/to/save/image.tar或者用输入重定向…

lazada跨境电商商品数据采集

Lazada跨境电商商品数据采集可以使用以下两种方法&#xff1a; 手动采集&#xff1a;可以在Lazada网站上手动搜索商品信息&#xff0c;然后复制粘贴到Excel表格中。这种方法比较麻烦&#xff0c;需要逐个搜索和记录商品信息&#xff0c;适合采集数量较少的商品数据。使用采集软…

技术对比:Flutter vs. 传统桌面应用开发框架

在移动应用开发领域&#xff0c;Flutter已经赢得了广泛的认可和采用&#xff0c;成为了跨平台移动应用开发的瑞士军刀。然而&#xff0c;Flutter的魅力并不仅限于移动平台&#xff0c;它还可以用于开发桌面应用程序&#xff0c;为开发人员提供了一种全新的选择。本文将深入探讨…

springboot+jxls复杂excel模板导出

JXLS 是基于 Jakarta POI API 的 Excel 报表生成工具&#xff0c;可以生成精美的 Excel 格式报表。它采用标签的方式&#xff0c;类似 JSP 标签&#xff0c;写一个 Excel 模板&#xff0c;然后生成报表&#xff0c;非常灵活&#xff0c;简单&#xff01; Java 有一些用于创建 …

5G定位技术原理与应用场景

5G高精度定位服务不仅适用于应急&#xff0c;还可以支持大量的个人业务&#xff0c;包括室外和室内场景&#xff0c;可以在交通道路、隧道、地下停车场或室内环境中支持高精度定位服务。在这些区域中&#xff0c;由于卫星信号的覆盖范围较小&#xff0c;基于5G网络的高精度定位…

[NLP] LLM---<训练中文LLama2(一)>训练一个中文LLama2的步骤

一 数据集 【Awesome-Chinese-LLM中文数据集】 【awesome-instruction-dataset】【awesome-instruction-datasets】【LLaMA-Efficient-Tuning-数据集】Wiki中文百科&#xff08;25w词条&#xff09;wikipedia-cn-20230720-filteredBaiduBaiKe&#xff08;563w词条&#xff09; …

java-- 字符串+拼接详解, 性能调优 (底层原理实现)

目录 简单了解一下字符串 String类里面是如何存放字符串的? String的不可变性 字符串拼接的方法 1.使用拼接字符串 2. 使用concat 3. 使用StringBuilder 4.StringBuffer 使用字符串拼接的原理 使用concat StringBuilder 效率比较 简单了解一下字符串 字符串在java…

win10 win11 停止系统自动更新方法

目录 方法一&#xff1a;使用注册表更改 1. 进入注册表 2. 进入如下目录 3. 新建 DWOED(32-位)值 4. 双击 FlightSettingsMaxPauseDays&#xff0c;选择十进制&#xff0c;左侧输入9999 5. 开头的天数已经变为9999天 方法二&#xff1a;停止自动更新的服务 1. 查询服务…

所有人别错过!云计算真的不错,前景钱途并存!

近年来&#xff0c;中国云计算产业发展迅猛&#xff0c;保持30%以上的年均增长率&#xff0c;成为全球增速最快的市场之一&#xff0c;云计算应用领域正向制造、政务、金融、医疗、教育等企业级市场延伸拓展。目前&#xff0c;云计算应用的普及促使开源技术广受关注&#xff0c…

安装chromadb遇到的问题与python3升级

环境&#xff1a; python 3.10 &#xff0c; centos 7.x 使用 pip3 install chromadb 时&#xff0c;遇到以下问题。 问题1: gcc note: This error originates from a subprocess, and is likely not a problem with pip. ERROR: Failed building wheel for chroma-hnswlib F…

MYSQL不常用但好用写法

ORDER BY FIELD() 自定义排序逻辑 MySql 中的排序 ORDER BY 除了可以用 ASC 和 DESC&#xff0c;还可以通过 「ORDER BY FIELD(str,str1,…)」 自定义字符串/数字来实现排序。这里用 order_diy 表举例&#xff0c;结构以及表数据展示&#xff1a; ORDER BY FIELD(str,str1,…) …

Python API教程:API入门(上)

什么是API&#xff1f; 一个API&#xff0c;或被称为应用程序接口&#xff0c;是一个服务器为你提供一个接收或发送数据的代码。API通常用来接收数据。 本文就集中焦点在此话题中。 当我们想从一个API中接收数据&#xff0c;我们需要开始请求。请求可以包含整个Web。例如&#…

山石网科国产化防火墙,打造全方位边界安全解决方案

互联网的快速发展促进了各行各业的信息化建设&#xff0c;但也随之带来了诸多网络安全风险。大部分组织机构采用统一互联网接入方案&#xff0c;互联网出口承担着内部用户访问互联网的统一出口和对外信息服务的入口&#xff0c;因此在该区域部署相匹配的安全防护手段必不可少。…

【红包雨功能的】环境部署(弹性伸缩、负载均衡、Redis读写分离、云服务器部署)

文章目录 创建环境创建专用网络VPC安全组创建云服务器打包部署2. Java环境启动项目开机启动任意服务1. 制作服务文件2. 制作启动脚本3. 制作停止脚本4. 增加执行权限5. 设置开机启动 创建镜像继续创建多台云服务器负载均衡弹性伸缩redis的报警规则白名单1. LAMP 环境1. 安装Apa…