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

相关推荐
丘山一郎5 小时前
Spring 中的IOC控制反转 和DI依赖注入
java·后端·spring
码视野5 小时前
基于 Spring Boot + Vue3 的【大学英语四六级 (CET-4/6) 作文智能评分与句式润色系统】设计与实现(含PRD/三端高保真源码/大屏)
java·前端·人工智能·spring boot·后端·vue3
MetaLite5 小时前
Spring-AOP自调用为什么失效-AopContext真能解决吗
java·后端·spring
大模型码小白5 小时前
AI 对话流性能调优:万级消息的虚拟滚动落地
java·大数据·前端·javascript·人工智能·算法·机器学习
许彰午6 小时前
14-字段级SM4加密与SM2签名
java·低代码·架构
许彰午7 小时前
13-describe元数据输出
java·低代码·架构·状态模式
用户3721574261358 小时前
Java 设置 Word 文档编辑限制并允许指定区域编辑
java
宠友信息9 小时前
社区类源码开发实践中的仿小红书系统技术要点分析
java·spring boot·redis·mysql·uni-app·vue·内容运营
用户3721574261359 小时前
Java 设置 PDF 表单域只读或扁平化
java
luteres10 小时前
Spring学习笔记
java·后端·spring