初识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集成开发环境的调试的解析!!!!!

相关推荐
Volunteer Technology1 小时前
Spring AI MCP 案例-WebFlux SSE传输模式 (九)
java·数据库·人工智能·spring
rabbit_pro1 小时前
SpringBoot3集成Langchain4j使用Ollama
java·开发语言
解决问题no解决代码问题2 小时前
JAVA GC
java·开发语言·jvm
小蜗快跑丶2 小时前
idea 运行main方法和test出错
intellij-idea
小程故事多_802 小时前
Agent Loop 核心突破,上下文压缩四大流派,重新定义窗口资源利用率
java·开发语言·人工智能
神仙别闹2 小时前
基于Java+MySQL实现(GUI)医院管理系统
java·mysql·oracle
吴声子夜歌3 小时前
Java——显示条件
java·开发语言
AC赳赳老秦3 小时前
OpenClaw与WPS宏联动:批量执行WPS复杂操作,解决办公表格批量处理难题
java·前端·数据库·自动化·需求分析·deepseek·openclaw
bupt_013 小时前
Hermes深入理解及源码解析(二):Hermes的记忆机制
java·服务器·前端