数组的两个常见问题:
1 ,数组的空指针异常
数组必须进行初始化才能使用其中的元素.如果只是赋值一个null,没有进行创建. 那么就会发生 空指针异常NullPointerException 原因:忘了newe 解决:new一下 如下所示:public static void main(String[] args) { int[] array=null; System.out.println(array[0]); }
2,数组的越界异常
数组的索引编号从0开始,一直到数组的长度-1为止 如果访问数组时候,索引编号不存在,那么将会发生数组越界异常 原因:索引编号写错了 ArrayIndexOutOfBoundsException 解决:修改正确的索引编号如下所示:
public static void main(String[] args) { int[] array=null; array=new int[3]; System.out.println(array[1]); System.out.println(array[3]); }
数组的反转(倒序遍历数组)
小练习
原来数组:[1,3,5,6,8,] 反转后的数组[,8,6,5,3,1] 要求:不能使用新数组,就用原来的数组如下所示:
public class Domo01 { public static void main(String[] args) { int[] array2 = {1, 3, 5, 6, 8,}; //遍历原来的数组 for (int i = 0; i < array2.length; i++) { System.out.println(array2[i]); } System.out.println("=".repeat(25));//分割线 //开始反转 for (int i = 0, j = array2.length - 1; i < j; i++, j--) { int team = array2[i];//team充当空容器,帮助array[i],array[j]交换位置 array2[i] = array2[j]; array2[j] = team; } //再次遍历看结果 for (int i = 0; i < array2.length; i++) { System.out.println(array2[i]); } }结果:
数组作为 方法参数 的传递值
数组可以作为方法的参数。 当调用方法时,像小括号里传参,传递过去的其实是数组的地址值。接下来我们验证一下:
public class Domo01 { public static void main(String[] args) { //int[] array=null; //array=new int[3]; //System.out.println(array[1]); //System.out.println(array[3]); int[] array2 = {1, 3, 5, 6, 8,}; //遍历原来的数组 bainli(array2); System.out.println("=".repeat(25)); //开始反转 for (int i = 0, j = array2.length - 1; i < j; i++, j--) { int team = array2[i];//team充当空容器,帮助array[i],array[j]交换位置 array2[i] = array2[j]; array2[j] = team; } //再次遍历看结果 bainli(array2); System.out.println("bianli方法收到的参数:"+array2); } //将便利的for循环封装在方法里,就不用重复写了,直接调用即可 /* 方法三要素 返回值类型:不进行计算,不需要返回值,也没有结果,用void 方法名称:bianli 参数列表:设定数组,给我数组我才能便利打印其中的元素, */ public static void bainli(int[] arr) { for (int i = 0; i < arr.length; i++) { System.out.println(arr[i]); } }}运行结果:
数组中作为方法的返回值 的传递值
一个方法可以有多个参数,但是只能有一个返回值,不能有多个返回值。 如果一个方法中产生多个数据结果,都想进行返回,该怎么做呢? 这时候就可以使用一个数组作为返回值类型。 任何数据类型都可以作为方法的参数类型或返回值类型 数组作为方法的参数。传递过去的其实是数组的地址值。 数组作为方法的返回值。传递过去的也是数组的地址值。接下来我们尝试一下:
/** * @Auther: 桀桀桀 * @Date: 2022/6/25 16:17 * @Dwsoription: zhaoyanjie1 * @Version 1.0 **/ public class Domo02 { public static void main(String[] args) { int [] as= jisuan(13,24,14); System.out.println("sum:"+as[0]);//输出返回值 System.out.println("ave:" + as[1]); System.out.println("main方法接收到的返回值是:"+as); //[I@4f3f5b24 放回的是地址值 } public static int[] jisuan(int a, int b, int c) { int sum = a + b + c; int ave = (a + b + c) / 3; //两个结果都需要返回 //可以创建一个数组打包他们进行返回 int[] array = {sum, ave}; return array; } }结果如下:
相关推荐
数模笔记_多变量最优化计算之牛顿法
Date: 2_22 Name: Guo Yehao Theme: Calculation in Optimality with multiple variables Reference: 数学建模方法与分析(华章) 在上一节中,我们讨论多变量最优化计算中的随机搜索算法,它的精度并不是众多算法中最高的。在精度问题上,有的时候问题本身就带有明显的误差性,以至于我们不能将其忽略,比如上一节消防站部署的问题,我们在区域划分时就有了误差,因此我们并不需要对结果要求很高的精确度,所以用一些比较粗略的算法就可以.
数组入门常见问题和解决方法
1. 数组溢出:问题描述:访问数组超出数组定义的范围时发生溢出,从而造成运行错误;解决方法:检查数组的范围,对访问的数组元素进行检查,确定它们位于正确的数组索引范围内。 2. 缓冲溢出:问题描述:在操作系统和C语言数组中,超出数组大小范围的写入操作可能会引起缓冲溢出,造成恶意代码执行;解决方法:尽量避免使用大尺寸的字符数组,而应使用安全的字符串函数和实现安全控制的字符串缓冲区。 3. 无法赋值:问题描述:由于数组索引范围的错误,无法向数组的某个元素赋值;解决方法:检查并修正数组索引范围,确保可以正确赋值
YOLOv8/v9轻量化优化:剪枝30%+蒸馏提精,模型体积缩至4MB还能跑Jetson
剪枝:用敏感度分析找到“可牺牲的30%”,不碰核心特征;蒸馏:借大模型的“经验”补回精度,甚至反超原始小模型;量化:针对边缘设备特性优化量化策略,把体积和延迟压到最低。如果你的项目卡在边缘部署(速度慢/体积大),按“剪枝→蒸馏→量化”三步走,90%能在Jetson上跑通30FPS+的实时检测。需要轻量化模型文件(v8s/v9s剪枝蒸馏后权重)、剪枝工具和Jetson部署脚本的,评论区扣“轻量化”,直接发你可运行版本~
数组及常见问题
但是有两种情况下数组名取全部元素的地址:第一种为操作符sizeof,在计算空间的时候,取全部元素的地址。如果大括号中的字符个数小于字符数组的长度,则把大括号中的字符赋给数组中前面的元素,其余元素自动赋值为空字符(即‘\0’)。即:char str[6] = {'h','e','l','l','o', '\0'};第一种: char str[10] = {'h','e','l','l','o'};第二种:char str[5] = {'h','e','l','l','o'};相同,系统不会自动添加'\0'。
解决Java学习过程中遇到的问题
这个异常大家肯定都经常遇到,异常的解释是"程序遇上了空指针",简单地说就是调用了未经初始化的对象或者是不存在的对象,这个错误经常出现在创建图片,调用数组这些操作中,比如图片未经初始化,或者图片创建时的路径错误等等。对数组操作中出现空指针,很多情况下是一些刚开始学习编程的朋友常犯的错误,即把数组的初始化和数组元素的初始化混淆起来了。数组的初始化是对数组分配需要的空间,而初始化后的数组,其中的元素并没有实例化,依然是空的,所以还需要对每个元素都进行初始化(如果要调用的话)
关于Java导入excel表格出现下标越界异常的解决方法(个人心得记录)
最近在做java批量导入时经常出现这个异常,先上图 根据这个数组下标越界异常百度上搜索结果一大堆,但没有适合自己的解决办法,只能是自己慢慢摸索了,不过终于被我找到适合自己的解决办法了,上图 图上画圈的地方是找到excel中有数据的最大列数,但是如果建表格的时候不注意,在超出其他列的地方输入了数据,那么就会报上面的越界异常,解决办法就是上面的画圈部分改成自己要导入的列数就可以了 ,比
Java 学习(08)--数组常见问题
Java 学习(08)--数组常见问题 1.数组遍历(依次输出数组中的每一个元素) //数组遍历(依次输出数组中的每一个元素) public class shuzu1{ public static void main(String[] args){ int[] a = {1,2,3,4,5,6,7,8,9}; for(int i = 0;i < a.length;i++){ ...
[Java]学习笔记12:数组常见问题
1.数组索引越界异常 如果访问数组元素的时候,索引编号并不存在,那么将会发生数组索引越界异常 2.空指针异常
[javase学习笔记]-5.3 数组操作中常见问题
这节我们看一下在数组操作中经常出现的两个小现象. 我们直接看一段代码吧 class ArrayDemo2 //数组-常见的问题 { public static void main(String[] args) { int[] arr =new int[3]; //System.out.println(arr[3]);//编译的时候不报错(ArrayIndexOutOfBounds
MATLAB数组循环赋值教程
MATLAB数组循环赋值教程 去发现同类优质开源项目:https://gitcode.com/ 欢迎来到本教程,本资源文件专注于介绍MATLAB中的数组循环赋值方法,帮助您掌握如何在MATLAB中使用循环结构对数组进行高效的操作。 简介 本教程将深入讲解MATLAB中的数组操作,特别是如何利用循环语句(如for循环和while循环)对数组进行赋值和修改。通过本教程的学习,您将能够: 理解MATL...
【JAVA学习笔记】数组
数组作为编程基础,在以下领域仍发挥重要作用:算法竞赛中的高效数据存储图像处理中的像素矩阵操作科学计算的数值存储游戏开发的网格系统研究Java集合框架的底层数组实现探索NIO中的ByteBuffer学习Arrays类的源码实现尝试实现自定义动态数组类掌握数组的底层原理将帮助开发者:深入理解内存管理优化程序性能更好地使用集合框架编写更高效的算法。
Java一维数组的学习心得
在上述代码中,Counter类中的Increment方法使用了synchronized关键字进行修饰,以确保在多线程环境下对count变量的操作是原子性的。本文介绍了 Java 中多线程同步的实现方法,包括synchronized关键字、Lock接口和原子类,并结合示例代码进行了讲解。在使用多线程同步时,要注意避免死锁的发生,合理选择锁的粒度,以提高程序的性能和并发性。Java 提供了一些原子类,如AtomicInteger、AtomicLong等,它们提供了原子性的操作,可以避免多线程环境下的并发问题。
PHP - 数组函数 - 收集
本文总结了PHP数组的核心操作函数及应用技巧。主要内容包括:1)基础函数如array_values()、array_keys()等;2)多维数组处理技巧,强调引用参数(&)在修改外层数组时的必要性;3)实用函数如array_column()提取二维数组列,array_filter()过滤元素;4)排序方法如sort()、usort()等;5)特殊操作如array_push/pop栈操作、array_shift/unshift队列操作。文中特别指出array_pop/push需单独使用的原因待查,并提
Java开发入门之第一阶段(十一)——数组学习
数组数组的概念数组的定义格式动态初始化静态初始化访问数组元素进行获取访问数组元素进行赋值Java中的内存划分一个数组的内存图常见问题_数组索引越界异常常见问题_空指针异常获取数组长度数组的遍历求出数组中的最值数组元素反转 数组的概念 数组的概念:是一种容器,可以同时存放多个数据值 数组的特点: 1.数组是一种引用数据类型 2.数组当中的多个数据,类型必须统一 3.数组的长度在程序运行期间不可改变 数组的定义格式 数组的初始化:在内存当中创建一个数组,并且向其中赋予一些默认值。 两种常见的初始化方式: 1
JavaEE-Java基础-数组
Java基础第八部分-介绍了Java中一维数组以及二维数组的创建及遍历,还讲述了数组在内存中的体现
asp中如何向数组添加值
它可以在浏览器的地址栏中显示传输的值。.asp文件不可以直接用网页查看,在你自己的计算机上可以安装一个iis,具体的安装方法你可以在百度上搜索,但是必须要有windows安装盘才可以。这些数据,每一条与每一条之间,要设置好间隔符号,第一条的每一项之间也要设置好间隔符 后台,处理通过ajax获取到的数据,把获取到的数据,拆分成一条条的记录,得到一个数组,然后开始循环添加数据。
学习笔记day04 数组
1.数组 1.1 数组介绍 数组就是存储数据长度固定的容器,存储多个数据的数据类型要一致。 1.2 数组的定义格式 1.2.1 第一种格式 数据类型[] 数组名 示例: int[] arr; double[] arr; char[] arr; 1.2.2 第二种格式 数据类型 数组名[] 示例: int arr[]; double arr[]; char arr[]; 1.3 数组的动态初始化 1.3.1 什么是动态初始化 数组动态初始化就是只给定数组
Java 数组
数组是什么 数组的静态初始化 数组的访问 数组的几个注意事项 数组的动态初始化 元素默认值规则 数组遍历 数组排序 数组使用常见问题
JAVA基础——数组与二维数组
本文介绍了JAVA中数组与二维数组的基础知识。数组是用于存储同一类型数据的有序容器,具有元素类型统一、长度固定和通过索引访问的特性。数组的初始化方式包括静态初始化和动态初始化,静态初始化在定义时指定元素值,而动态初始化则指定数组长度并由系统自动填充默认值。数组的访问与遍历可以通过索引、length属性以及for循环或增强for循环实现。文章还通过学生成绩统计的案例展示了数组的实际应用。后,二维数组被定义为数组中的每个元素又是一个一维数组,适用于存储二维表格数据,其初始化方式同样包括静态和动态两种。
中国各省绿色税收相关数据(2007-2022年)-最新出炉.zip
中国各省绿色税收相关数据(2007-2022年)-最新出炉.zip






2384




被折叠的 条评论
为什么被折叠?



