熟練Java的程式設計師應該掌握的知識技能
知乎上看到一個問題《怎樣才是一個基本水平的java程式設計師》,下面是贊同最多的答主的回答,感覺可能對於基本水平有點偏高,但是也應該是個熟練掌握Java的程式設計師應該達到的要求。轉載紀念,以後可以作為面試的標準。
- 熟悉常用的資料結構,包括陣列,連結串列,樹,雜湊表等。
- 熟悉結構化程式設計和麵向物件程式設計。
- 能夠閱讀UML設計圖,根據UML語義進行編碼
- 瞭解RDBMS和SQL的使用,包括DDL和DML,理解資料庫事務(ACID),鎖和死鎖。
- 熟悉Java語法特性,正確理解多執行緒,同步,臨界區,執行緒安全,異常,泛型等。
- 瞭解常用的Java庫,比如java.lang,java.io,java.net,java.util,java.sql,javax.xml,
- 能夠看懂中英文javadoc,快速上手新的類庫和框架。
- 熟悉Java Web程式設計,如Servlet,Spring,以及ORM框架。
- 熟練使用Java IDE如eclipse,尤其是能夠除錯錯誤。
- 會使用構建工具如Ant,Maven構建專案。
- 會使用JUnit開發單元測試用例,能夠使用程式碼覆蓋率工具如EMMA檢查測試的覆蓋率
- 如果能夠使用程式碼調優工具提升程式碼效能更好
- 如果能夠使用靜態檢查工具如PMD檢查程式碼中的問題會更好
- 如果能夠了解JVM的機制,如垃圾回收,類載入會更好
怎樣才是一個進階水平的Java程式設計師呢?
- 掌握物件導向的需求分析和設計
- 理解SOLID原則,理解常用設計模式,熟練掌握重構
- 理解面向服務的架構
- 理解Linux作業系統的一些概念,比如核心空間,使用者空間,系統呼叫,命名管道,Unix Domain Socket,
- 熟悉Linux下命令列工具。
- 深入理解程式,執行緒。
- 瞭解Java記憶體模型
- 瞭解Java的併發包,如鎖,讀寫鎖,Barrier,Executer和Future
- 瞭解Java 8的Lambda表示式和Streaming API
- 理解TCP/IP協議族
- 理解HTTP協議和REST API
- 理解多路複用和非阻塞IO
- 熟悉Socket程式設計,能夠使用網路框架如netty開發服務端程式
- 掌握RPC框架的使用,比如RMI,Thrift,Dubbo
- 掌握訊息佇列的使用,如JMS,ActiveMQ等
- 掌握分散式快取如memcache,Redis的使用
- 瞭解代理和負載均衡如Nginx的使用
- 熟悉分散式KV儲存如zookeeper,etcd等,理解選主和分散式鎖
- 會使用Mock框架進行單元測試
- 瞭解效能方面的知識,如吞吐量和時延。
- 能夠進行執行效能測試,收集效能資料並進行分析。
- 瞭解安全性相關的知識,比如私密性(加密和解密),完整性(訊息認證),不可否認性(簽名和驗籤),身份認證,授權,傳輸層安全(如SSL/TLS),數字證照和PKI體系
- 瞭解可用性相關的知識(,如可用性指標,如MTBF,MTTR,和高可用的實現,如主備。雙活,負載均衡
- 瞭解容錯性,容災和故障轉移
歡迎來我的個人部落格逛逛: https://blog.52xtg.com
相關文章
- PHP程式設計師應該掌握的10項技能PHP程式設計師
- 中級JAVA程式設計師應該掌握的資料結構知識Java程式設計師資料結構
- JAVA程式設計師“黃金5年”必須要掌握的知識技能Java程式設計師
- 新手UI設計師需要掌握的知識和技能UI
- J2EE程式設計師應該要掌握的linux知識程式設計師Linux
- 一個PHP程式設計師應該掌握的10項技能!【更新】PHP程式設計師
- 月薪3k的程式設計師實習生,應該具備哪些知識,技能?程式設計師
- 3 年 Java 程式設計師應該具備的技能!Java程式設計師
- Java程式設計師應該掌握的三種語言Java程式設計師
- 程式設計師 應該掌握的英語詞彙程式設計師
- “有能力”的程式設計師和“熟練”的程式設計師誰更牛?程式設計師
- 前端應該掌握的nginx知識前端Nginx
- .net程式設計師應該掌握的常用類庫程式設計師
- .Net WEB 程式設計師需要掌握的技能Web程式設計師
- .NETWEB程式設計師需要掌握的技能Web程式設計師
- 設計師都應該知道的ICON知識
- 程式設計師需要掌握哪些IT技能程式設計師
- 程式設計師必須掌握的五個seo知識程式設計師
- 程式設計師都應該瞭解哪些安全知識程式設計師
- 程式設計師應該掌握的10個搜尋技巧程式設計師
- 每個程式設計師應該知道的計算機網路知識程式設計師計算機網路
- 程式設計師應該具備的意識程式設計師
- java程式設計入門指南,你應該瞭解的Java小知識Java程式設計
- iOS 工程師應該掌握哪些技能?iOS工程師
- 每個程式設計師都應該瞭解的記憶體知識程式設計師記憶體
- 程式設計師需要掌握的 6 項相關技能程式設計師
- 程式設計師應該具備哪些必備技能程式設計師
- 一名3年工作經驗的java程式設計師應該具備的技能!Java程式設計師
- 一名3年工作經驗的Java程式設計師應該具備的技能Java程式設計師
- java程式設計師進階架構師你必須掌握的架構知識體系Java程式設計師架構
- 想要成為Java工程師,你要熟練掌握MySQLJava工程師MySql
- 程式設計師的知識管理程式設計師
- 好程式設計師Web前端教程分享新手應該瞭解的Cookie知識!程式設計師Web前端Cookie
- 架構師之路:一個架構師需要掌握的知識技能架構
- Java之列舉, 程式設計師應該掌握的開發技巧“簡潔易懂又安全的程式碼”Java程式設計師
- Java程式設計師應該遵循的10條戒律Java程式設計師
- 4-6年經驗左右、優秀的 Java 程式設計師應該具備的技能Java程式設計師
- 程式設計師需要那些具備最基礎的知識和技能程式設計師