學習java的常用網址及基礎知識
連結:https://www.zhihu.com/question/36673373/answer/2086199349
來源:知乎
著作權歸作者所有。商業轉載請聯絡作者獲得授權,非商業轉載請註明出處。
分享一個相關的學習腦圖:
那麼做一個Java開發,或者是高階Java開發、架構師,到底要會哪些東西,哪些原理,先簡單做一個總結,也希望能監督自己按這個路線一直的學習和總結下去。
基礎知識:
Java反射:Field、Type
Java代理:proxy、cglib
Java執行緒:Thread、Runnable、ExecutorService、Callable、Future、ThreadPoolExecutor
Java資料結構:HashMap ArrayList LinkedList HashSet BlockingQueue ConcurrentHashMap TreeMap
JVM:執行時資料區、堆設定、收集器設定、回收日誌分析
Lambda表示式:stream、filter、collect、map、forEach、
併發與鎖:synchronized、ReentrantLock、ReadWriteLock、Atomic;
通訊協議:HTTP、TCP/IP、NIO、BIO、WebSocket
資料結構:表、棧、佇列、二叉樹、AVL樹、BTree、黑紅數、雜湊、圖。
常用演算法:氣泡排序,選擇排序,插入排序、堆排序,歸併排序、快速排序;二分查詢;布隆過濾器;
設計模式:工廠模式、觀察者模式、單例模式、代理模式、命令模式、策略模式
Web容器:tomcat、jboss、jetty
HTTP服務:httpd、nginx、openResty、kong
工具包:common、poi、gson、guava
構建工具:maven、gradle
通訊框架:netty、mina
序列化:hessian、protostuff、json
服務發現:zookeeper、etcd、eureka、consul
資料庫:mysql、mongoDB、redis、mycat、berkeleyDB
連線池:dbcp、c3o0、druid、jdbc、http
大資料:spark、storm、hadoop、hdfs
容器:docker、k8s
監控:zabbix、prometheus
Spring:IOC、AOP、事務處理
SpringMVC:DispatcherServlet、HandlerMapping、HandlerAdapter、Controller、Intercepter、View
SpringBoot:整合web、hibernate、mybatis、redis、docker下使用
SpringCloud:Netfix、Config、Bus、Eureka、Consul、Stream、Task、Gateway
Hibernate:Configuration、SessionFactory、樂觀鎖、二級快取、高併發、多資料來源
Mybatis:Configuration、SqlSession、Executor 、TypeHandler、動態sql、二級快取
Netty:nio、拆念包、future、pipeline
Guava:限流演算法、布隆過濾器、JVM快取
Hystrix:隔離、熔斷、降級
訊息佇列:rabbitMQ、rocketMQ、kafka
RPC框架:dubbo、motan、thrift、grpc
搜尋隱形:Lucene、Elasticsearch、Solr
資料庫:
Mysql:主備、讀寫分、橫向縱向拆分、調優、語法、索引、優化
Redis:主備、讀寫分離、持久化、命中和過期
MogoDB:集合、文件、檔案、索引、聚合函式、分片
訊息佇列:
概念:topic、message、queue、producer、consumer、broker
訊息型別:順序訊息、定時訊息、延遲訊息、事務訊息
訊息回溯、訊息堆積、訊息拉取、訊息簽收
高併發:
服務拆分:微服務化、分散式事務、資料庫水平垂直拆分
服務治理:zookeeper、rpc
訊息佇列:非同步處理、最終一致性
快取技術:JVM快取、redis快取、nginx快取、CDN快取、瀏覽器快取。快取擊穿、快取雪崩、快取淘汰
高可用:
負載均衡:演算法、動靜分離、切換、檢測
超時重試:超時時間、重試機制和策略
限流:演算法、容器、nginx、防止抖動
隔離:執行緒隔離、程序隔離、機房隔離、讀寫隔離、動靜隔離,採用hystrix、servlet3做隔離熔斷
降級:自動降級、人工降級,控制中心,採用hystrix手段
監控:程序監控、執行緒監控、機器監控,報警
問題解決
1.如何解決單點故障;(lvs、F5、A10、Zookeep、MQ)
2.如何保證資料安全性;(熱備、冷備、異地多活)
3.如何解決檢索難題;(資料庫代理中介軟體:mysql-proxy、Cobar、MaxScale等;)
4.如何解決統計分析問題;(離線、近實時)
作者丨黎明你好
連結:https://www.jianshu.com/p/48992aff1977
如何學習技術,首先作為程式設計師不得不知道的幾個網站:
1、國內程式設計師部落格csdn: https://blog.csdn.net/
2、掘金: https://juejin.cn
3、部落格園:https://www.cnblogs.com/codeGoogler
4、開原中國:https://my.oschina.net https://my.oschina.net
6、慕課網: https://www.imooc.com
7、程式設計師頭條:https://toutiao.io/
8、Github:https://github.com/codeGoogler
9、Stack Overflow:https://stackoverflow.com/questions
10、程式設計師知乎:https://www.zhihu.com
11、leetcode:力扣
12、w3school: https://www.w3school.com.cn/
技術github學習地址:https://github.com/codeGoogler/JavaCodeHub
程式設計師程式設計書籍:https://github.com/codeGoogler/
關於書籍的話:
雖然我之前寫了很多相關的書籍的帖子:java有什麼必看的書?
但依然會大家 推薦幾本不錯的書籍
《程式碼整潔之道》
適合物件:中級、高階
介紹:講述了一系列行之有效的整潔程式碼操作實踐。軟體工程的理想編碼是無數人編出來的程式碼像一個人寫的,這本書當作規範就不錯。
《RockerMq技術內幕》
適合物件:中級、高階
Java、分散式服務架構、中介軟體等多個領域的技術專家,擅長高併發程式設計、Netty網路程式設計、RocketMQ等技術,國內知名開源資料庫中介軟體MyCAT的志願者和技術顧問。目前擔任上海優速物流的技術專家和經營支撐部門的架構師。對RocketMQ有非常深入的研究,是RocketMQ社群的佈道師,不僅實踐經驗豐富,而且對其原始碼有深入且系統的研究。
《1.Head First Java》
《重構:改善既有程式碼的設計》
適合物件:中級、高階
介紹:清晰揭示了重構的過程,解釋了重構的原理和最佳實踐方式,並給出了何時以及何地應該開始挖掘程式碼以及改善。大師的傑作,讓你明白軟體是一步步改進的,不是一蹴而就的
《深入理解Java虛擬機器》
適合物件: 高階
《深入理解Java虛擬機器:JVM高階特性與最佳實踐(第2版)》共分為五大部分,圍繞記憶體管理、執行子系統、程式編譯與優化、高效併發等核心主題對JVM進行了全面而深入的分析,深刻揭示了JVM的工作原理。
最後給你的建議,經常關注我的大家都知道,也是我以前帖子裡面經常提到的:
1、找對方式方法,避免浪費時間
2、列出學習規劃,一步一步的去實現它
3、可以找一個面向架構師的課程,給你提供一些幫助
4、一定要有計劃有目的的去學習
5、多動手,儘量不依賴視訊教程
6、多思考和總結 ,做到舉一反三