当前位置: 首页 > news >正文

[Java] idea的调试介绍

1. 什么是调试?

调试就是帮助我们去寻找代码中的bug,优化代码的过程。调试对于程序员来说非常重要,能帮助我们更容易去找到代码中的错误,去修复。

2. idea集成开发环境的调试

下面我就介绍下idea集成开发环境下的调试,我以下面代码举例说明:

public class Test1 {public static int add(int x,int y) {int z = x + y;return z;}public static void main(String[] args) {int a = 10;System.out.println(a);int b = add(10,20);System.out.println(b);}
}

2.1 打断点

首先我们需要打断点,如下图:

鼠标移动到我们要开始运行的代码位置,也就是你想要开始调试的那行代码的左边区域,鼠标左键点击,即可打上红色断点。当我们开始调试后,程序运行到打断点的那行,断点那行还未执行。

2.2 启动调试

接下来就该启动调试,如下图:

2.3 调试界面

启动调试后,会显示下面界面:

下面我就介绍下每个按键的功能: 

2.4 调试区域

区域1就会显示下面的区域3和4,这是调试过程中显示调试过程的区域,

区域3是显示调试的类还有方法以及调试到第几行,相当于一个栈区,先调用的方法在栈底。

区域4是显示在调试过程中调试到对应方法里面定义的一些变量的值。不同方法的变量不会同时显示,调用那个方法,显示那个方法中的变量。

这块区域右侧上面的框也可以对代码中的变量进行运算。 

区域2是控制台界面,这里会显示程序在调试过程中打印在控制台上的东西:

2.5 逐过程

 

上图按键是逐过程调试,就是每一点击一下,就运行main方法里的一条语句,如果遇到调用其他方法的话,不会跳转到方法内部,一步运行完方法,接着往下运行,直到main方法运行完,程序结束。 

2.6 逐语句

上面按键是逐语句调试,它也是一步一步的调试,但是区别于逐过程,它会在main方法调试中,遇到调用的方法会进入方法内部进行逐语句调试,调试完再回到main方法中继续调试,但它不会进入Java自带的方法中去。

2.7 强制步入功能

 

 

上面按钮跟逐语句调试差不多,但是强制步入调试可以进入到Java自带的方法的内部去进行调试。 

2.8 跳出功能

 上面按钮是跳出方法的功能,当你进入main方法调用的方法里面后,调试一半后,不想再调试该方法了,就点击这个按钮,直接执行完剩下的语句,回到调用该方法的那行代码位置,此时该方法已经被执行完。

2.9 运行到光标所在位置

当你启动调试后,将光标移动到想要调试的行,点击此按键,就会调试到光标所在的那一行,但这行还未被执行。

2.10 重新调试

该按钮是将正在调试的程序,从断点处重新调试 

2.11 跳到下一个断点位置

假设你打了好几个断点,点击这个按钮可以从当前断点跳到下一个断点位置。 

2.12 暂停调试

这个按钮是暂停调试,点击后直接停止调试 

2.13 显示所有断点

这个按钮可以对断点进行调整,点击后会显示下面图片的内容:

 

 这里点击1的加号可以增加断点,2的减号可以删除断点。

2.14 屏蔽断点

这个按钮可以隐藏所有的断点,点击一下,所有断点隐藏,再点击一下,所有断点显示。

 2.15 条件断点

假设方法里面有一个循环,我们总不能一次一次的点击调试,这样效率太低了。我们可以设置条件断点,在循环内部语句中找一行打上断点,右击断点设置条件,确定后开始调试就会调试到符合条件的那层代码。

条件断点可以提高我们调试到效率。 

http://www.xdnf.cn/news/542089.html

相关文章:

  • win7无线网络名称显示为编码,连接对应网络不方便【解决办法】
  • Journal of Real-Time Image Processing 投稿过程
  • 推扫式高光谱相机VIX-N230重磅发布——开启精准成像新时代
  • Python爬虫(30)Python爬虫高阶:Selenium+Scrapy+Playwright融合架构,攻克动态页面与高反爬场景
  • 数论:数学王国的密码学
  • 新凌印 4.2.0 | 国内短视频去水印下载~图集下载
  • CodeBuddy全新升级:体验Craft智能体的对话式编程革命
  • 在 Excel 中使用东方仙盟软件————仙盟创梦IDE
  • Awesome ChatGPT Prompts:释放AI对话潜力的开源利器
  • java每日精进 5.20【MyBatis 联表分页查询】
  • NODE-I916 I721模块化电脑发布,AI算力与超低功耗的完美平衡
  • Java 06API时间类
  • CHI中ordering的抽象
  • 第四章、SKRL(2): API(Models and Model instantiators)
  • 银行反欺诈理论、方法与实践总结(下):解决方案
  • 【动手学深度学习】1.1~1.2 机器学习及其关键组件
  • 珈和科技贺李德仁院士荣膺国际数字地球学会会士:以时空智能赋能可持续发展目标 绘就数字地球未来蓝图
  • 基于pycharm,python,flask,tensorflow,keras,orm,mysql,在线深度学习sql语句检测系统
  • HarmonyOS5云服务技术分享--云缓存快速上手指南
  • 创建型:建造者模式
  • 跨域_Cross-origin resource sharing
  • SpringBoot-6-在IDEA中配置SpringBoot的Web开发测试环境
  • Spring Boot 多参数统一加解密方案详解:从原理到实战
  • 物流项目第三期(统一网关、工厂模式运用)
  • 普通人如何开发并训练自己的脑力?
  • npm vs npx 终极指南:从原理到实战的深度对比 全面解析包管理器与包执行器的核心差异,助你精准选择工具
  • 零基础深入解析 ngx_http_session_log_module
  • 视频太大?用魔影工厂压缩并转MP4,画质不打折!
  • 【缺陷】GaN和AlN中的掺杂特性
  • 小程序涉及提供提供文本深度合成技术,请补充选择:深度合成-AI问答类目