回頭望望來時路

勿忘初心,方得始終spa

做爲一個初學者,回頭望望模糊的清楚了一些。
先談談遇到的最多的異常,NullPointerException空指針異常。談空指針異常前,先談下JS中的的null和defined。指針

null與defined有什麼區別呢。null是沒有對象,好比你的js代碼以下alert(document.getElementById("aa")),若是不存在id爲aa的元素則會彈一個null。對象

defined則是表示有對象,可是對象沒有值。好比你的js代碼以下 var a; alert(a);,a是定義了的,但a沒有賦值,因此它會彈一個defined。內存

Java中的NullPointerException跟js有殊途同歸之處。首先NullPointerException明確一點,NullPointerException是針對於引用類型的,基本類型是不存在NullPointerException。這點你們可能都知道,可是爲何基本類型不存在空指針異常,而引用類型會存在呢?從字面上理解空指針異常,就是由於沒有指針而引起的異常。爲何會這樣呢。首先基本類型數據存在的位置是棧中,引用數據類型存在堆中。在棧中的數據會自動初始化,而堆則不會(至於爲何就不談了),因此引用類型若是沒有初始化,堆內存中就不會開闢它的儲存空間,因此堆內存中就沒有他的地址,因此就會報NullPointerException。因此會不會報空指針異常就看這個對象有沒有在堆內存中開闢存儲空間。這裏的NullPointerException異常就至關於js中的null,js中的「defined」在Java中又是什麼呢。Java中「defined」跟js同樣就是建立了對象可是沒有賦值,可是不會報異常。get

第二個心得,方法怎麼寫?io

首先你得明白你寫這個方法是爲了實現什麼功能,它須要用到哪些變量!這點很重要。其次,拋開方法體的內容,看他的參數列表(有無參數,什麼類型的參數,幾個參數)及返回值。返回值怎麼寫?從實際出發來判斷有無返回值。好比增長一個元素,它有沒有返回值呢,當初的我以爲他是沒有返回值的,public void add(Object o){}應該這樣寫。後來發現Java自帶的一些類它的增長元素的方法是有返回值的,返回值是布爾類型。那麼爲何要有返回布爾類型呢,細細想來發現是由於本身考慮不周,你若是傳進來的是一個空的對象,那麼我還須要執行增長的方法嗎,顯然不須要,全部應當有個返回值表示是否增長成功。參數列表怎麼寫?來看第一條「這個方法是爲了實現什麼功能,它須要用到哪些變量」。就是說它實現這個功能須要哪些變量。而這些變量就是參數列表。變量

第三個心得。學技術怎麼學。明白三點就能夠了。1.這技術有什麼特色2.這技術解決什麼問題3。何時用它(這很重要)數據類型

第四個心得,多敲這纔是精髓!引用

最後,做爲一個學技術的person,若是裝X裝不過對方是件很難受的事情啊。方法

相關文章
相關標籤/搜索