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

相关推荐
狼爷8 小时前
吃透 Java Function 接口,搞定 99% 的 Stream 场景
java·函数式编程
祎雪双十Gy12 小时前
从 DataX 的配置加载说起:我用 FastJson2 做了一个轻量级动态配置管理库
java·后端
小锋java123412 小时前
分享一套锋哥原创的SpringBoot4+Vue3宠物领养网站系统
java
考虑考虑16 小时前
Java实现hmacsha1加密算法
java·后端·java ee
掉鱼的猫16 小时前
Spring Boot → Solon 注解迁移实战指南:一张对照表说清楚
java·spring boot
plainGeekDev16 小时前
广播接收器 → Flow + Lifecycle
android·java·kotlin
plainGeekDev16 小时前
EventBus → SharedFlow
android·java·kotlin
带刺的坐椅17 小时前
Spring Boot → Solon 注解迁移实战指南:一张对照表说清楚
java·springboot·web·solon
用户37215742613517 小时前
Java 将一个 PPT 文档拆分为多个文件
java
人活一口气1 天前
Spring Boot与AIGC的完美结合:从零搭建智能内容生成平台
java·spring boot·aigc