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

相关推荐
Patrick在香港42 分钟前
Python Docker镜像从1.2GB到89MB:多阶段构建的完整优化实录
java·python·docker·信息可视化·容器·数据分析·ai编程
上海安当技术1 小时前
敏感数据怎么防拖库?信封加密(DEK+KEK 二层密钥)架构设计与 Java 实战
java·开发语言·python
我是唐青枫1 小时前
Java JCommander 实战详解:用注解解析命令行参数
java·开发语言
大鹏说大话1 小时前
C++ 内存布局详解:类、虚函数、虚表底层原理
java·开发语言
还是鼠鼠2 小时前
Spring AI连接DeepSeek与通义千问:application.yaml配置详解
java·通义千问·spring ai·deepseek
计算机小白一个3 小时前
蓝桥杯 Java B 组之哈希表应用(两数之和、重复元素判断)
java·数据结构·算法·蓝桥杯
sunburn-4 小时前
Java 队列全面详解:从入门到面试实战
java·开发语言·汇编·ide·idea
vx-程序开发4 小时前
springboot农产品运输服务平台---附源码75498
java·javascript·spring boot·python·eclipse·django·php
zzh___zzh5 小时前
SQL 窗口函数 ROW_NUMBER、RANK、DENSE_RANK 常用方法笔记
java
计科土狗5 小时前
GESP六级专题之类与对象
java·前端·数据库