面試題 空指標異常的原因

2021-10-25 02:12:10 字數 711 閱讀 1014

1:nullpointerexception由runtimeexception派生出來,是乙個執行級別的異常。意思是說可能會在執行的時候才會被丟擲,而且需要看這樣的執行級別異常是否會導致你的業務邏輯中斷。

2:空指標異常發生在物件為空,但是引用這個物件的方法。例如: string s = null; //物件s為空(null) int length = s.length();//發生空指標異常  

3:乙個變數是null,及只有其名,沒有實值內容,也沒分配記憶體,當你要去取他的長度,對他進行操作就會出現nullpointexception,所以生命乙個變數時最好給它分配好記憶體空間,給予賦值。  

4:比如變數為空,而你沒有去判斷,就直接使用,就會出現nullpointexception。寫程式時嚴謹些,盡量避免了,例如在拿該變數與乙個值比較時,要麼先做好該異常的處理如: if (str == null) 當然也可以將這個值寫在前面進行比較的,例如,判斷乙個string的例項s是否等於「a」,不要寫成s.equals("a"),這樣寫容易丟擲nullpointerexception,而寫成"a".equals(s)就可以避免這個問題。不過對變數先進行判空後再進行操作比較好。

5:盡量避免返回null,方法的返回值不要定義成為一般的型別,而是用陣列。這樣如果想要返回null的時候,就返回乙個沒有元素的陣列。就能避免許多不必要的nullpointerexception,使用nullobject返回代替返回null確是一種不錯的選擇。  

空指標異常的原因分析

不懂為什麼會引發空指標異常 description author version 1.0 class base public void test 號test方法 public class subextends base public static void main string args 系統試圖...

面試題 指標

一 指標 1 利用指標實現兩數交換 include using namespace std void swap1 int p,int q void swap2 int p,int q void swap3 int p,int q void swap4 int p,int q void swap5 i...

JAVA異常 面試題

1.throw 和 throws 的區別?2.final finally finalize 有什麼區別?3.try catch finally 中哪個部分可以省略?try catch finally 其中 catch 和 finally 都可以被省略,但是不能同時省略,也就是說有 try 的時候,必...