当前位置: 首页 > news >正文

零基础学Java第七讲---调试(IDEA)

一、什么是调试

        首先,我们要明白,在工作中,我们并不是大多数的时间都在敲代码。就像是说把被子叠成豆腐块一样,讲究“三分叠,七分修”,对于我们程序员而言,敲代码只是一小部分,更多的时间要用来调试。

1、什么是调试?

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

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

二、常见的调试方式

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

(1)适用于代码量短小

(2)常见的方式是逐行阅读代码和插入⼀些打印语句观察代码的问题

2、使用工具

(1)适用于复杂程序

(2)使用集成开发工具中集成的调试器

三、使用IDEA调试Java程序

1、打断点

        把鼠标放在行号左侧这里,点击鼠标左键,出现红色按钮

2、启动调试

        鼠标右键,点击Debug...

3、调试界面介绍

3.1逐过程

        逐行执行,不进入方法内部

        快捷键:Step Over(F8)

3.2逐语句

       进入方法内部执行

        快捷键:Step Into(F7)

3.3强制步入功能

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

与普通Step Into(F7)的区别:

(1)普通Step Into(F7)通常会跳过库方法、无源代码的方法等。

(2)ForceStepInto会进入任何方法,包括那些通常被跳过的方法。

快捷键:Alt+Shift+F7

3.4跳出功能

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

快捷键:StepOut(Shift+F8)

        假设进入了⼀个方法,此时需要跳出,不执行后续方法。

3.5运行到光标所在位置

快捷键:alt+F9

3.6重新调试

快捷键:ctr+F5

3.7跳到下⼀个断点

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

3.8暂停调试

快捷键:ctr+F2

3.9显示所有断点

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

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

3.10屏蔽断点

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

四、其他

1、Debugger标签下会展示调用堆栈以及变量等表达式的值

        此时add:11 main:5属于调用堆栈信息,先调用main方法,后调用add方法

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

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

2、Console标签下会展示控制台的输入输出信息

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

3、条件断点

        当⼀个代码需要满足某种条件进行调试,此时可以使用调试断点

(1)打断点

(2)鼠标右键,添加条件即可

(3)开始调试程序会停在满足条件的情况下

http://www.dtcms.com/a/327664.html

相关文章:

  • 面试经典150题[001]:合并两个有序数组(LeetCode 88)
  • 【代码随想录day 17】 力扣 98.验证二叉搜索树
  • iis无法访问文件
  • NTP常见日志分析
  • 每日五个pyecharts可视化图表-line:从入门到精通 (4)
  • 多轮问答与指代消解
  • 测试匠谈 | AI语音合成之大模型性能优化实践
  • @JsonAnyGetter 动态表格渲染的“神”
  • 「机器学习」:金融风控贷款违约预测,天池比赛解决详细思路
  • Redis面试精讲 Day 19:Redis缓存设计模式与策略
  • 剑指offer第2版——面试题3:数组中重复的数字
  • RabbitMQ-知识技能图谱(总结篇)
  • 【时时三省】(C语言基础)建立动态链表
  • LeetCode189~191、198~214题解
  • 探秘酵母单杂交技术:解锁基因调控的密码
  • WEB虚拟主机3种部署方式全解析
  • 【Java Web 快速入门】九、事务管理
  • 【数据分享】2018-2024年中国10米分辨率春小麦和冬小麦分布栅格数据
  • Unity:GUI笔记(一)——文本、按钮、多选框和单选框、输入框和拖动条、图片绘制和框绘制
  • vue3大事件
  • 4.运算符
  • TF-IDF——红楼梦案例
  • IIS Express中可以同时加载并使用.net4.0和.NET 2.0的 DLL
  • Linux服务:Apache 虚拟主机配置指南:多站点部署三种方式详解
  • 【DL】浅层神经网络
  • 一键设置 NTP 时区的脚本(亲测,适用于部署 K8S 的前置环境)
  • 测试环境下因网络环境变化导致集群无法正常使用解决办法
  • Java调用Vue前端页面生成PDF文件
  • 【K8s】K8s控制器——Deamonset、Statefulset、Job与CronJob
  • 基于 Easy Rules 的电商订单智能决策系统:构建可扩展的业务规则引擎实践