大家好,我是一個學Java不到兩年的菜鳥工程師。為甚麼學了一年多我還是要堅稱菜鳥呢?這是因為Java的世界實在是太大了。我想即使花了四五年,也依然會對Java的許多功能感到十分陌生吧。
之所以會參與這次的鐵人賽,主要也是被朋友糾團,因為最低是三人組團但是剛好缺一人,於是我就補了進去。那話又說回來了,既然都參與了,我也覺得這是個好機會,可以整理自己這一年多來學習Java、Spring的種種知識,大到軟體設計的概念,小到怎麼使用一個API,都是在我這次鐵人賽會談到的範圍,這30天內不只會提到SpringBoot、也會提到Java的一些基本概念,但不是從頭學。通常是一些觀念的補充,幫助你在基本的Coding外,對自己使用的工具有更多的一層認識。
如果你不屬於以上四類人,那建議各位朋友可以上一頁離開了,去做些真正讓你開心的事吧。人生寶貴,何必與自己的髮線過不去呢?(笑
還沒走?好,那開始吧。
Java作為一名老前輩,目前已經有25年的歷史,也誕生出許多應用程式。Java的熱門程度,你可以參考這張圖。
https://www.statista.com/statistics/793628/worldwide-developer-survey-most-used-languages/
在2024年,最常被開發者使用的程式語言排行中,撇除非後端的資料,Java被使用的比率中僅小於Python,而Python近年來的崛起主要與AI、機器學習有關,由此可見,Java作為一個古老的語言依然保持著強大的競爭力。
它的主要優點如下:
...
HashMap<String,Object> map = merchantService.getWeeklyStatistic();
String merchantFeeInWeek = ((Integer) map.get("fee")).toString();
前面的map沒有指定value的型別。本來這段程式碼雖然不好看,但因為種種原因沒有人主動去改它,直到有一天金額高到超出預期時,這段就爆出錯誤了,原因是因為懶惰交給自動型別轉換所造成的問題,double無法使用Integer的強轉型導致。自動處理麻煩的型別本身是件好事,但我的看法是,如果一開始是可以被明確定義的,那就不該讓它模糊處理。即使現在本人我正在寫Groovy,我也依然盡可能的把類別定義清楚,也許比較麻煩,但我認為這是必要的。
以上,是我小小工程師對Java這門語言的一些小感想,若有不同的意見也歡迎在下方討論,那麼我們明天再會吧。