空指针异常 java.leng.NullPointerException
常见的几种原因是:
1.对象未初始化而直接引用对象值或者方法。
2.对象引用已经不存在或者被JDBC关闭。
一个经典的例子是JDBC connection已经关闭,ResultSet对象仍然被使用中,这个时候NullPointerException就被抛出。
3.违反某些Java容器的限制,读写Null 值。
4.例如 java.util.HashTable,它不接受Null 作为Key或者Value,如果试图用Null作为Key去读取HashTable将会得到NullPointerException。
Java NullPointerException做为Java Runtime 异常,在开发中减少这样错误的发生就是对代码完成Junit的单元测试,对于一些重要的代码要提高code review的次数从而提高代码质量。
一般报java.lang.NullPointerException的原因有以下几种:
·字符串变量未初始化;
·接口类型的对象没有用具体的类初始化,比如:
List lt; 会报错
List lt = new ArrayList(); 则不会报错了
·当一个对象的值为空时,你没有判断为空的情况。
你可以试着把下面的代码前加一行代码:
if(rb!=null);
…
String类型的对象可以做如下判断
if(rb!=null&&!"".equals(rb))
……
当然还可以多做一个判断,是否不为空字符串
if(rb!=null&&!"".equals(rb.trim()))
java语言里面都是通过一个个类协同工作来实现各种功能的。
例如你定义好了一个类,直接通过类名定义一个对象
Class class;
此时,这个class被声明了类型, 默认 class = null; 这样在调用class.xxxx()的时候系统只能给你个空指针异常。
想不要空指针那么就给class做个赋值操作就好了,例如 class = new Class();
在leetcode刷题时有时会遇到这个异常,后来发现了错误所在:
- 叶子相似的树
请考虑一颗二叉树上所有的叶子,这些叶子的值按从左到右的顺序排列形成一个 叶值序列 。
给定一颗叶值序列为 (6, 7, 4, 9, 8) 的树。
如果有两颗二叉树的叶值序列是相同,那么我们就认为它们是 叶相似 的。
如果给定的两个头结点分别为 root1 和 root2 的树是叶相似的,则返回 true;否则返回 false 。
使用DFS,自己的答案(4ms)
为数不多的几次和