JAVA中的数组越界和equals的问题总结
1、数组越界问题
数组下标越界,在很多初学者来看是出错了,其实准确来说是异常,就是一种特殊情况。
数组在声明的时候我们都会给定一个长度,那么我们在给这个数组赋值的时候,就最多能赋数组对应长度的值,如果超过这个长度,就会出现数组下标越界异常。如:
//赋给arr 数组 2个长度的空间
int [] arr = new int[2];
//数组的下标是从0 开始,最多可以给到arr[1] 赋值
arr[0]=1;
arr[1]=2;
arr[2]=3;
for(int i=0;i<>length;i++){
System.out.println(arr[i]);
}
如果给数组赋的值多了的话,编译是没问题的,但是运行的时候就会出现数组下标越界异常,如:Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 2
当我们看到 ArrayIndexOutOfBoundsException 这个的时候,就检查自己程序中数组的地方就可以了。
2、equals
作为java的初学者开始的时候都会更多时候遇到一个异常:NullPointerException【空指针异常】,出现这个异常的情况非常多。这里说一下我今天遇到的一个。
当我们使用基本数据类型进行比较的时候,直接使用双等号即可,但是当我们对字符串内容进行比较的时候,就需要使用equals了,一下是代码案例:
String str=null;
if(str.equals("男")){
System.out.println("这是一个男生");
}
String str=null;
if("男".equals(str)){
System.out.println("这是一个男生");
}
上面有两段代码,第一段就容易出现空指针异常的情况,因为我们是将str为null的内容放在前面,用null去比较其他内容,都是null。而第二段代码呢,就会正常的执行。在我们操作的过程中,将确定有值的变量放在前面,不一定有值的内容作为equals()的参数,就一定程度上避免了空指针情况的出现