学习过程中调试遇到的异常
解决曾经在写冒泡算法时遇到的数组越界异常
java.lang.ArrayIndexOutOfBoundsException
import java.util.Arrays;
public class BubbleSort {
public static void main(String[] args) {
int[] num = {
3, 23, 84, 12 ,24 ,52, 15, 90, 27};
bubbleSort(num);
System.out.println(Arrays.toString(num));
}
public static void bubbleSort(int[] nums){
int temp;
for (int i = 0;i<nums.length-1;i++){
//外层循环;n个元素排序,则最多需要n-1次循环
boolean flag = true;//排序标记;true表示有序、false表示无序
for (int j = 0;j<nums.length-i;j++){
//内层循环:数列从前往后每两个数据依次比较、排序
if(nums[j]>nums[j+1]){
temp = nums[j];
nums[j] = nums[j+1];
nums[j+1] = temp;
flag = false;
}
}
if (flag) {
//判断数组是否有序,如有序则退出循环,排序完成
break;
}
}
}
}
运行后程序遇到异常:
异常描述:数组越界异常,由描述可得,异常出现在第17行
将断点设置在第十七行进行Debug调试:
可以看出,数组的长度为9,下标最大为8,当j=8时,j+1=9导致数组越界,因此需要将条件j<nums.length-i改为j<nums.length-1-i
修改后的代码运行结果:
心得总结:
学会了调试功能,在遇到异常时,可以现根据异常的关键信息判断代码所在行,然后根据百度等网上搜索异常相关情况,再利用Debug功能调试,一步一步查找异常的原因,修改代码。
配置文件装载拦截器拦截器代码:import com.alibaba.fastjson.JSONObject;import lombok.extern.slf4j.Slf4j;import org.apache.commons.lang3.StringUtils;import org.apache.ibatis.executor.Executor;import org.apache.ibatis.mapping.BoundSql;import org.apache.ibatis.map
零基础学习Puppet自动化配置管理系列文档MCollective只是一个框架,如果需要在上面发挥各种作用,那就需要各种插件的支持。官方提供了很多这方面的插件,除此之外,还有第三方的插件,比如shell插件等,下面会介绍各种插件的安装,以及插件之间如何组合进行使用。1、在mcollective client端和server端安装各种官网plugins首先去官网下载各个插件 http://yum.p...
1html代码 Title 用户名: 密 码: 性别:男 女 爱 好:游泳 骑车 爬山 购物 你喜欢的城市: 成都 北京
python自动化常用函数导入time模块import time导入ActionChains模块(鼠标)from selenium.webdriver.common.action_chains import ActionChains导入Keys模块(键盘)from selenium.webdriver.common.keys import Keys导入Select模块(下拉框)from selenium.webdriver.support.select import Select
1.任务描述某公司现有java程序开发部门、C#程序开发部门、asp.net程序测试部门、前端程序开发部门四个部门。编写一个程序实现新入职的员工的部门分配,要求根据用户输入的员工姓名和应聘语言确定员工应该分配到哪个部门。若公司没有与输入的语言匹配的部门,则进行相关提示。运行结果:代码如下:import java.util.Scanner;/** * 2022/1/28 */public class anli4 { public static void main(Str
在项目研发中,我们避免不了需求中会应用到夜间模式,这里对它做一些总结以及封装从API 23后,Android就有自带的api能够实现夜间模式与白天模式的切换。Support Library 23.2(应用于API14+)推出了适合Android Apps的DayNight主题。废话不多说,看效果:最后给大家把主要的部分拿出来,供大家参考,结尾有项目下载地址1. 导入依赖implementation 'androidx.appcompat:appcompat:1.0.2'2.修改...
1.ICA独立成分分析的详解2.ICA独立成分分析的Python实现2.1代码2.2运行结果(end)
解决办法:0x01:换源 然后执行sudo apt-get update 怎样换源可以参考Ubuntu 14.04更新为国内阿里源解决apt-get install无法执行的问题0x02:执行sudo apt-get upgrade...
刚学习python,非常好奇那些各种图是怎样绘制的,于是就到处搜索,很多帖子记录不全。但是,看到下面这篇帖子后,我惊呆了,非常全!附上链接,以示感谢。望道友们多多去该贴点赞。添加链接描述...
Cocos studio使用起来没有想象的好,还不如直接敲代码.UI布局后,添加事件就懵了。这里是个简单的测试,反正我一直在写测试。很无聊!
作者 |叙帝利链接 |www.cnblogs.com/nzbin/p/7073601.html前言这篇文章我已经酝酿了半年之久,或者说拖沓了这么久吧。想说的东西很多,...
嵌入式知识-ARM裸机-学习笔记(11):I2C总线通信一、I2C总线1. I2C总线简介I2C(Inter-Integrated Circuit)总线是由Philips公司开发的一种简单、双向二线制同步串行总线。它只需要两根线即可在连接于总线上的器件之间传送信息。主器件用于启动总线传送数据,并产生时钟以开放传送的器件,此时任何被寻址的器件均被认为是从器件。在总线上主和从、发和收的关系不是...