空指標異常的問題

2021-10-09 00:27:29 字數 993 閱讀 6785

空指標異常

這個異常屬於 runtimeexception 的子類,所以編譯的時候感覺沒啥問題,一執行崩潰了。為啥會出現這個異常,下面是我的個人理解。

原因:當乙個物件不存在(即物件==null)時,呼叫方法或者變數會出現空指標異常。

具體原因是,當物件為null時,堆記憶體存放物件屬性為空,而使用方法時

棧記憶體位址指向堆記憶體時發現啥都沒有(位址就是個空的),則會發生空指標異常。

左邊是棧記憶體,右上是堆記憶體,右下是方法區

空指標異常雷區

①使用equals方法時。

string str = null;

if(str.

equals

("test"))

str為null,呼叫equals方法時就發生了空指標異常。

②乙個陣列為null,試圖用屬性length獲得其長度時。

經常性的我們使用陣列來儲存物件,我們定義陣列時還不確定他的長度,就只寫了個

*陣列型別   [

] 陣列名;

*

如果還沒有賦值的時候,要用乙個變數去接受length的值,就會發生空指標異常。

③如果乙個陣列為null,試圖訪問或修改其中某個元素時。

這個和上面一樣,堆記憶體裡啥也沒有,執行時就崩潰了。

依然是**:

總而言之,在呼叫方法,或是訪問修改屬性時一定要注意該物件是否非空,如果為空,那麼就會出現異常。

關於空指標異常問題

一直都覺得空指標異常很好改,但是今天竟然調了一上午,鬱悶吶,因此開始總結教訓 首先svo是前端所傳的物件,判斷是否為空,如果為空則進行例項化 if svo null string project num svo.getprojectnum if project num.equals root nod...

空指標異常記錄

空指標異常是指 當應用程式試圖在需要物件的地方使用 null 時,丟擲該異常。也就是你沒有建立這個物件,你卻呼叫他,或者呼叫他的方法,或者訪問 修改他的屬性,這時會丟擲乙個空指標異常。我這兩天遇到的問題是,我傳入乙個為null的屬性,或者沒有傳入必要屬性,就會在return的地方報乙個空指標異常。注...

Android context空指標異常

fragment中的 context 是null public class placeholderfragment extends fragment 這樣定義的context是null。當然咯,我實際 不是這樣寫的,可是這個意思。假設是在activity中就不會是空。在fragment中就是null...