1.NegativeArraySizeException异常类的继承关系
java.lang.NegativeArraySizeException
2.NegativeArraySizeException(数组负长度异常)
package NegativeArraySizeException; //该Main方法写在NegativeArraySizeException包下
import java.util.Arrays;
public class Main {
public static void main(String[] args) {
int num1 = 666;
int num2 = -666;
//创建数组传递的参数为非负数,可以正常运行 //创建一个存储String类型字符串的数组,数组的长度为666;
String[] stringArray1 = new String[num1]; //数组中存储的全部是null值
//创建数组传递的参数为负数,不可以正常运行 //创建一个存储String类型字符串的数组,数组的长度为-666;
String[] stringArray2 = new String[num2]; //Exception in thread "main" java.lang.NegativeArraySizeException
//at NegativeArraySizeException.Main.main(Main.java:13)
}
}
产生异常的原因是:
上述Java原码中分别创建两个数组一个数组长度是num1可创建成功,另一个数组长度因为是-666,所以不会创建且会抛出异常NegativeArraySizeException。
得出结论:
静态创建数组时,数组长度不能为负数。如果创建时给数组长度为负数的话会抛出运行时异常NegativeArraySizeException,该异常继承自RuntimeException
有的小伙伴这时候可能会想那数组长度可以为0?
当然时可以的啦,看代码!
import java.util.Arrays;
public class Main {
public static void main(String[] args) {
//下述代码不会报错,运行时也不会抛出异常
String[] stringArray3 = new String[0];
//但是创一个长度为0的数组毫无意义,数组长度为0,数组长度又不可变,那就没有办法用了,而且还占用着内存空间。
}
}
由上可知:
创建一个长度为0的数组当然当然当然是可以的!!!但是呢,创一个长度为0的数组明显是毫无意义,数组长度为0,然后数组长度又是不可变的,那就没有办法用了,而且它还占用着内存空间。如果还有循环的话,那将会占用着大量的空间,造成资源浪费,所以宝子们就别创建长度为0的数组啦~~~
总结:
1.创建数组时长度不能为负,否则会抛出NegativeArraySizeException(运行时异常)
2.NegativeArraySizeException(运行时异常)可以处理也可以不处理。
3.可以创建长度为0的数组,但是没有意义。
迷魂药点赞~~~