[英]Why finalize is not giving null pointer exception in the below code?
[英]null pointer exception in below code
在下面的代碼中,最后一個sop沒有被打印
String A=null;
if (A.contains("xyz")) {
System.out.println("loop1");
}
System.out.println(A);
A為null
,並且您正在調用if (A.contains("xyz"))
對null
引用的任何調用都會導致NullPointerException
,您沒有在try / catch中包裝上面的語句,因此異常會傳播到更高級別,而無需執行下面的代碼。
將其更改為:
String A="";
if (A.contains("xyz")) {
由於A為空,因此您嘗試在A上調用Contains。因此,NPE
由於上述A為null,因此代碼將拋出NullPointerException (NPE),它是RuntimeException。
如果對null執行任何調用(在您的情況下為contains方法調用),則將引發異常。
A.contains("xyz")
在String A=null;
您正在將字符串引用A設置為null。 至此,您已經有了一個參考,但是它還沒有指向一個對象。 然后,您可以嘗試通過調用.contains
方法來使用引用,就像它指向一個對象.contains
,這將導致NullPointerException,因為在引用所指向的位置沒有代碼可執行。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.