學習一個新的技術時,其實不在於跟着某個教程敲出了幾行、幾百行代碼,這樣你最多隻能知其然而不知其所以然,進步緩慢且深度有限,最重要的是一開始就對整個學習路線有宏觀、簡潔的認識,確定大的學習方向,這樣才能事半功倍。
我們經常會遇到這樣的情況:
一開始學習一門新技術的時候,面對着很多很多陌生的名詞,無從下手,一度想要放棄。
本文首先會給出關於java後臺開發的一些建議學習路線,接着簡單解釋一些應用到的高頻技術,幫助大家理解和學習。
Java後臺開發知識一覽
1、後端
- WEB服務器:Weblogic、Tomcat、WebSphere、JBoss、Jetty
- 核心框架:Spring Framework
- 分佈式服務框架 Dubbo
- 安全框架:Apache Shiro
- 視圖框架:Spring MVC
- 服務端驗證:Hibernate + Validator
- 佈局框架:SiteMesh
- 工作流引擎:Activiti
- 任務調度:Spring Task + Quartz
- 持久層框架: MyBatis + MyBatis-Plus
- 數據庫連接池:Alibaba Druid
- 緩存框架:Ehcache 、Redis
- 日誌管理:SLF4J 、Log4j
- 會話管理:Spring-Session
- 工具類:Apache Commons、Jackson 、Xstream、Dozer 、POI
- 消息隊列: ActiveMQ
- 雲存儲:阿里雲 OSS 騰訊雲 COS 七牛雲
- 版本管理: git(推薦) svn
2.高頻技術(可大致瀏覽,作爲目錄查看)
Spring
- 每個模塊的功能如下:
- 核心容器:核心容器提供 Spring 框架的基本功能。核心容器的主要組件是 BeanFactory,它是工廠模式的實現。
- Spring 上下文:Spring 上下文是一個配置文件,向 Spring 框架提供上下文信息。
- Spring AOP:通過配置管理特性,Spring AOP 模塊直接將面向方面的編程功能集成到了 Spring 框架中。
- Spring DAO:JDBC DAO 抽象層提供了有意義的異常層次結構,可用該結構來管理異常處理和不同數據庫供應商拋出的錯誤消息。異常層次結構簡化了錯誤處理。
- Spring ORM:Spring 框架插入了若干個 ORM 框架,從而提供了 ORM 的對象關係工具,其中包括 JDO、Hibernate 和 iBatis SQL Map。所有這些都遵從 Spring 的通用事務和 DAO 異常層次結構。
- Spring Web 模塊:Web 上下文模塊建立在應用程序上下文模塊之上,爲基於 Web 的應用程序提供了上下文。所以,Spring 框架支持與 Jakarta Struts 的集成。
- Spring MVC 框架:MVC 框架是一個全功能的構建 Web 應用程序的 MVC 實現。MVC 容納了大量視圖技術,其中包括 JSP、Velocity、Tiles、iText 和 POI。
RESTful風格
Mybatis
MyBatis 是支持定製化 SQL、存儲過程以及高級映射的優秀的持久層框架。MyBatis 避免 了幾乎所有的 JDBC 代碼和手動設置參數以及獲取結果集。MyBatis 可以對配置和原生Map使用簡單的 XML 或註解,將接口和 Java 的 POJOs(Plain Old Java Objects,普通的 Java對象)映射成數據庫中的記錄。
Hibernate
Redis
- Redis 是完全開源免費的,遵守BSD協議,是一個高性能的key-value數據庫。
- 特點:
- 1.Redis支持數據的持久化,可以將內存中的數據保存在磁盤中,重啓的時候可以再次加載進行使用。
- 2.Redis不僅僅支持簡單的key-value類型的數據,同時還提供list,set,zset,hash等數據結構的存儲。
- 3.Redis支持數據的備份,即master-slave模式的數據備份。
Zookeeper
- Zookeeper 分佈式服務框架是 Apache Hadoop 的一個子項目,它主要是用來解決分佈式應用中經常遇到的一些數據管理問題,如:統一命名服務、狀態同步服務、集羣管理、分佈式應用配置項的管理等等。
DUBBO
- DUBBO是一個分佈式服務框架,致力於提供高性能和透明化的RPC遠程服務調用方案,是阿里巴巴SOA服務化治理方案的核心框架,每天爲2,000+個服務提供3,000,000,000+次訪問量支持,並被廣泛應用於阿里巴巴集團的各成員站點。
一到五年經驗,應該怎麼走,學習方向路線是什麼,需要掌握什麼技術呢?請看下方:
閱讀源碼
程序員每天都和代碼打交道。經過數年的基礎教育和職業培訓,大部分程序員都會寫代碼,或者至少會抄代碼和改代碼。但是,會讀代碼的並不在多數,會讀代碼又真正讀懂一些大項目的源碼的,少之又少。這也造成了很多錯誤看源碼的方式。
那要如何正確的分析源碼呢?
分佈式架構
隨着我們的業務量越來越大和越重要,單體的架構模式已經無法對應大規模的應用場景,而且系統中決不能存在單點故障導致整體不可用,所以只有垂直或是水平拆分業務系統,使其形成一個分佈式的架構,利用分佈式架構來冗餘系統消除單點的故障,從而提高整個系統的可用性。同時分佈式系統的模塊重用度更高,速度更快,擴展性更高是大型的項目必不可少的環節。
分佈式架構
微服務
關於微服務架構的取捨
1、在合適的項目,合適的團隊,採用微服務架構收益會大於成本。
2、微服務架構有很多吸引人的地方,但在擁抱微服務之前,也需要認清它所帶來的挑戰。
3、需要避免爲了“微服務”而“微服務”。
4、微服務架構引入策略 – 對傳統企業而言,開始時可以考慮引入部分合適的微服務架構原則對已有系統進行改造或新建微服務應用,逐步探索及積累微服務架構經驗,而非全盤實施微服務架構。
微服務
性能優化
我們不僅僅對項目要運籌帷幄,還要能解決一切性能問題。只有深入學習JVM底層原理,Mysql底層優化以及Tomcat調優,才能達到知其然,知其所以然的效果。除了性能優化之外,也能提供通用的常見思路以及方案選型的考慮點,幫助大家培養在方案選型時的意識、思維以及做各種權衡的能力。
併發編程
主要培養編程者深入瞭解最底層的運作原理,加強編程者邏輯思維,這樣才能寫出高效、安全、可靠的多線程併發程序。
讀者福利:
感謝各位小夥伴的閱讀與支持,小編在這裏準備了自己整理的一些關於java面試的資料與題目,需要的朋友可以找我領取。領取方式:轉發+關注+私信【資料】希望各位都能找打稱心如意的工作。
記得關注後,私信 【資料】免費獲取領取方式哦!(不關注可能導致無法回覆)
java集合彙總
jvm彙總