初识java(七):Java调试案例讲解

目录

一:什么是调试?

二:常⻅的调试⽅式

1.阅读代码跟踪程序问题

2.使⽤⼯具

三:使⽤IDEA调试Java程序

1.如何打断点

2.如何启动调试

3.调试界⾯介绍

4.逐过程

5.逐语句

6.强制步⼊功能

7.跳出功能

8.运⾏到光标所在位置

9.重新调试

10.跳到下⼀个断点

11.暂停调试

12.显⽰所有断点

13.屏蔽断点

四:其他

1.Debugger标签下会展⽰调⽤堆栈以及变量等表达式的值

2.Console标签下会展⽰控制台的输⼊输出信息

3.条件断点


本文章内容大纲:

1.本文介绍了程序调试的基本概念和常用方法。调试是指查找和修正程序错误的过程,主要通过逐步缩小范围定位问题。

2.常见调试方式包括代码阅读和使用开发工具。

重点讲解了在IDEA中调试Java程序的技巧:设置断点、启动调试、单步执行(Step Over/F8)、进入方法(Step Into/F7)、强制进入方法(Force Step Into)、跳出方法(Step Out)、运行到光标处等操作。

3.还介绍了调试界面功能,如查看调用堆栈、变量值、条件断点设置等。这些方法能有效帮助开发者快速定位和解决代码问题。

一:什么是调试?

当我们发现程序中存在的问题的时候,我们去查找和改正错误的过程称为调试(debugging)。

调试的⼀般途径是采⽤各种⽅法逐步缩⼩bug所在的范围,最终定位bug的准确位置。

二:常⻅的调试⽅式

1.阅读代码跟踪程序问题

  • 适⽤于代码量短⼩
  • 常⻅的⽅式是逐⾏阅读代码和插⼊⼀些打印语句观察代码的问题

2.使⽤⼯具

  • 适⽤于复杂程序
  • 使⽤集成开发⼯具中集成的调试器

三:使⽤IDEA调试Java程序

1.如何打断点

点击⿏标左键,出现红⾊按钮

看图:

2.如何启动调试

⿏标右键,点击Debug...

看图:

3.调试界⾯介绍

看图:

4.逐过程

逐⾏执⾏,不进⼊⽅法内部

快捷键:StepOver(F8)

看图:

5.逐语句

进⼊⽅法内部执⾏

快捷键:StepInto(F7)

看图:

6.强制步⼊功能

Force Step Into是⼀种强制步⼊功能,它允许调试器进⼊任何⽅法,包括那些通常会被StepInto功能 跳过的⽅法。

与普通StepInto的区别:

  • 普通StepInto(F7)通常会跳过库⽅法、⽆源代码的⽅法等。
  • ForceStepInto会进⼊任何⽅法,包括那些通常被跳过的⽅法。

快捷键:Alt+Shift+F7

看图:

7.跳出功能

跳出当前⽅法,它让程序执⾏完当前⽅法的剩余部分,然后返回到调⽤该⽅法的位置。快速完成当前 ⽅法的执⾏。

快捷键:StepOut(Shift+F8)

看图:

假设进⼊了⼀个⽅法,此时需要跳出,不执⾏后续⽅法。

8.运⾏到光标所在位置

运⾏到光标所在位置

快捷键:alt+F9

看图:

程序跳转到光标处

看图:

9.重新调试

快捷键:ctr+F5

看图:

10.跳到下⼀个断点

从当前断点处,直接跳转到下⼀个断点处

看图:

11.暂停调试

快捷键:ctr+F2

看图:

12.显⽰所有断点

是⼀个集中管理所有断点的界⾯,可以查看、编辑、启⽤/禁⽤或删除断点。

快捷键:通常是Ctrl+Shift+F8

看图:

13.屏蔽断点

临时禁⽤所有断点的功能,⽽不需要逐个禁⽤或删除它们

看图:

四:其他

1.Debugger标签下会展⽰调⽤堆栈以及变量等表达式的值

看图:

此时add:13 main:9属于调⽤堆栈信息,先调⽤main⽅法,后调⽤add⽅法

标有"Evaluateexpression(Enter) or addawatch",这⾥可以输⼊表达式进⾏求值或添加到监视列 表,如:

可以输出表达式,按下回⻋计算结果

2.Console标签下会展⽰控制台的输⼊输出信息

只要遇到输出语句,此时就可以查看输出的结果

3.条件断点

当⼀个代码需要满⾜某种条件进⾏调试,此时可以使⽤调试断点

  • 打断点
  • ⿏标右键,添加条件即可

看图:

  • 开始调试程序会停在满⾜条件的情况下

以上就是关于idea集成开发环境的调试的解析!!!!!

相关推荐
Wang's Blog20 分钟前
Java 接入Redis: 五大数据类型与存储结构选型
java·服务器·redis
Wang's Blog23 分钟前
Java 接入Redis: 字符串与哈希类型操作命令
java·服务器·redis
智慧物业老杨5 小时前
物业数字化落地思考:真正的转型,是底层数据秩序的重构
java·大数据·人工智能·微服务·系统架构
星空7 小时前
金蝶苍穹build.gradle配置
java·build.gradle
步行cgn10 小时前
Spring 基于 XML 的自动装配:byName 详解
java·后端·spring
大帅点兵11 小时前
Apache Ant 1.9.9 完整讲解
java
LuTshoes11 小时前
spring ai 实战 手搓 PlaneExecuteAgent
java·人工智能·spring·ai
这料鬼有毒11 小时前
二刷hot100-73.矩阵置零
java
caoerzhong11 小时前
JeeWMS 开源仓库管理系统二次开发与接口对接实战:Java WMS 如何与 ERP、MES 和自动化设备打通
java·开源
长谷深风11111 小时前
评测AI Agent:三种裁判各司其职
java·大数据·开发语言·人工智能·ai agent