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日
    浏览(70)
  • Intellij IDEA有什么奇技淫巧?

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    2024年02月12日
    浏览(41)
  • java中有哪些流?各自的区别是什么?

    java中的流可以按操作类型划分为: 字节流和字符流 字节流 操作的类型是字节,可以操作计算机中任何类型的数据 字符流 操作单位是字符,只能操作文字 还可以按照流向进行划分:分 为输入流和输出流 输入流 指的是将文件中的数据读取到程序中(向程序中读入数据) 输

    2024年02月05日
    浏览(48)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包