NullPointException
一、是初始化的问题,变量或者对象没有初始化,这是最基本的
二、这个是今天遇到的,在此记录一下:
我将类中的一部分代码提取出来新写了一个成员方法,但是在这个成员方法中调用其他类的成员方法时出现了NullPointerException异常,Debug查了下传值是没有问题的,都已经初始化!多试了好几次也是一样,传值没有问题那么就是调用方法的问题了!
解决办法:使用关键字“this”指定,在本类中调用方法时,如果方法没有用static修饰,那么这个方法是成员方法,成员方法可以通过两种方式调用,一种是new对象,另一种则是使用“this”关键字.我这里之所以报了空指针异常,估计是因为成员方法的调用问题,没有指明,加上一个“this”就解决了。ConcurrentModificationException异常原因和解决方法
原因:使用Iterator遍历/for循环遍历,在遍历的过程中使用list的remove(Object)方法删除其中一个元素,下一次循环就会出现此异常!根本原因是调用list.remove()方法导致modCount和expectedModCount的值不一致。(参考源码可得知)
解决办法:
1>单线程模式下:可使用Iterator自带的remove()方法移除元素。
2>多线程模式下:由于是多线程,remove()方法移除的有可能只是其中一个线程中的元素,所以可使用如下方法解决:
a)在使用iterator迭代的时候使用synchronized或者Lock进行同步;
b)使用并发容器CopyOnWriteArrayList代替ArrayList和Vector。(这方法我也不会0.0.)