使用 Java 也有一段時間了,之前一直不知道有 java.lang.ref 這包 package 的存在,直到最近在研究 Java Garbage Collection 的時候,才剛好知道原來 Java 的引用還有細分成四個,分別由強到弱為強引用、軟引用、弱引用和虛引用
在大學時 Algorithm, OS, 和 Data Structure 等課程都是使用 C 或 C++ 來當作課程教材的語言。而 C 與 C++ 語言可以擁有很大的掌控權力在 Memory 上,但是一處理不好就容易造成 Memory Leak。讓我印象最深刻的是 Operating System 課程,使用 OS161] 來當作做作業的練習, 而最後一個作業就是實作 Memory Management。大家那時候最害怕遇到的錯誤訊息就是“I can't handle this... I think I'll just die now...“,然後就要開始艱辛的 Debug 路程
最近我們部門在開發新的微服務都是使用 Java,但許多同事都是寫習慣 PHP 且之前沒有使用過 Java 。由於像 PHP 這種 Script Language 在處理 Undefined Variable 時,只是提示Warning,導致有的同事沒有良好的檢查 null 的習慣。有的同事抱怨 Null Pointer Exception 花了許多的時間在尋找,所以我決定在這次的新專案中,使用 Optional 來減少 Null Pointer Exception。