一、空指针异常
1.所谓的指针,就是java中的对象的引用。比如String s;这个s就是指针。
2.所谓的空指针,就是指针的内容为空,比如上面的s,如果令它指向null,就是空指针。
3.所谓的空指针异常,就是一个指针是空指针,你还要去操作它,既然它指向的是空对象,它就不能使用这个对象的方法。比如上面的s假如为null,你还要用s的方法,比如s.equals( String x);那么就会产生空指针异常。
注意事项
可以用debug模式排查eg:1字符串变量未初始化;2接口类型的对象没有用具体的类初始化3当一个对象的值为空时,你没有判断为空的情况。Java中的8种基本数据类型,变量的值可以有其默认值,加入没有对其正常赋值,java虚拟机是不能 正确编译通过的,因此使用基本的Java数据类型一般不会是不会引起空指针异常的。实际开发中,大多数的空指针异常主要与对象的操作相关。
二、数组越界异常
Java中数组初始化和OC其实是一样的,分为动态初始化和静态初始化,
动态初始化:指定长度,由系统给出初始化值
静态初始化:给出初始化值,由系统给出长度
在我们使用数组时最容易出现的就是数组越界问题,好了,下面来演示一下
动态初始化:指定长度,由系统给出初始化值
静态初始化:给出初始化值,由系统给出长度
在我们使用数组时最容易出现的就是数组越界问题,好了,下面来演示一下
int [][] array = {{1,2,3},{1,4}};
System.out.println(array[1][2]);
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 2
at demo.Array.main(Array.java:31)
很准确的定位到错误行
注:下标从0开始,最大为 数组名.length 一定要注意哦!!!!!!!!!!