星白贈書之讀書筆記(1)

書瓖果發表於2016-03-07

是這樣的:星白開展了一項活動,鼓勵大家看書。由於我很愛書,所以我就愉快地申請了,星白也愉快地給了我一個名額,故事就這樣開始了。

當我拿到書翻開目錄的一瞬間,我才意識到:這是個悲傷的故事。這本書(《Java效能優化權威指南》)對我這個java小白來說要求太高啦(然而這並不影響我對這本書的喜愛),這本書站在一個高度很高的角度,分析對java程式的效能優化。我連java都還不會用,我該如何去理解優化,這是不現實的。
大師教誨勿在浮沙築高臺,我得先打好基礎,之後我才能談如何去優化。於是我靈機一動:既然星白的出發點是鼓勵我學習,所以這和看哪本書又有什麼關係呢,我手上有《Java核心技術 卷I》、《Java核心技術 卷II》、《Java程式設計思想》、《Java程式設計師修煉之道》、《Effective Java》,所以我想以後我就用這些書來學習Java吧,並寫讀書報告(這是我此時想到的方法)。

此前由於贈書太難並沒有繼續讀下去的慾望,由於一直在學習C++,所以Java有所怠慢,這倆天補了下Java,感覺Java和C++許多地方還是很相似的,對比學習,何樂而不為呢。
之前我粗略地看了一遍《Headfirst Java》,許多地方是迷糊的。這倆天補了下java核心技術,首先我弄清楚java的一些基礎知識

  1. 資料型別:8種基本資料型別(primative type):4種整形、2種浮點型別、1中字元型別、1種boolean型別(C++中為bool型別)。
  2. 無符號型別:Java中沒有任何無符號型別(unsigned)
  3. 常量定義:對於常量的宣告Java使用的是final關鍵字,然而C++中使用的是const
  4. 字串:這一直都是很重要的一個知識點,C++中通過宣告字元陣列表示字串或者char* 型別的指標表示字串,以及標準庫中整合了string型別。在Java類庫中提供了預定義String類。
  5. 格式化輸出:在Java SE 5.0中沿用了C語言庫函式的printf(),可以像C語言那樣進行格式化輸出
  6. case標籤:從Java7開始,控制流程語句中的case標籤支援字串字面量。
  7. for each迴圈:可以方便的依次處理陣列中的每個元素
  8. 陣列拷貝:在Java中允許將一個陣列變數拷貝給另一個陣列變數,此時,倆個變數引用的是同一個地址。在C++對陣列的拷貝必須通過迴圈來。
  9. 運算子過載:C++的強大利器,Java不支援。
  10. 例項域:無論是在Java還是在C++中都強烈建議標記為private。(封裝)
  11. 構造器:Java物件都是在堆中構造的,構造器總是伴隨著new操作符一起使用。
  12. this:很重要的一個隱士引數,無論C++還是Java都如此,用法相似。然而在Java中this還有一個特殊的用途:在建構函式中呼叫另一個建構函式。
  13. inline方法:在Java中所有的方法都必須在類的內部定義,但這並不表示它們是行內函數,取決於Java虛擬機器:簡潔、經常被呼叫、沒有過載以及可優化的方法。
    在C++中類的方法既可以在類裡面定義(自動成為行內函數),又可以在類外面定義(多個操作符::),在外面定義方法時推薦都加上inline,然而這並不表示它就是行內函數,這取決於C++編譯器,這一點和Java類似。
  14. 注意不要編寫返回引用可變物件的訪問器方法。
  15. 傳參:Java中總是採用pass by value呼叫,C++中有三種傳參的方法:pass by value、pass by reference and pass by pointer。C++中建議最好pass by reference,效率高!

今晚的讀書筆記就到這啦,為了完成星白的任務,我也是夠拼的,都這個點了,誰讓我是個重信用的人呢→_→。

相關文章