1. 空指針異常的概念
java是沒有指針的,所以java中空指針異常情況中的“指針”是指的是java的引用,空指針就是空引用。
java空指針異常就是引用本身為空,卻調用了方法,這個時候就會出現空指針異常情況。
比如:成員變量和方法是屬於對象的,在對象中才存在相對應的成員變量和方法,然后通過對象去調用這些成員變量和方法。對於空指針情況,它不指向任何對象,也就沒有所謂的成員變量和方法,這個時候用它去調用某些屬性和方法,就一定會出現空指針異常情況。
2. 空指針產生的常見情況
- 當對象為null時,調用了其成員方法或屬性。
- 在使用equals()比較兩個對象是否相等時,當雙方是一個常量和一個變量,把變量放在常量前且當變量為空的時候,運行時會報錯。
System.out.println(“abc”.equals(str5)); // 推薦:false
System.out.println(str5.equals(“abc”)); // 不推薦:報錯,空指針異常NullPointerException
- 對key、value不能為null的容器put為null的key、value值。
- 自己搞的一個集合,當集合為空時,對其遍歷會報空指針異常。PS:若使用mybatis做查詢返回集合時,當沒查到數據時,返回的集合不是空,而是一個size為0的集合。對其遍歷不會報空指針異常。
