详解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 将基于程序的当前状态运行数据流分析,并向我们显示在代码执行到该断点之前下一步将发生的情况:

举个简单的例子:

public void test(){
 int a = 1 ;
 int b = 2 ;
 int c = a + b;
}

之前 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开发工具!

暂时就写到这,后续有新版本功能在和大家分享,学无止境加油💪!

双手奉上下载地址:https://www.jetbrains.com/idea/nextversion

到此这篇关于IntelliJ IDEA 2020 的Debug功能也太好用了,真香!的文章就介绍到这了,更多相关IDEA 2020 Debug功能内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • 解决IDEA2020.1版本不兼容Lombok的问题

    Lombok不兼容: 问题:Plugin Error: Plugin "Lombok" is incompatible 解决办法: 1.进入Lombok官网插件地址下载0.29-EAP版本 2.打开Settings -->Plugins 3.选择刚刚下载好的zip包 4.重启IDEA就搞定啦 IDEA2020.1更新了什么? 到此这篇关于解决IDEA2020.1版本不兼容Lombok的问题的文章就介绍到这了,更多相关IDEA2020.1不兼容Lombok内容请搜索我们以前的文章或

  • 最新idea2020注册码永久激活(激活到2100年)

    首先有图有真相: 资源链接: 链接: https://pan.baidu.com/s/1mvU2qDxJPCXbCuVaCVCjGA 提取码: k3e2 第一步:将bin目录下的三个文件拷贝到IDEA安装之后的bin目录下,替换文件. 第二步:编辑idea.exe.vmoptions和idea64.exe.vmoptions文件,这两个文件的修改方式完全相同,都是修改文件的最后一行:"-javaagent:".确保"-javaagent:将jar文件的全路径拷贝到这里&quo

  • IntelliJ Idea 2020.1 正式发布,官方支持中文(必看)

    1. 前言 今天 IntelliJ Idea 2020.1 正式发布了!最大的一个亮点莫过于开始支持中文了.相信很多英语不好的同学已经期盼已久了.但是感觉登录界面感觉变丑了!建议把文章看完再去升级. 2. 汉化体验 先来看看我的效果,首先要告诉你这是官方汉化包,并不是第三方! 我大致看了一圈,个别还没有汉化完毕,可能没有找到合适的描述词汇吧,但是绝大部分已经完成了. 这下很多同学可以更方便使用了.但是对于习惯了英文界面的同学来说,要小小的适应一下. 3. 如何开启中文汉化 看到上面的效果,相信有

  • IntelliJ idea激活码获取方法(idea2020激活码汇总)

    我们现在来给大家提供一下IntelliJ IDEA相关软件下载: 1.IntelliJ IDEA 2019.3.3 旗舰版 官方正式版(附汉化包+激活码+汉化激活方法) https://www.jb51.net/softs/543007.html 2.IntelliJ IDEA 2020.1 EAP 官方早期版 32/64位 https://www.jb51.net/softs/713980.html 接下来是我们整理的全部相关激活教程,非常详细! 1.IntelliJ Idea 2017注册码

  • 2020最新版idea激活教程(推荐)

    首先下载jar包:(云盘链接发不上去,大家关注gzh"灰太狼学爪哇"回复idea获取)将其放到合适的文件夹(首选IDEA的同级目录)进行管理: 进入C盘 -> 用户 ->用户名 -> .IntelliJIdea2019.2或者.IntelliJIdea2019.3 -> config -> idea64.exe.vmoptions文件,在文件的末尾加上-javaagent:jar路径和jar包名字,例如-javaagent:D:\Idea\jetbrain

  • 详解IntelliJ IDEA 2020 的Debug功能

    IntelliJ IDEA 作为工作最常用的开发工具之一,自然就成了我的主要升级对象,早上在逛IntelliJ IDEA 官网时,惊奇的发现居然有新版本更新,这让我有点喜出望外,没说的果断下载! IntelliJ IDEA 2020.1 这个版本除了修复日常bug,对调试器和事件探查器(Profiler)进行了改进,并引入了新的提交工具窗口(Commit toolwindow)以及禅模式(Zen Mode). debug升级 IntelliJ IDEA 2020.1 向调试器添加了数据流分析协助

  • 详解IntelliJ IDEA2020.1和JDK14体验

    IntelliJ IDEA2020.1和JDK14体验 IntelliJ IDEA新功能: 界面支持中文 但这里要注意的是不是原生支持中文,而是要安装jetbrains的官方插件,如下图 导航栏改进 上面的导航栏可以直接跳转到各个方法,这个以前要实现的话要点左侧的Structure,现在就方便多了 支持Javadoc的渲染 以前Javadoc看起来很费劲,要手动转换html格式,现在看起来就很方便了,还可以更改字体大小 以前 现在 新增主题和字体 主题: 字体: Lightedit模式 你可以把

  • 详解Intellij IDEA的Facets和Artifacts

    Facets: Facets表述了在Module中使用的各种各样的框架.技术和语言.这些Facets让Intellij IDEA知道怎么对待module内容,并保证与相应的框架和语言保持一致. 使用Facets能让我们下载并配置framework所必须的组件,会自动生成各种各样的描述符,并存储在适当的位置,等等. 大多数Facets可以无冲突得添加到Module中. 也有一些Facets是继承其他Facets的,这些Facets的添加就必须先添加他们的父Facets,这些Facets也要依赖In

  • 一文快速详解前端框架 Vue 最强大的功能

    组件是 vue.js最强大的功能之一,而组件实例的作用域是相互独立的,这就意味着不同组件之间的数据无法相互引用.一般来说,组件可以有以下几种关系: 如上图所示,A 和 B.B 和 C.B 和 D 都是父子关系,C 和 D 是兄弟关系,A 和 C 是隔代关系(可能隔多代). 针对不同的使用场景,如何选择行之有效的通信方式?这是我们所要探讨的主题.本文总结了vue组件间通信的几种方式,如props. $emit/ $on.vuex. $parent / $children. $attrs/ $lis

  • 详解python使用金山词霸的翻译功能(调试工具断点的使用)

    今天试着用python获取金山词霸的翻译功能,链接在这里: ICIBA传送门 打开之后,界面是这样的,还是比较干净的. 按F12,打开调试工具,选择Network,找到XHR 这里就是查看网络传输的内容.XHR就是不刷新页面的网络传输,就是常说的ajax(阿贾克斯,像是希腊神话里的名字--). 然后我们在翻译窗口写点儿内容,然后点翻译 看,左边的页面出现了翻译结果,右边调试窗口出现了两条数据传输. 两条?那我们选哪条呢?点开看看-- 哦,天哪~两条都是一样的,那我们随便选一条就可以了. 点一下,

  • 详解vue实现坐标拾取器功能示例

    需求 1.搜索具体地址,自动填写经纬度,并在地图上标记 2.点击地图上一点,可重新填写经纬度并且标记 代码 在dom新建div渲染地图 <el-form-item label="店铺地址" prop="address"> <el-input v-model="fristForm.address"></el-input> <el-input class="long-lat" v-mode

  • 详解Laravel框架的依赖注入功能

    概述 任何时候,你在一个控制器类中请求一个依赖,这个服务容器负责: 1.自动地在构造函数中检测依赖关系 2.如果需要构建这个依赖关系 3.通过构造函数创建对象形成依赖关系 来看一个非常简单的例子. <?php namespace App\Http\Controllers; use App\User; use App\Repositories\UserRepository; use App\Http\Controllers\Controller; class UserController exte

  • 详解如何查看Elasticsearch的Debug日志

    目录 正文 源码分析 apply setting 代码 正文 当我们遇到问题或者需要深入了解 Elasticsearch 的运行机制时,调整日志等级( logging level )到更详细的级别,比如 DEBUG.TRACE ,会是一个有效且必须要掌握的方法. Elasticsearch 提供了如下的接口来支持动态变更 logging level,logger 后面是 package name 或者 class name. PUT _cluster/settings { "persistent

  • 基于Vue实现的多条件筛选功能的详解(类似京东和淘宝功能)

    基于Vue实现的多条件筛选功能(类似京东和淘宝功能),可以支持多选.清空.全选功能,数据源是通过JSon格式的数据封装而成. 实现的效果图: 代码实现如下: html: <div id='app'> <template v-if='condition.length'> <div> <span>已选中:<span> <span v-for='(item,index) in condition' class='active'>{{item

  • 详解IntelliJ IDEA 快捷键整合(大全)

    1.代码标签输入完成后,按Tab,生成代码. Ctrl+Alt+O 优化导入的类和包 Alt+Insert 生成代码(如get,set方法,构造函数等) 或者右键(Generate) fori/sout/psvm + Tab Ctrl+Alt+T 生成try catch 或者 Alt+enter CTRL+ALT+T 把选中的代码放在 TRY{} IF{} ELSE{} 里 Ctrl + O 重写方法 Ctrl + I 实现方法 Ctr+shift+U 大小写转化 ALT+回车 导入包,自动修正

随机推荐