【java】327~333断点调试

本文介绍了断点调试在软件开发中的作用,包括逐步执行、查找bug、查看代码执行逻辑和异常处理。通过IDEA的快捷键操作和实际案例演示,展示了如何有效使用断点调试工具提升编程效率。
摘要由CSDN通过智能技术生成

目录

 

断点调试的介绍

断点调试的作用

断点调试的介绍

快捷键(针对于IDEA)

案例演示

案例一,查看正常代码的运行逻辑

​案例二,发现代码中的异常

案例三,跳出跳入源代码


断点调试的介绍

断点调试的作用

  1. 在开发中可以使用断点调试来一步一步地执行程序,进而发现程序在执行过程中的错误,因此断点调试又叫debug
  2. 在看别人的程序的时候可以用debug一步一步看代码的作用,有助于更清晰地理解别人的代码

断点调试的介绍

  1. 标注一个断点,程序从断点开始一步一步执行,遇到错误就停下,可以进行分析进而找到bug
  2. 断点调试可以帮助我们找到java底层源代码执行的过程,有助于提升程序员的java水平

快捷键(针对于IDEA)

  1. F7跳入
  2. F8跳过(逐行执行代码)
  3. shift+F8跳出方法
  4. F9执行下一个断点

案例演示

案例一,查看正常代码的运行逻辑

下面以一个2的五次方的代码来演示

package com.humouren.debug_;

public class debug_ {
    public static void main(String[] args) {
        int sum = 2;
        for (int i = 0; i < 5; i++) {
            System.out.println("循环次数为" + (i+1));
            System.out.println("现在的和为" + sum);
            sum+=sum;
        }
    }
}

首先在int sum = 2;前面位置点一下,打一个断点

右键选择调试(debug)

一次一次的点步过键可以看到目前每个变量的数值,和一步一步地输出,已经出现在了屏幕上

案例二,发现代码中的异常

以这个一眼就能看出来错误原因的代码做一个演示(循环次数大于数组元素个数)

package com.humouren.debug_;

public class debug02 {
    public static void main(String[] args) {
        int[] arr = {1,2,3,4};
        for (int i = 0; i <= arr.length; i++) {
            System.out.println(arr[i]);
        }
    }
}

可以看到当i=4的时候已经在代码区域出现了错误信息的提示了

再点一下F8就发现已经调试完成了

案例三,跳出跳入源代码

java里面有一个内置的对数组进行排序的方法,下面来通过调试看看这个方法在源代码里面的执行逻辑

package com.humouren.debug_;

import java.lang.reflect.Array;
import java.util.Arrays;

public class debug03 {
    public static void main(String[] args) {
        int[] arr = {-3,0,3,-2,4,1,-4};
        Arrays.sort(arr);
        for (int i = 0; i < arr.length; i++) {
            System.out.print(arr[i]+"\t");
        }
    }
}

在这一步的前面打上红点开始调试,点步入,跳入源代码,或者按下F7

 如果点了步入没有反应怎么办

进入设置,按照下面的图示取消掉这两项前面的对勾(也可以按下shift+F7强制步入)

 然后就可以顺利步入了

 就这样一步一步到达最深处

如果你想回到你刚刚被写的代码里面去,可以按下步入旁边的步出按钮一步一步地回去

 可以看到上面已经打开了两层代码,这就像文件夹里面的子目录一样互相关联

案例四,查看是否可以到达某行代码

先上代码,可以明显看到for语句这一步是肯定不能正确执行的

package com.humouren.debug_;

public class debug04 {
    public static void main(String[] args) {
         int a = 1;
         int b = 2;
        System.out.println("a=" +a);
        System.out.println("b=" +b);

        int[] arr = {1,2};
        for (int i = 0; i < 3; i++) {
            System.out.println(arr[i]);
        }
        System.out.println("over");
    }
}

 先在int a和sout(a)打上断点演示这个功能

 点一下,发现直接到了下一个断点(不是直接跳过之间的代码,而是一步一步执行到下一个然后停下来)

然后越过错误代码,打上一个断点

 再点一下调试的恢复程序功能,会发现点了没有作用,这就是这个功能的一个用法:测试程序能否到达这一步

  • 20
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值