java数组踩过的坑

it2023-03-25  94

java数组踩过的坑

目录

导读数组的一些基本坑java数组的异常

导读

通过阅读本文,可以了解如下的一些信息:

了解在运用数组的时候,可能会犯的一些基本的错误了解数组的常见异常,并且知道如何捕获这些异常

数组的一些基本坑

java数组中只能保存相同类型的数据

实例

import java.util.Arrays; public class Demo{ public static void main(String[] args){ int[] arrayName={1,2,"4",5}; System.out.println(Arrays.toString(arrayName)); } }

运行结果

Demo.java:10: 错误: 不兼容的类型: String无法转换为int int[] arrayName={1,2,"4",5}; ^ 1 个错误

当出现不同类型的数据在数组中的时候会出现编译错误。

在数组声明中包含数组长度永远是不合法的

实例

public class Demo{ public static void main(String[] args){ int[5] arrayName; } }

运行结果

Demo.java:10: 错误: 需要']' int[5] arrayName; ^ Demo.java:10: 错误: 不是语句 int[5] arrayName; ^ Demo.java:10: 错误: 不是语句 int[5] arrayName; ^ 3 个错误

当在声明的时候定义数组长度,也会出现编译错误。因为,声明的时候并没有实例化任何对象,只有在实例化数组对象时,JVM才分配空间,这时才与长度有关。

数组构造的时候必须指定长度

假如没有指定数组的长度会出现编译错误如下

实例

public class Demo{ public static void main(String[] args){ int[] arrayName=new int[]; } }

编译结果

Demo.java:10: 错误: 缺少数组维 int[] arrayName=new int[]; ^ 1 个错误

数组一旦定义,就只能通过下标添加数据

实例

import java.util.Arrays; public class Demo{ public static void main(String[] args){ int[] arrayName=new int[4]; arrayName[0]=1; arrayName[1]=2; arrayName[2]=3; arrayName[3]=4; System.out.println(Arrays.toString(arrayName)); } }

运行结果

[1, 2, 3, 4]

假如通过赋值添加会出现编译错误

实例

public class Demo{ public static void main(String[] args){ int[] arrayName=new int[4]; arrayName={1,2,3,4}; } }

编译结果

Demo.java:11: 错误: 非法的表达式开始 arrayName={1,2,3,4}; ^ Demo.java:11: 错误: 不是语句 arrayName={1,2,3,4}; ^ Demo.java:11: 错误: 需要';' arrayName={1,2,3,4}; ^ 3 个错

数组一旦定义,长度不可修改

实例

public class Demo{ public static void main(String[] args){ int[] arrayName=new int[4]; arrayName.length=2; } }

编译结果

Demo.java:11: 错误: 无法为最终变量length分配值 arrayName.length=2; ^ 1 个错误

java数组的异常

主要有两种异常:

超出数组的索引异常(ArrayIndexOutOfBoundsException)空指针异常(NullPointerException)

超出数组的索引异常 实例

public class Demo{ public static void main(String[] args){ int[] arrayName=new int[4]; try{ System.out.println(arrayName[4]); }catch(ArrayIndexOutOfBoundsException e){ System.out.println("扔出异常:"+e); } } }

运行结果

扔出异常:java.lang.ArrayIndexOutOfBoundsException: Index 4 out of bounds for length 4

空指针异常 实例

public class Demo{ public static void main(String[] args){ int[] arrayName=new int[4]; try{ arrayName=null; System.out.println(arrayName.length); }catch(NullPointerException e){ System.out.println("扔出异常:"+e); } } }

运行结果

扔出异常:java.lang.NullPointerException: Cannot read the array length because "<local1>" is null

这里异常的捕获主要是通过try…catch来捕获的,这两种异常是(ArrayIndexOutOfBoundsException和NullPointerException)对其进行捕获就知道是否有异常了。

最新回复(0)