1. 程式人生 > >本週學習總結

本週學習總結

雖然給自己定的是每週都要寫周總結的,但是好像又有好久沒有動筆了。轉眼間已經到了十月底,2018年自己的兩個目標實現了沒有呢?回想自己在離心機的日子,讓我萬萬沒想到的是,現在來了機關樓居然還是感覺累,分析總結根本原因還是睡得晚,缺乏鍛鍊。儘管距離2019年越來越近但我還是不會放棄我的目標,初心不變,信仰不變。

引用變數和物件變數

最近在看HeadFirt Java,和之前看的HeadFirst JSP一樣,這一次HeadFirst一樣給我帶來了意外和驚喜。他對好多概念的講解讓人耳目一新。引用變數和物件變數,我們在給類的屬性賦值的時候,如果類對應的屬性是primitive資料型別,那麼變數儲存的就是該資料型別在棧中對應的數值。而如果屬性是引用資料型別,那麼引用變數儲存的不是物件在堆中的記憶體地址而是提供呼叫物件方法對應的記憶體值,也就是我們代表的是遙控器而不是“電視”(物件)。這裡容易混淆的就是“==”和“equal()”,第一個符號我們比的是引用變數所儲存的值,而equal()不是判斷引用所代表的個體是否是同一個(可以是不同的個體),而僅僅是比較具體的內容是否相等。

多型的最大意義

之前對多型的理解只是停留在概念上的,知道父類的引用指向子類的物件便是多型,但對於多型的意義從來沒有深入思考過。通過這次通讀HeadFirst Java,讓我對多型的意義有了更為深入的認識。用書中的話來說的話我們這裡定義的父類引用變數主要是用在方法引數,陣列型別,方法返回型別中的。很明顯由於多型的存在,你可要在這樣的方法中傳入更多子型別的引數,陣列中儲存更多型別的資料,方法返回中返回更多的型別。對於呼叫方來說我們選擇的餘地更大了,方法的複用性更強,程式碼更易於維護了,這樣的好處要遠大於非多型的定義。再就是子類繼承了父類的公共屬性和公共方法(構造方法除外),並且會預設呼叫super()方法,子類可以選擇性的覆寫父類的方法形成自己特有的邏輯。

String.format();

談到String.format()我主要說這麼幾個典型”%tA“,”%tB“,”%tc“,”%td“,”%tr“,"%t":

Date today=new Date();
String.format("%tA,%<tr,%<td",today);

以及這樣的例子:

System.out.println(String.format("%,6.1f",42.000));

靜態變數區域性變數和例項變數

談到這三個概念主要有以下幾個容易誤解的地方:1. 靜態變數屬於類不屬於物件。2. 例項變數有預設值,而區域性變數沒有預設值。3. 例項變數屬於物件的堆記憶體,方法屬於棧記憶體。關於第一點靜態變數屬於類不屬於物件,最為典型的例子就是構造方法中對靜態變數的“++”操作,新建一個物件不會影響靜態變數的當前狀態,這說明靜態變數不屬於物件它會在物件建立完畢之前在類載入的時候進行賦值。第二點最為典型的就是我們在方法中定義變數之後編譯器會告訴我們變數需要賦初值,而全域性的例項變數則不用。

總結:

這周自己的學習時間還是遠遠不夠,一方面確實是現場的事情比較多,另外一方面從個人角度來看的話主要是作息不規律,對自己的要求不夠嚴格。接下來要做的首先是要儘可能為自己爭取更多的學習時間,另外無論多苦多累在規定的學習時間,一定要咬牙熬下去,力爭完成每天,每週,每月的目標。2018年鐵血鑄信仰,我不會倒,相反我一定要徹底全面地站起來,因為我永遠都不是個安於現狀,醉生夢死的人渣。活著就要活出尊嚴,活著就要活的精彩。