IntelliJ IDEA 2020 的Debug功能也太好用了,真香!
写在前边
作为一个有点强迫症的程序员来说,所有的应用软件、开发工具都必须要升级到最高版本,否则就会很难受到坐立不安、日思夜想、茶饭不思。至于什么时候得的这种病我也记不清了,哈哈哈
IntelliJ IDEA 作为工作最常用的开发工具之一,自然就成了我的主要升级对象,早上在逛IntelliJ IDEA 官网时,惊奇的发现居然有新版本更新,这让我有点喜出望外,没说的果断下载!
IntelliJ IDEA 2020.1 这个版本除了修复日常bug,对调试器和事件探查器(Profiler)进行了改进,并引入了新的提交工具窗口(Commit toolwindow)以及禅模式(Zen Mode)。
debug升级
IntelliJ IDEA 2020.1 向调试器添加了数据流分析协助功能(dataflow analysis assistance),此功能根据程序执行的当前状态预测并显示可能的异常以及始终为真/假的条件。
我们说的在明白一点就是当我们调试 Java 代码并到达断点时,IDE 将基于程序的当前状态运行数据流分析,并向我们显示在代码执行到该断点之前下一步将发生的情况:
举个简单的例子:
1public void test(){
2 int a = 1 ;
3 int b = 2 ;
4 int c = a + b;
5}
之前 debug 代码时只有当断点走到 int c = a + b;时才会显示 c=3 的结果。
升级后的 debug 功能可以在断点走到 int b = 2 时就可以显示出 c=3 的结果了,就不用我们一行一行的往下 debug 了。省去了很多无用功,节约了很多调试的时间。
折叠递归调用
当在堆栈中的更高层调用同一方法时,IntelliJ IDEA 现在可以检测到递归调用。
现在,IDE 会建议开发者将这些调用从子树中取出,从而可以绕过递归,并专注于消耗大部分资源的方法以及它们进行的调用。
递归调用在“调用树”选项卡中用以下新的特殊图标表示:
新commit工具窗口
在 2020.1 中为 Commit UI 提供了一个新的工具窗口。新的commit窗口包含了LocalChange和Shelf两个选项卡,个人觉得是这次版本更新最实用的一个功能点,以往提交代码时想看某文件的差异会单独弹出一个窗口,相对繁琐。而这次的新窗口将所有与提交有关的任务都放在了一起,例如:差异检查、选择要提交的文件及代码块、提交注释信息,看起来如下:
禅模式(Zen Mode)
再也不怕敲代码时,被一些无关紧要的消息被打扰了
此版本添加了新的禅模式(顾名思义就是很清静了,佛系敲代码做到心无旁骛666),以消除可能的干扰并帮助开发者完全专注于代码上。
其实这种模式本质上,就是结合了免打扰模式和全屏模式,因此不必每次想要进入或退出它们时都启用或禁用这两种模式。
那么要如何启用禅模式?
第一种、 View > Appearance > Enter Zen Mode
第二种、Ctrl+` > View mode > Enter Zen Mode
LightEdit 模式
顾名思义,这就是一个轻量的编辑模式,专用于打开和编辑文件。LightEdit 模式允许我们在简单的编辑器窗口中打开文件,而无需创建或加载项目。这也是对不少开发者希望将 IntelliJ IDEA 作为通用文本编辑器的要求的回应。
尝试 LightEdit 模式最简单的方式是通过命令行打开文件,如下所示:
总结
Java开发工具演变之路,从我最初接触Java开始用的 myeclipse 到 eclipse,再到 Idea,技术一路革新开发效率也再不断提升,如今Idea已然成为最流行的Java开发工具!
暂时就写到这,后续有新版本功能在和大家分享,学无止境加油
IntelliJ IDEA 2020 的Debug功能也太好用了,真香!的更多相关文章
- 程序员必须了解!IntelliJ IDEA 2020.2的新增功能
IDEA 因为之前破解过,所以家里的电脑都是19版本的,用的也比较顺手,也就一直懒得去动他,但是,程序猿的好奇心可能真的挺重,猎奇心里,在网上也看到了很多关于2020版本的idea的各种好处,于是,闲 ...
- IntelliJ IDEA 2020.3正式发布,年度最后一个版本很讲武德
仰不愧天,俯不愧人,内不愧心.关注公众号[BAT的乌托邦],有Spring技术栈.MyBatis.JVM.中间件等小而美的原创专栏供以免费学习.分享.成长,拒绝浅尝辄止.本文已被 https://ww ...
- IntelliJ IDEA 2020.2正式发布,诸多亮点总有几款能助你提效
向工具人致敬.本文已被 https://www.yourbatman.cn 收录,里面一并有Spring技术栈.MyBatis.JVM.中间件等小而美的专栏供以免费学习.关注公众号[BAT的乌托邦]逐 ...
- IntelliJ IDEA 2018.3 升级功能介绍
|0前言 2018.11.28 IntelliJ IDEA 2018.3 正式版发布.对于一个忠实爱好者,迫不及待的我下载了最新版本来体验下.而且 IDEA 今年的第三次重大更新提供了不容错过的显著功 ...
- Intellij IDEA中使用Debug
Intellij IDEA中使用Debug Debug用来追踪代码的运行流程,通常在程序运行过程中出现异常,启用Debug模式可以分析定位异常发生的位置,以及在运行过程中参数的变化.通常我们也可以启用 ...
- Intellij IDEA中使用Debug调试详解
转载:https://www.linuxidc.com/Linux/2017-09/146772.htm Intellij IDEA中使用Debug调试详解 Debug用来追踪代码的运行流程,通常 ...
- Intellij IDEA 2020.1.1 破解 永久有效 亲测100%成功
申明:本教程 WebStorm 破解补丁.激活码均收集于网络,请勿商用,仅供个人学习使用,如有侵权,请联系作者删除. 前言 作为一个有强迫症的码农,怎么能忍受自己的开发工具跟不上潮流呢?笔者以前一直用 ...
- JAVA基础学习之IP简述使用、反射、正则表达式操作、网络爬虫、可变参数、了解和入门注解的应用、使用Eclipse的Debug功能(7)
1.IP简述使用//获取本地主机ip地址对象.InetAddress ip = InetAddress.getLocalHost();//获取其他主机的ip地址对象.ip = InetAddress. ...
- 云笔记项目-网页端debug功能学习
在做云笔记项目的过程中,除了服务端在eclipse中debug调试代码外,有时候需要在浏览器端也需要进行debug调试,刘老师举了一个冒泡排序算法的dubug例子,进行了讲解. 首先上浏览器端测试代码 ...
随机推荐
- 从零开始のcocos2dx生活(四)ActionManager
文章目录 初始化构造函数 析构函数 删除哈希元素 分配存放动作对象的空间 通过索引移除动作 暂停动作 恢复动作 暂停所有的动作 恢复所有的动作 添加动作 移除所有的动作 移除target中的所有动作 ...
- 浅谈Java的默认和静态方法
目录 浅谈Java的默认和静态方法 Java新增默认方法有啥用 Java新增的静态方法有啥用 浅谈Java的默认和静态方法 允许在接口中声明默认方法和静态方法,是JDK1.8新增的特性.存在即合理,两 ...
- openLayers中WMTS结合GeoServer呈现瓦片地图
首先看openlayers官网中wmts模块,https://openlayers.org/en/latest/apidoc/module-ol_source_WMTS-WMTS.html,里面的参数 ...
- 我的代码真的没有bug,稍等,先试试小黄鸭调试法
今天测试同学为了赶进度,加班去测试我的功能. 因为我的代码都写完了,也没有陪测的必要,所以就没去了~ 下午第一个问题提过来,根据经验,这个应该是测试的逻辑问题,最后他自己也发现了. 过了一会,提了第二 ...
- 浅析vue封装自定义插件
在使用vue的过程中,经常会用到Vue.use,但是大部分对它一知半解,不了解在调用的时候具体做了什么,因此,本文简要概述下在vue中,如何封装自定义插件. 在开始之前,先补充一句,其实利用vue封装 ...
- 为云而生,腾讯云服务器操作系统TencentOS内核正式开源
1月9日,腾讯云宣布将开源其服务器操作系统TencentOS内核.相比业内其它版本Linux 内核,腾讯云 TencentOS 内核在资源调度弹性.容器支持.系统性能及安全等层面极具竞争力,特别适合 ...
- DFT与IDFT
[转]https://blog.csdn.net/mingzhuo_126/article/details/88044390 二.编程实现考滤到DFT和IDFT算法过程中有部分相似,可以把它们合成到一 ...
- Vector人工智能机器人SDK使用笔记
Cozmo是2016年推出的,2两年后的2018年Vector上市,具备语音助手和更多功能,元件数由300+升级到700+. Vector的SDK具体说明在:developer.anki.com/ve ...
- 悄摸直播 —— JavaCV实现本机摄像头画面远程直播
目录 前言 需要的jar包和依赖 需要实现的模块(附带源码教程) 项目效果展示 前言 最近想用Java实现一个类似于远程直播的功能 像这样:(功能示意图) 需要的jar包和依赖 Maven依赖: &l ...
- feign架构 原理解析
什么是feign? 来自官网的解释:Feign makes writing java http clients easier 在使用feign之前,我们怎么发送请求? 拿okhttp举例: publi ...