Java高階篇-0-為什麼要掌握Java高階篇知識
好長時間了,就想要花時間系統去學習下Java的高階篇知識,這部分是我個人目前比較欠缺的,而且是急缺的知識。我認為的Java高階篇內容是這樣劃分的:對Java這個程式語言有基本瞭解,基本掌握了基礎語法,能夠利用基礎部分知識去寫一些小專案,例如,我們的webUI自動化測試包括簡單的框架設計。而Java的高階部分,主要從基礎語法到Java web程式設計中間的這個斷層,例如,Java的幾個核心常用的類的使用,集合類,JVM,多執行緒等等。
為什麼要學習Java程式設計高階篇的知識?我個人認為,主要有以下原因。
1. 面試需要
自動化測試,測試開發,高階測試工程師這些職位都需要程式語言技能。特別是國內一線網際網路大公司,例如BAT, 京東,小米,滴滴出行,美團點評,新浪,搜狐,再規模小一點的網際網路公司,愛奇藝,摩拜單車,OFO單車,今日頭條,WIFI萬能鑰匙。上面的一些公司,一般以上有參加過他們的測試開發的面試,結果很打擊,有幾個能勉強面試通過,剩下不通過的基本上都是由於程式碼能力不夠。好多次,你對面的面試官,都是從BAT跳槽出來的,他們共同點都是看重程式碼能力,然後才考慮你其他能力。有時候,心裡會恨不得罵他們,我是來做測試,為什麼問題全部是開發的知識。沒辦法,測試的發展趨勢,就是要用程式碼去測試開發的程式碼。
2.個人技術成長需要
每個人都應該有一個好的,清晰地職業發展規劃。應該知道自己現在所處階段,最缺的是什麼。程式碼程式設計能力,絕對是很多測試工程師欠缺最多的一方面。我也同意,有些人說的,不管是黑盒測試還是白盒測試,測試的思維最重要。程式碼能力和測試工具只不過是手段。這個觀點,在一定情況下是成立的,但是你根本就沒有程式碼能力,不要再為自己不會程式碼而且解釋什麼。我在QQ群裡說過,我從webui自動化入門然後到放棄。我也建議大家這麼去做,從一個工具或者一門語言去入門自動化測試,然後積累到一定時候,需要自己去思考,你當前的是不是達到了自動化測試的效果,有什麼缺點和優點,面臨什麼挑戰,工作中哪些問題不能實現自動化,不能實現的原因是什麼。最後,應該會得出一個結論,webui自動化只是前端,當然包括一部分介面測試,但是後端呢,還有端對端的自動化呢?說白了,我們程式碼能力太窄了,不足以支撐我們是實現很多場景自動化測試。如果你要設計一個自動化測試平臺,Java語言的高階程式設計部分+web程式設計,覺得是你需要學習的地方。
3.市場需要
很多公司,基本上Java開發工程師的比例是最多的。你學習好Java,面試機會和選擇機會更大。只是,目前Java自動化測試要比Python自動化測試要多很多。很多公司Python只是運用在自動化運維這方面,他們喜歡認為python是指令碼語言。還一個現實問題就是,你如果用Java做自動化測試,遇到什麼問題,直接問公司開發人員。他們都懂Java,能快速幫你解決問題。如果開發都是Java程式設計師,你測試採用Python,遇到問題,只能自己默默去解決。
高階部分知識點大綱
下面大概列舉出一些Java高階程式設計的知識點,我們很多是在webui自動化中沒有用到過的,學習好了這些,更好地幫我們實現工作中的一些自動化測試,而且你發現沒有,面試經常出現的多執行緒,集合類,演算法和高併發這些概念,基本都包括在本系列。一起來學習Java,一起討論和進步。
- Java基礎
- 斷言
- 正則表示式
- 集合類
- 泛型
- 高階I/O類
- 日誌API
- 網路
- 多執行緒
- 方法遠端呼叫
- JDBC資料庫連線