Java断点调试

目录

一个实际需求

断点调试介绍

 断点调试的快捷键

代码调试示意图

断点调试案例1

断点调试案例2

断点调试案例3 

断点调试案例4

断点调试练习1

断点调试练习2


一个实际需求

 

在断点调试过程中是以对象的运行类型来执行的。

断点调试介绍

 

 断点调试的快捷键

F7跳入方法,F8逐行执行代码,shift+F8跳出方法,F9resume执行到下一个断点。

代码调试示意图

 浅蓝色像是被荧光笔划的的那个区域表示代码执行到当前行。

在下方我们可以看到各个变量的情况,使用console还可以切换到输出控制台看程序输出的情况。

断点调试案例1

 在左边的行数上进行单击,那一行就会变红代表断点。再点击一次就会取消这个断点。

点击Debug开始调试。 

step over代表逐行执行。

 

step into进入方法。

 

force step into表示强制进入方法。

 

step out跳出方法。

 

resume program可以直接执行到下一个断点。 

停止debug。

 

点击F8程序就会不断的执行。 

断点调试案例2

将鼠标光标放在数组上点击加号。

 

可以看到数组的情况。 

这里args.length的值为0。

 

更改后,输出arr【3】时就会报错,因为不存在,数组越界了。

断点调试案例3 

可以使用F7跳入方法,查看源码。

 

但是使用F7没跳入进去。

 

 

默认是不让我们进入的,配置一下就行了。 

java的sort方法使用的是双重排序 。

那我们怎么回到原来的代码呢?

使用shift+F8快速的跳出方法。

 

 

连续跳出两次回来,发现数组已经被排序好了。

断点调试案例4

 可以事先下好断点,也可以debug的同时下断点。

执行之前有两个断点。 

         使用resume(F9快捷键)可以直接到下一个断点的位置,断点是可以在debug的过程中实时添加的

在jdk的源码里也支持下断点。

断点调试练习1

 

创建一个类person,有构造器。

 重写toString方法。直接输出对象。

        创建对象的流程:第一步加载类信息,第二步先默认初始化再显式初始化再构造器初始化,第三步返回对象的地址。 

 ​​​​​​​

直接强制进入。

 

进行类的加载。

 

默认初始化和显示初始化看不到,接下来直接到构造器初始化。

 

传进来的name为jack,age为20,当前的name为null,age为0。

 再看jack的输出。

 

 

        进入再进入可以看到,如果obj不为空就调用obj的toString方法,我们传入的obj类型为person,所以可以调用我们重写后的toString方法。

f4b9c2bdb5144668852f90256b4d994f.png

断点调试练习2

 

 

 

直接进入了父类里的sum(实际上是先找子类的sum,发现没有,再去父类找,结果找到了) 

        geti跑到子类来了是由于动态绑定机制,它的运行类型为子类,且geti是一个方法,所以会先去子类找。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

柏箱

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值