在我们的java开发过程中,NullPointerException一直是一个头疼的问题,因为你永远不知道null出现在哪。如下段代码。
Integer number=user.getUserDetail().getUserIntegral().getIntegral().getIntegralDetail().getNumber();
我们用上述方法想拿到number,可能会出现NullPointerException异常,通
常我们会使用下边的代码判断拿值:
Integer number;
最近开发平台的一个需求,在写代码时有遇到这样的场景:if A!=null,则获取A.getA,如果A.getA!=null,则继续获取A.getA.getB ,差不多有5层左右,最早的写法是按照上述一直去做if判断,如果不为null,继续做判断,直到获取想要的值
缺点:可读性还可以,但写的实在不优雅,且前端同学吐槽接口返回数据超级慢(当然不一定是这个原因)
哈希表在JDK7和JDK8中的实现方式有所不同,主要体现在以下几个方面:
1. JDK7中的哈希表采用数组+链表的方式实现,而JDK8中则采用数组+链表/红黑树的方式实现,这是因为JDK8在哈希表中增加了红黑树的支持,可以更好地处理哈希冲突,提高了查询效率。
2. JDK8中的哈希表在插入元素时,会先判断当前桶中链表的长度是否超过了阈值,如果超过了,则将链表转换为红黑树,这样可以更好地处理哈希冲突,提高了查询效率。
3. JDK8中的哈希表在扩容时,会采用一种新的方式,即当桶中元素个数达到一定阈值时,会先进行一次扩容,然后再将元素重新分配到新的桶中,这样可以更好地避免哈希冲突,提高了查询效率。
总之,JDK8中的哈希表相对于JDK7中的哈希表,在性能和扩展性方面都有所提高。