回覆列表
  • 1 # 幣特賺哥

    樓主說的讓程式設計師早點發現bug只是這個理念設計的一種解決方法,但不是最終的目的。

    個人覺得這樣設計的原因有幾個:

    1.減少無用的程式碼量。有了空指標,後面的程式碼都行不通了,增加了很多沒用的程式碼量。而且這樣在底層邏輯是不通的。

    2.空指標null是找不到執行的變數的地址的。java的類有點像c語言的動態變數。變數名佔用四個位元組,這四個位元組儲存著實際引用的頭地址。變數名只是宣告引用的地址是什麼型別的變數,因為型別不一樣,位元組長度也不一樣。不管是取值還是呼叫方法都是從變數名引用的地址呼叫。如果現在你變數名裡沒有引用,那你去執行哪塊記憶體的方法呢?

    3.不從程式碼角度講,邏輯上來講 。比如 ,你用null來做事情,往下走你的邏輯,很長一段的邏輯 有什麼意義麼? 沒有任何意義,從開始我就知道 ,你的所有的邏輯最後返回的就是null 那你寫那些幹嘛?

    或者換個角度來講 ,null+邏輯程式碼=null 。所以你的邏輯程式碼從某些方面來講也是null。

  • 2 # 深圳高大膽

    bug 一種是語法錯誤,一般編譯工具都能發現,還有一種就是業務bug,程式沒有按照預想的結果執行,這就很複雜了!不是幾句話能說明白的!

  • 3 # 裸奔的攻城獅

    空指標是java丟擲異常的一種方式,目的是透過這種方式讓app的錯誤盡小的留在app內,而不影響系統的執行

  • 中秋節和大豐收的關聯?
  • 好朋友買新房想送他臺電視機,哪個牌子看上去又漂亮又便宜?