IntelliJ IDEA 中有什么让你相见恨晚的技巧

这篇具有很好参考价值的文章主要介绍了IntelliJ IDEA 中有什么让你相见恨晚的技巧。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、条件断点

循环中经常用到这个技巧,比如:遍历1个大List的过程中,想让断点停在某个特定值。

IntelliJ IDEA 中有什么让你相见恨晚的技巧,idea,intellij-idea,java,ide

参考上图,在断点的位置,右击断点旁边的小红点,会出来一个界面,在Condition这里填入断点条件即可,这样调试时,就会自动停在i=10的位置

IntelliJ IDEA 中有什么让你相见恨晚的技巧,idea,intellij-idea,java,ide

作者:黑马程序员
链接:https://www.zhihu.com/question/300830746/answer/2836522148
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
 

二、回到"上一步"

该技巧最适合特别复杂的方法套方法的场景,好不容易跑起来,一不小心手一抖,断点过去了,想回过头看看刚才的变量值,如果不知道该技巧,只能再跑一遍。

IntelliJ IDEA 中有什么让你相见恨晚的技巧,idea,intellij-idea,java,ide

参考上图,method1方法调用method2,当前断点的位置j=100,点击上图红色箭头位置的Drop Frame图标后,时间穿越了

IntelliJ IDEA 中有什么让你相见恨晚的技巧,idea,intellij-idea,java,ide

回到了method1刚开始调用的时候,变量i变成了99,没毛病吧,老铁们,是不是很6 :)

注:好奇心是人类进步的阶梯,如果想知道为啥这个功能叫Drop Frame,而不是类似Back To Previous 之类的,可以去翻翻JVM的书,JVM内部以栈帧为单位保存线程的运行状态,drop frame即扔掉当前运行的栈帧,这样当前“指针”的位置,就自然到了上一帧的位置。

三、多线程调试

多线程同时运行时,谁先执行,谁后执行,完全是看CPU心情的,无法控制先后,运行时可能没什么问题,但是调试时就比较麻烦了,最明显的就是断点乱跳,一会儿停这个线程,一会儿停在另一个线程,比如下图:

IntelliJ IDEA 中有什么让你相见恨晚的技巧,idea,intellij-idea,java,ide

如果想希望下一个断点位置是第2句诗句,可能要失望了:

IntelliJ IDEA 中有什么让你相见恨晚的技巧,idea,intellij-idea,java,ide

如果想让线程在调试时,想按自己的愿意来,让它停在哪个线程就停在哪个线程,可以在图中3个断点的小红点上右击,

IntelliJ IDEA 中有什么让你相见恨晚的技巧,idea,intellij-idea,java,ide

即:Suspend挂起的条件是按每个线程来,而非All。把这3个断点都这么设置后,再来一发试试

IntelliJ IDEA 中有什么让你相见恨晚的技巧,idea,intellij-idea,java,ide

注意上图中的红框位置,断点停下来时,这个下拉框可以看到各个线程(注:给线程起个容易识别的名字是个好习惯!),我们可以选择线程“天空中的飞鸟”

IntelliJ IDEA 中有什么让你相见恨晚的技巧,idea,intellij-idea,java,ide

断点如愿停在了第2句诗。

四、远程调试

这也是一个装B的利器,本机不用启动项目,只要有源代码,可以在本机直接远程调试服务器上的代码,打开姿势如下:

4.1 项目启动时,先允许远程调试

java -server -Xms512m -Xmx512m -Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=9081 -Djava.ext.dirs=. ${main_class}

起作用的就是

-Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=9081

注意:远程调试从技术上讲,就是在本机与远程建立scoket通讯,所以端口不要冲突,而且本机要允许访问远程端口,另外这一段参数,放要在-jar 或 ${main_class}的前面

4.2 idea中设置远程调试

IntelliJ IDEA 中有什么让你相见恨晚的技巧,idea,intellij-idea,java,ide

然后就可以调试了

IntelliJ IDEA 中有什么让你相见恨晚的技巧,idea,intellij-idea,java,ide

前提是本机有项目的源代码 ,在需要的地方打个断点,然后访问一个远程的url试试,断点就会停下来。

五、临时执行表达式/修改变量的运行值

调试时,可以临时执行一些表达式,参考下图:点击这二个图标中的任何1个都可以

IntelliJ IDEA 中有什么让你相见恨晚的技巧,idea,intellij-idea,java,ide

点击+号后,就可以在新出现的输入框里输入表达式,比如i+5

IntelliJ IDEA 中有什么让你相见恨晚的技巧,idea,intellij-idea,java,ide

然后回车,马上就能看到结果

IntelliJ IDEA 中有什么让你相见恨晚的技巧,idea,intellij-idea,java,ide

当然,如果调试时,想动态修改变量的值,也很容易,在变量上右击,然后选择Set Value,剩下的事,地球人都知道。

IntelliJ IDEA 中有什么让你相见恨晚的技巧,idea,intellij-idea,java,ide

更多消息资讯,请访问昂焱数据。昂焱数据文章来源地址https://www.toymoban.com/news/detail-763372.html

到了这里,关于IntelliJ IDEA 中有什么让你相见恨晚的技巧的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 相见恨晚的5款良心软件,每款都是经过时间检验的精品

    今天来给大家推荐5款良心软件,每款都是经过时间检验的精品,用起来让你的工作效率提升飞快,各个都让你觉得相见恨晚! ColorPicker是一款用于在屏幕上选择颜色的工具。它可以让你快速地获取任意像素的颜色值,并复制到剪贴板。ColorPicker支持多种颜色格式,如RGB,HEX,HSL等。这

    2024年02月05日
    浏览(60)
  • Intellij IDEA有什么奇技淫巧?

    IDEA全称 IntelliJIDEA,是java语言开发的集成环境,IntelliJ在业界被公认为最好的java开发工具之一,尤其在 智能代码助手、代码自动提示、重构、J2EE支持、Ant、JUnit、CVS整合、代码审查、创新的GUI设计 等方面的功能可以说是超常的。 idea下载地址:jetbrains.com/idea 下面来说几个I

    2024年02月15日
    浏览(30)
  • 在IntelliJ IDEA中,.idea文件是什么,可以删除吗

    相信有很多小伙伴,在用idea写java代码的时候,创建工程总是会出现.idea文件,该文件也从来没去打开使用过,那么它在我们项目里面,扮演什么角色,到底能不能删除它呢? .idea文件夹是 存储IntelliJ IDEA项目的配置信息, 主要内容如下 :  IDEA项目本身的一些编译配置。  文

    2024年01月20日
    浏览(39)
  • 什么是EventEmitter?它在Node.js中有什么作用?

    前端入门之旅:探索Web开发的奇妙世界 欢迎来到前端入门之旅!感兴趣的可以订阅本专栏哦!这个专栏是为那些对Web开发感兴趣、刚刚踏入前端领域的朋友们量身打造的。无论你是完全的新手还是有一些基础的开发者,这里都将为你提供一个系统而又亲切的学习平台。在这个

    2024年02月07日
    浏览(32)
  • 模因学是什么意思,在生活中有什么应用?

    问题描述: 模因学是什么意思,在生活中有什么应用? 问题解答: 意思: \\\"模因学\\\"源自于英文中的 \\\"meme\\\",是由理查德·道金斯(Richard Dawkins)于1976年在他的著作《自私的基因》(The Selfish Gene)中提出的一个概念。道金斯将模因定义为一种信息单元,类似于基因在生物学中

    2024年01月19日
    浏览(33)
  • 电力物联网是什么?在智能配电系统中有什么作用?

    摘要 :在社会经济和科学技术不断发展中,配电网实现了角色转变,传统的单向供电服务形式已经被双向能流服务形式取代,社会多样化的用电需求也得以有效满足。随着物联网技术的发展,泛在电力物联网开始应用于当今的电力系统。本文分析泛在电力物联网在智能配电系

    2024年02月03日
    浏览(31)
  • 【idea系列】IntelliJ IDEA汇总

    💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 非常期待和您一起在这个小小的网络世界里共同探索、学习和成长。💝💝💝 ✨✨ 欢迎订阅

    2024年02月12日
    浏览(23)
  • Java中有了equals(),为什么还有“==“

    背景:Java中“一切皆是对象”,为什么还有非对象的“==”? 在Java语言假设我们只进行OOP,所以Java代码都是由一个接着一个的类组成的。那么,对象之间比较,用equals()就可以了。 可为什么“==”在代码随处可见呢? Java是基于C++的,相比与C++,Java是一种更“纯粹”的面向

    2023年04月20日
    浏览(44)
  • 【Intellij idea】-- idea.vmoptions 目录

    在 Mac 上,IntelliJ IDEA 的 idea.vmoptions 文件通常位于以下目录中: 其中 ~ 表示当前用户的 home 目录, version 是 IntelliJ IDEA 的版本号。例如,如果你使用的是 IntelliJ IDEA 2021.2 版本,那么该文件的完整路径应该是: 请注意, idea.vmoptions 文件是一个文本文件,其中包含了 IntelliJ ID

    2024年02月12日
    浏览(30)
  • 路由器在网络连接中有什么作用

    所谓路由就是指通过相互连接的网络把信息从源地点移动到目标地点的活动。一般来说,在路由过程中,信息至少会经过一个或多个中间节点。通常,人们会把路由和交换进行对比,这主要是因为在普通用户看来两者所实现的功能是完全一样的。其实,路由和交换之间的主要

    2024年02月05日
    浏览(32)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包