Java程式員除了要掌握的20%以外還要掌握些什麼知識才能遊刃有餘。下面說說我接觸(使用)過、的東西吧。
- java以分布式應用豐富的生态聞名,在分布式系統中逃不過CAP的抉擇。早早了解一些分布式一緻性協定paxos、raft等。學習zookeeper的原理和使用場景(metadata、分布式鎖、leaderEletion... etc)
- RPC架構在SOA架構中起着重要的作用,好好探究終是有好處的,在這裡推薦阿裡巴巴的dubbo架構,同時會netty、mina等網絡庫
- Hadoop系列 Storm Spark 等離線實時計算架構
- ElasticSearchSolrCloud 分布式搜尋 ELK 日志相關的東西對這些比較敏感,當然在更多的場景使用ES也是有很多
- 消息隊列 kafkaMetaQ RabbitMQ 緩存 Redis/memcached .容器tomcat/jetty web伺服器NGINX/OpenResty
- 然後就是各種基礎知識,程式設計語言、網絡方面、資料庫、資料結構和算法。不要覺得任何一項都精通了,敢說精通的能有幾個。
- 掌握技能也就是需要時間成本和學習成本,要成為一個好的程式員不要怕學習,有學曆能力需要新技術才能跟得上,想當年才學的時候struts2比springmvc高出一截,不過現在也基本沒人用啦。
Java程式員一定要學好重點的技術,如下面這些
- 并發包:了解 ConcurrentHashMap原理,線程池,異步并發,鎖。
- 集合類,線程類。
- http請求
- json,xml讀寫。
- 常用api。
- 前端子產品javascript、css,熟悉一個前端架構。
- 常用架構、常見的設計模式、面向對象。
加薪必備知識點
- 掌握Java程式設計語言,包含io/nio/socket/multi threads/collection/concurrency等功能的使用;
- 熟練掌握jvm(sun hotspot和ibm j9)記憶體模型、gc垃圾回收調優等技能;
- 精通JVM,JMM,MVC架構,熟練使用struts2。
- 熟練使用spring、struts、ibatis建構應用系統。
- 熟練使用Servlet,jsp,freemark等前端技術。
- 熟練使用axis搭建基于SOAP協定的WebService服務接口。
- 熟練使用MAVEN建構項目工程。
- 熟練使用tomcat等web服務。
- 熟練使用mysql等關系型資料庫,熟悉mysql叢集搭建
- 熟練使用redis等NOSQL技術。
- 熟悉tcp、http協定。
- 熟悉nginx、haproxy等配置。
- 熟悉javascript、ajax等技術。
- 熟悉主流分布式檔案系統FastDFS等。
- 熟悉JMS,可熟練使用ActiveMQ。
底層計算機了解記憶體管理/資料挖掘系統
可靠性和可用性如何了解
- jsp和sever lap對比
- 資料庫到界面,字元集轉化
- 基棧
- jvm優化cup高的時候如果分析和監控
- java curb突出細節問題
- 分布式緩存文檔如何分流
- 遷移資料庫垂直分割
- 高并發如何處理前端高并發應用層
- LB設計load balance
- 負載均衡
- 防網絡攻擊
- 資料日志事件監控後通知
- 資料庫事務實作的底層機制
- 字元串空格輸入的網絡攻擊
- Quartz架構的底層原理
- 資料庫同步中不通過資料庫引擎直接讀日志等方式同步資料
針對上面的内容,我精心整理了一份【Java進階核心技術知識點】,助力成長進階。本架構專題合集由原BAT資深架構師依據過往項目實踐經驗,耗時巨長、精心創作。内容非常廣泛,讀者老哥們可以參考一下。
需要的老哥擷取方式:轉發+關注後,私信【技術】來免費領取到這份Java進階核心技術知識點!
JVM

Spring原理
微服務
Netty與Rpc
設計模式
資料結構與算法
由于篇幅限制,隻能展示部分截圖出來,需要擷取這份【Java進階核心技術知識點】的讀者老哥們可以轉發關注一下小編,背景私信:“技術”來免費擷取吧。