語言技術:Java Essence

你以為問題在這,其實問題不在這。你以為這很難,其實它不難!許多的問題,根源自你不了解 Java 的本質,許多的事,其實從安裝 JDK 開始就要知道。你急著完成 Hello! World!,因而忘了 Java 的本質。你急著飛翔,卻忘了如何起步!

不是裝好就沒事
    若我是面試官,其中有道題目一定是給台沒裝 JDK 的電腦,請你寫個 Hello World 來執行看看!小心別出局了。。XD
  • 重新認識 JDK
反正你應該寫過 Hello World 了,這次就別急著寫 Hello World 吧!
  • Hello World?
反思 "HelloWorld" 中提到:「小心,就因為它是這麼的簡單,您要小心控制...」

在管理與偷懶之間
    package 的出發點是分門別類地管理類別檔案,但管理又想要偷懶,才會有 import 的存在。
  • 散落一地的類別檔案
如果你會用 Windows 檔案總管,為什麼你會不了解 package 呢?
  • 不只管理類別檔案
package 還跟原始碼、類別檔甚至存取權限扯上關係。


眼見不為憑
    程式碼寫好了不代表一切,真正運行的程式碼,有些跟你想的不一樣。。XD
  • 不偷工反加料
不要擔心偷工減料這種事情,你要想說是不是被體貼地多作了些事情。。Orz
  • 編譯器請你吃糖
少寫些程式碼,多嘗點甜頭,但別忘了沒糖吃前是怎麼運作的。。。XD


記憶中的那個東西
    Java不用處理記憶體位址,因此隱藏了某些行為,創造了某些名詞,因此造成了某些模糊。
  • 要怎麼參考呢
老實說,變數就是變數,基本型態與參考型態存放的東西都是一樣的。
  • 緊來倒垃圾
垃圾海海,有些代誌擱噯你了解。


一切都是為了彈性
    類別、介面用的好,不用程式改到老。。。XD
  • 類別與介面
定義類別是撰寫Java程式的起點,很多人卻錯在這個起點上。
  • 犯錯並不可恥
程式寫到出錯是不被老闆允許的,看在你有創意的份上,再試一次吧!...XD
  • 放諸四海皆準
了解千面人一致的行為,就無需在意它不同的面貌。
泛型?列舉?
  • 兩邊長角的東西
因為空泛,所以常被忽略。。XD
  • 列出想作的事
想作的事,具體一點總是比較好!


千頭萬緒
    人多好辦事,但要小心手雜。。。XD


你是怎麼跑進來的
    你也許不用了解反射(Reflection)機制的全部,但了解類別載入的方式卻是必要的。。。XD
  • Class 類別
一個 .class 在 JVM 中都會有個 Class 實例與之對應。
  • 類別載入器
搞清楚類別載入器如何載入類別,ClassNotFoundException或NoClassDefFoundError時就不會驚慌失措。。XD


那隻小老鼠
        J2SE 5.0 開始支援 Annotation,目的在對程式碼作出說明以利分析工具使用,現已獲得廣泛應用。
  • Annotation
先來看看 Annotation 的基本使用與定義方式。
  • 傾聽器 Annotation 實例
結合反射機制,Annotation 可以提供許多的資訊,減少設定負擔。

Lambda(以下 可在 Google Play 取得電子書版本
    JDK8 的 Lambda?那不就是匿名內部類別的語法蜜糖嗎?你這麼想就錯了 … XD
  • 認識 Lambda/Closure
其他的語言中都有 Lambda,從這些語言中 Lambda 的運用先瞭解起 …
  • Java 開發者的函數式程式設計
函數式設計有許多觀念,即使是命令式設計也是適用 …

參考資料