一直說學Java,做Java開發(fā),其實并沒有做一個系統(tǒng)的總結(jié)。那么做一個Java開發(fā),或者是高級Java開發(fā)、架構(gòu)師,到底要會哪些東西,哪些原理,先簡單做一個總結(jié),也希望能監(jiān)督自己按這個路線一直的學習和總結(jié)下去。
歡迎工作一到五年的Java工程師朋友們加入Java技術(shù)交流:611481448
群內(nèi)提供免費的Java架構(gòu)學習資料(里面有高可用、高并發(fā)、高性能及分布式、Jvm性能調(diào)優(yōu)、Spring源碼,MyBatis,Netty,Redis,Kafka,Mysql,Zookeeper,Tomcat,Docker,Dubbo,Nginx等多個知識點的架構(gòu)資料)合理利用自己每一分每一秒的時間來學習提升自己,不要再用"沒有時間“來掩飾自己思想上的懶惰!趁年輕,使勁拼,給未來的自己一個交代!
基礎(chǔ)知識:
Java反射:Field、Type
Java代理:proxy、cglib
Java線程:Thread、Runnable、ExecutorService、Callable、Future、ThreadPoolExecutor
Java數(shù)據(jù)結(jié)構(gòu):HashMap ArrayList LinkedList HashSet BlockingQueue ConcurrentHashMap TreeMap
JVM:運行時數(shù)據(jù)區(qū)、堆設(shè)置、收集器設(shè)置、回收日志分析
Lambda表達式:stream、filter、collect、map、forEach、
并發(fā)與鎖:synchronized、ReentrantLock、ReadWriteLock、Atomic;
通訊協(xié)議:HTTP、TCP/IP、NIO、BIO、WebSocket
數(shù)據(jù)結(jié)構(gòu):表、棧、隊列、二叉樹、AVL樹、BTree、黑紅數(shù)、散列、圖。
常用算法:冒泡排序,選擇排序,插入排序、堆排序,歸并排序、快速排序;二分查找;布隆過濾器;
設(shè)計模式:工廠模式、觀察者模式、單例模式、代理模式、命令模式、策略模式
Web容器:tomcat、jboss、jetty
HTTP服務(wù):httpd、nginx、openResty、kong
工具包:common、poi、gson、guava
構(gòu)建工具:maven、gradle
通訊框架:netty、mina
序列化:hessian、protostuff、json
服務(wù)發(fā)現(xiàn):zookeeper、etcd、eureka、consul
數(shù)據(jù)庫:mysql、mongoDB、redis、mycat、berkeleyDB
連接池:dbcp、c3o0、druid、jdbc、http
大數(shù)據(jù):spark、storm、hadoop、hdfs
容器:docker、k8s
監(jiān)控:zabbix、prometheus
開源框架:
Spring:IOC、AOP、事務(wù)處理
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、樂觀鎖、二級緩存、高并發(fā)、多數(shù)據(jù)源
Mybatis:Configuration、SqlSession、Executor 、TypeHandler、動態(tài)sql、二級緩存
Netty:nio、拆念包、future、pipeline
Guava:限流算法、布隆過濾器、JVM緩存
Hystrix:隔離、熔斷、降級
消息隊列:rabbitMQ、rocketMQ、kafka
RPC框架:dubbo、motan、thrift、grpc
搜索隱形:Lucene、Elasticsearch、Solr
數(shù)據(jù)庫:
Mysql:主備、讀寫分、橫向縱向拆分、調(diào)優(yōu)、語法、索引、優(yōu)化
Redis:主備、讀寫分離、持久化、命中和過期
MogoDB:集合、文檔、文件、索引、聚合函數(shù)、分片
消息隊列:
概念:topic、message、queue、producer、consumer、broker
消息類型:順序消息、定時消息、延遲消息、事務(wù)消息
消息回溯、消息堆積、消息拉取、消息簽收
高并發(fā):
服務(wù)拆分:微服務(wù)化、分布式事務(wù)、數(shù)據(jù)庫水平垂直拆分
服務(wù)治理:zookeeper、rpc
消息隊列:異步處理、最終一致性
緩存技術(shù):JVM緩存、redis緩存、nginx緩存、CDN緩存、瀏覽器緩存。緩存擊穿、緩存雪崩、緩存淘汰
高可用:
負載均衡:算法、動靜分離、切換、檢測
超時重試:超時時間、重試機制和策略
限流:算法、容器、nginx、防止抖動
隔離:線程隔離、進程隔離、機房隔離、讀寫隔離、動靜隔離,采用hystrix、servlet3做隔離熔斷
降級:自動降級、人工降級,控制中心,采用hystrix手段
監(jiān)控:進程監(jiān)控、線程監(jiān)控、機器監(jiān)控,報警
問題解決
1.如何解決單點故障;(lvs、F5、A10、Zookeep、MQ)
2.如何保證數(shù)據(jù)安全性;(熱備、冷備、異地多活)
3.如何解決檢索難題;(數(shù)據(jù)庫代理中間件:mysql-proxy、Cobar、MaxScale等;)
4.如何解決統(tǒng)計分析問題;(離線、近實時)
喜歡小編輕輕點個關(guān)注吧!