您当前的位置:首页 > 电脑百科 > 程序开发 > 编程百科

IntelliJ IDEA 一些不为人知的功能

时间:2023-11-09 14:51:21  来源:今日头条  作者:知识创富老七

今天聊的这些功能可能社区版没有,就需要下载专业版,如何使用专业版,请看这里:

kdocs.cn/l/cdW01CjMHzjw

我相信现在JAVA开发者应该80%都在使用IDEA作为开发工具吧,今天我们将深入了解 IDEA的世界,展示一些可提高您的工作效率的提示和技巧。无论您是经验丰富的 IntelliJ 用户还是刚刚入门,应该都能得到收获。

IDEA 由 JetBrAIns 开发,以其强大的功能和智能代码分析功能而闻名。然而,有许多鲜为人知的功能可以显著增强您的编码体验并节省您的宝贵时间。在这篇文章中,我们将探索一系列精选的提示和技巧,从键盘快捷键和导航技术到代码重构和高级调试技术。

我希望你看完这篇文章后,让您成为更高效、更熟练的开发人员。

调试模式

很多初级开发人员都不知道有调试模式,代码写完以后都不知道如何调试代码,只能通过输出打印日志,一遍一遍的调试代码,这样效率非常低下,IDEA 为我们提供的各种选项,以查找和解决代码中的错误/bug。

以调试模式运行

IntelliJ IDEA 一些不为人知的功能

条件断点:大多数开发人员在调试时都熟悉断点,但是如果您必须调试具有多次迭代的循环怎么办?您是否会跳过每次迭代,直到到达真正想要调试的对象为止?好吧,IDEA为我们提供了条件断点,其工作方式实际上与之前的断点相同,但我们可以指示断点将被激活的条件,这将使我们不必了解前一个循环的不同迭代,而只关注在我们想要结果上。

要使用它,只需在您想要的位置放置一个断点,然后右键单击它,您将获得输入以指示您希望激活断点的条件。例如 :

IntelliJ IDEA 一些不为人知的功能

Streams调试 : Streams 是 Java 8 给我们带来的最好的功能之一,但用过的人都知道它们很难调试,如果我们嵌套诸如 filter、map 或 flatMap 之类的 Stream 操作则更是如此。这就是为什么 IDEA为我们提供了一个工具来调试流并查看每个 Stream 操作给我们的结果,直到得到最终结果。

要做到这一点,非常简单,只需在流开始的地方放置一个断点,我们将看到如何激活 IntelliJ 提供的调试选项之一:

IntelliJ IDEA 一些不为人知的功能

如果我们点击调试选项,我们将看到每个 Stream 操作的结果:

IntelliJ IDEA 一些不为人知的功能

或者,如果您想独立查看每个步骤,您可以选择Split Mode左下角的选项:

IntelliJ IDEA 一些不为人知的功能

在执行时重新编译文件:很多时候,我们会在调试模式下启动应用程序,在调试时我们会注意到代码中的错误/bug,我们都知道,一旦错误被纠正,要再次测试,我们必须重新启动申请可能需要花费很多时间……还是不?IntelliJ 为我们提供了一个选项来重新编译我们刚刚在运行时更正的文件,因此我们可以再次测试流程,而无需重新启动应用程序。

只需右键单击我们已更正的文件并选择选项:Compile and Reload File。

IntelliJ IDEA 一些不为人知的功能

 快捷方式

IDEA有很多快捷键,在网上很多博客中能找到每个快捷键的功能,其实其中许多都很复杂或未使用。今天我将介绍一些我认为可以帮助开发人员提高生产力的快捷方式。

返回:您是否曾经遇到过这样的情况:您在一个文件中,进入一种方法,然后进入另一种方法,然后找不到初始文件,或者必须在资源管理器中再次查找它?嗯,有一个后退选项,可以让您切换回之前打开的文件。这个功能,我个人在上面讨论的上下文中经常使用它,你进入特定流程的不同方法,最后你发现很难返回到起点,但是使用这个按钮或快捷方式(你可以把它方式)你节省了所有时间。

通常,当您激活视图选项卡中的工具栏时,会出现这些按钮:

IntelliJ IDEA 一些不为人知的功能

它们看起来像这样:

IntelliJ IDEA 一些不为人知的功能

其相应的快捷方式是:

  • CTRL + ALT + 向左箭头
  • CTRL + ALT + 向右键

实时模板: IDEA 有一项名为“实时模板”的功能,可让您使用键盘快捷键快速插入预定义的代码片段。例如,您可以输入“sout”并按 Tab 键将其自动展开为 System.out.println() 代码块。您可以在 IntelliJ IDEA 配置中自定义和创建自己的实时模板。

在本节中,您所在项目中每个人的想象力和表现都发挥着重要作用,因为每个人都会有某些经常重复的代码行,如果您想要与该代码段关联的快捷方式,可以节省时间。

要创建实时模板,只需转到“设置”并在搜索引擎中输入“实时模板”,“编辑器”部分中就会出现一个选项。

正如您所看到的,IntelliJ 已经有几个预定义的部分,具体取决于我们使用的编程语言,但我们也可以使用窗口右侧显示的“+”符号创建自己的部分。

IntelliJ IDEA 一些不为人知的功能

在我的例子中,我选择了 java 并单击添加按钮(“+”)向该组添加一个新的实时模板,然后将打开一个新窗口,询问我们快捷方式的缩写、描述(如果我们愿意)和与我们的新快捷方式对应的代码部分:

IntelliJ IDEA 一些不为人知的功能

在此示例中,我们创建了一个实时模板来在我们想要的类中声明一个记录器,并以这种方式通过简单地输入我们的代码“log”并按 Enter 键进行设置来导入它。正如你所看到的,我们已经指出了我们称之为快捷方式的缩写(“log”),一个简短的描述,然后在“编辑变量”中,我们为表达式中声明的变量赋予了值$CLASS_NAME$:

IntelliJ IDEA 一些不为人知的功能

总之,这篇文章介绍了 IDEA 的强大功能及其可提高生产力和简化开发流程的各种功能。我们深入研究了实时模板的概念,它允许开发人员通过自动插入常用代码片段来节省时间。通过创建自定义实时模板,开发人员可以个性化他们的编码体验并减少重复打字的需要。

此外,我们还讨论了 IntelliJ IDEA 的调试功能,特别关注 Java 8 流的调试。在流中设置条件断点的能力使开发人员能够有效地查明和解决复杂流操作中的问题,从而节省宝贵的调试时间。

此外,我们探索了在 IntelliJ IDEA 中重新编译单个文件的便捷选项。此功能无需重建整个项目,从而实现更快的开发迭代并减少周转时间。

IntelliJ IDEA 的一系列功能(包括实时模板、高级调试工具和选择性重新编译)使开发人员能够更高效地编写代码。通过利用这些功能,开发人员可以提高工作效率,减少重复性任务所花费的时间,并轻松识别和修复错误。

无论是通过实时模板的自动代码插入、简化的调试过程还是选择性的重新编译选项,IntelliJ IDEA 都为开发人员提供了必要的工具来优化其工作流程并生成高质量的代码。



Tags:IntelliJ   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,不构成投资建议。投资者据此操作,风险自担。如有任何标注错误或版权侵犯请与我们联系,我们将及时更正、删除。
▌相关推荐
八个IntelliJ IDEA中常用的快捷键
1 使用驼峰命名法快速打开类这是一个简单而强大的功能,只输入驼峰命名法中的首字母缩写就可以查找/打开所需的类。比如说,类名是TopLevelDestination,只需输入TLD就能立即打开...【详细内容】
2023-11-23  Search: IntelliJ  点击:(159)  评论:(0)  加入收藏
IntelliJ IDEA插件开发入门实战
IntelliJ IDEA是一款强大的Java开发工具,提供了丰富的API,为你钟爱的IDE增添了无限可能。与此同时,庞大而活跃的IntelliJ IDEA社区可以帮助解决问题并提升技能。无论你在插件开...【详细内容】
2023-11-14  Search: IntelliJ  点击:(228)  评论:(0)  加入收藏
IntelliJ IDEA 一些不为人知的功能
今天聊的这些功能可能社区版没有,就需要下载专业版,如何使用专业版,请看这里:kdocs.cn/l/cdW01CjMHzjw我相信现在Java开发者应该80%都在使用IDEA作为开发工具吧,今天我们将深入了...【详细内容】
2023-11-09  Search: IntelliJ  点击:(230)  评论:(0)  加入收藏
Eclipse、IntelliJ IDEA、PyCharm三种IDE的区别
Eclipse、IntelliJ IDEA和PyCharm是三种流行的集成开发环境(IDE),每个都有其特性和优点。1. Eclipse:Eclipse是一款开源的Java IDE,由Eclipse基金会开发。它具有许多功能,包括代码...【详细内容】
2023-11-07  Search: IntelliJ  点击:(145)  评论:(0)  加入收藏
用IntelliJ IDEA进行前端开发
在这个数字化的时代,网络开发工具层出不穷,各自都宣称可以让开发过程更加流畅和高效。在这个竞争激烈的领域中,有一个工具引人注目,那就是IntelliJ IDEA,一个由JetBrains开发的强...【详细内容】
2023-10-16  Search: IntelliJ  点击:(343)  评论:(0)  加入收藏
掌握IntelliJ IDEA 中的“下架”与“上架”功能,编程效率翻倍
你是否经常需要在处理一个任务时,突然要转而处理另一个任务?在这种情况下,你也许不想提交尚未完成的更改,但又不希望丢失已经做出的修改。为了解决这个问题,有一个非常方便的功能...【详细内容】
2023-10-11  Search: IntelliJ  点击:(236)  评论:(0)  加入收藏
十个超级高效的IntelliJ IDEA插件
1. Code With Me【下载地址】https://plugins.jetbrains.com/plugin/14896-code-with-meCode With Me是一款支持协作开发和配对编程的插件。此插件支持多个开发人员同时在同...【详细内容】
2023-10-08  Search: IntelliJ  点击:(329)  评论:(0)  加入收藏
7个应该牢记于心的IntelliJ IDEA快捷键
Jetbrains编辑器家族在市场上凭借其卓越的功能和用户友好的界面获得了大量用户的支持。这个家族基于Jetbrains IntelliJ平台,提供了多款IDE可供选择,包括Intellij IDEA、Andro...【详细内容】
2023-07-25  Search: IntelliJ  点击:(99)  评论:(0)  加入收藏
五个IntelliJ IDEA插件,高效编写代码
人工智能AI是当前广受认可的未来趋势和发展方向。虽然有些人担心AI可能会取代所有的工作,但实际上只会取代那些重复性高、产出低的工作。因此,我们应该学会更加聪明地工作,而不...【详细内容】
2023-07-06  Search: IntelliJ  点击:(287)  评论:(0)  加入收藏
IntelliJ IDEA的远程开发功能,强到老板看完了直呼:“真省钱”
本篇概览 IDEA的远程开发功能,可以将本地的编译、构建、调试、运行等工作都放在远程服务器上执行,而本地仅运行客户端软件进行常规的开发操作即可,官方给出的逻辑图如下,可见通...【详细内容】
2022-05-13  Search: IntelliJ  点击:(477)  评论:(0)  加入收藏
▌简易百科推荐
即将过时的 5 种软件开发技能!
作者 | Eran Yahav编译 | 言征出品 | 51CTO技术栈(微信号:blog51cto) 时至今日,AI编码工具已经进化到足够强大了吗?这未必好回答,但从2023 年 Stack Overflow 上的调查数据来看,44%...【详细内容】
2024-04-03    51CTO  Tags:软件开发   点击:(5)  评论:(0)  加入收藏
跳转链接代码怎么写?
在网页开发中,跳转链接是一项常见的功能。然而,对于非技术人员来说,编写跳转链接代码可能会显得有些困难。不用担心!我们可以借助外链平台来简化操作,即使没有编程经验,也能轻松实...【详细内容】
2024-03-27  蓝色天纪    Tags:跳转链接   点击:(12)  评论:(0)  加入收藏
中台亡了,问题到底出在哪里?
曾几何时,中台一度被当做“变革灵药”,嫁接在“前台作战单元”和“后台资源部门”之间,实现企业各业务线的“打通”和全域业务能力集成,提高开发和服务效率。但在中台如火如荼之...【详细内容】
2024-03-27  dbaplus社群    Tags:中台   点击:(8)  评论:(0)  加入收藏
员工写了个比删库更可怕的Bug!
想必大家都听说过删库跑路吧,我之前一直把它当一个段子来看。可万万没想到,就在昨天,我们公司的某位员工,竟然写了一个比删库更可怕的 Bug!给大家分享一下(不是公开处刑),希望朋友们...【详细内容】
2024-03-26  dbaplus社群    Tags:Bug   点击:(5)  评论:(0)  加入收藏
我们一起聊聊什么是正向代理和反向代理
从字面意思上看,代理就是代替处理的意思,一个对象有能力代替另一个对象处理某一件事。代理,这个词在我们的日常生活中也不陌生,比如在购物、旅游等场景中,我们经常会委托别人代替...【详细内容】
2024-03-26  萤火架构  微信公众号  Tags:正向代理   点击:(10)  评论:(0)  加入收藏
看一遍就理解:IO模型详解
前言大家好,我是程序员田螺。今天我们一起来学习IO模型。在本文开始前呢,先问问大家几个问题哈~什么是IO呢?什么是阻塞非阻塞IO?什么是同步异步IO?什么是IO多路复用?select/epoll...【详细内容】
2024-03-26  捡田螺的小男孩  微信公众号  Tags:IO模型   点击:(8)  评论:(0)  加入收藏
为什么都说 HashMap 是线程不安全的?
做Java开发的人,应该都用过 HashMap 这种集合。今天就和大家来聊聊,为什么 HashMap 是线程不安全的。1.HashMap 数据结构简单来说,HashMap 基于哈希表实现。它使用键的哈希码来...【详细内容】
2024-03-22  Java技术指北  微信公众号  Tags:HashMap   点击:(11)  评论:(0)  加入收藏
如何从头开始编写LoRA代码,这有一份教程
选自 lightning.ai作者:Sebastian Raschka机器之心编译编辑:陈萍作者表示:在各种有效的 LLM 微调方法中,LoRA 仍然是他的首选。LoRA(Low-Rank Adaptation)作为一种用于微调 LLM(大...【详细内容】
2024-03-21  机器之心Pro    Tags:LoRA   点击:(12)  评论:(0)  加入收藏
这样搭建日志中心,传统的ELK就扔了吧!
最近客户有个新需求,就是想查看网站的访问情况。由于网站没有做google的统计和百度的统计,所以访问情况,只能通过日志查看,通过脚本的形式给客户导出也不太实际,给客户写个简单的...【详细内容】
2024-03-20  dbaplus社群    Tags:日志   点击:(4)  评论:(0)  加入收藏
Kubernetes 究竟有没有 LTS?
从一个有趣的问题引出很多人都在关注的 Kubernetes LTS 的问题。有趣的问题2019 年,一个名为 apiserver LoopbackClient Server cert expired after 1 year[1] 的 issue 中提...【详细内容】
2024-03-15  云原生散修  微信公众号  Tags:Kubernetes   点击:(6)  评论:(0)  加入收藏
站内最新
站内热门
站内头条