從大層次講java技術學習路線

Java從95年至今通過多年發展,因爲各位前輩的不斷創新,Java的成熟性已不可置疑;同時也致使java技術琳琅滿目。那麼在學習Java前咱們應該如何選擇技術方向呢?目前,哪些技術很是流行呢?另外,小編聽到不少人說軟件是吃青春飯的,30+混很差就沒什麼發展前途了,現實真實如此嗎?針對以上問題小編從我的理解上梳理一下,意見不一樣者歡迎討論。java

JAVA SE(java基礎)

java基礎就不用說了,這是必須掌握的。重點要理解面向對象的思想,理解集合(List、Set和Map)的源碼。

JVM部分

知道內存模型、工做原理和流程,JVM調優:參數和內存回收原理

頁面層知識點

小編接觸java最先是在大學期間,大學的教材通常都比較落後,像servlet、jsp,這兩種技術是j2ee裏最老的兩門技術了。從工做至今我從未使用過jsp,如今互聯網公司早已不使用。servlet你們仍是有必要認真學一下的,它是MVC框架的核心,對咱們理解MVC有很大幫助。 spring

MVC框架知識點

MVC框架在大學學了Struts 2.x,如今也沒有公司在試用。現今流行的MVC框架就是SpringMVC,這個確定是要學習的,建議搞清其中的原理,對理解如今比較流行的springboot是一個很好的鋪墊。 數據庫

持久層知識點

持久層技術Hibernate和mybatis用的較多,這就是咱們常說的SSH和SSM中的H和M。小編在畢業第一年主要用Hibernate,後來因爲新項目選型mybatis,至今一直在試用mybatis,這二者小編更偏向也mybatis,緣由以下表1
編程

表1

對比方向 Mybatis Hibernate
上手難以程度
ORM 半自動化 徹底的自動化
Sql配置文件
數據庫無關性
SQL靈活性
性能
適合的行業 互聯網 電商 傳統的(ERP CRM OA)
社區活躍度

數據庫鏈接池知識點

DB頻繁地創建、關閉鏈接,會極大的減低系統的性能,由於對於鏈接的使用成了系統性能的瓶頸。這時咱們可使用數據庫鏈接池來解決這個問題,如:c3p0、dbcp、druid和HikariCP。目前c3p0、dbcp已經被逐漸淘汰,國內目前比較流行的高性能的Druid鏈接池(阿里巴巴研發)優勢以下: 安全

  1. 能夠監控數據庫訪問性能,這對於線上分析數據庫訪問性能頗有幫助;
  2. 替換DBCP和C3P0。Druid提供了一個高效、功能強大、可擴展性好的數據庫鏈接池;
  3. 數據庫密碼加密。直接把數據庫密碼寫在配置文件中,這是很差的行爲,容易致使安全問題。DruidDruiver和DruidDataSource都支持PasswordCallback;
  4. SQL執行日誌,Druid提供了不一樣的LogFilter,可以支持Common-Logging、Log4j和JdkLog;
  5. druid集羣能夠很方便的擴容到PB的數據量,每秒百萬級別的數據注入。即使在加大數據規模的狀況下,也能保證時其效性;
  6. druid既能夠運行在商業的硬件上,也能夠運行在雲上。它能夠從多種數據系統中注入數據,包括hadoop,spark,kafka,storm和samza等;
  7. druid擁有豐富的社區,供你們學習。

spring boot

學習完以上你們對Spring 框架必定會有更好地認識。幾乎全部 Java 企業應用須要用到的基礎組件均可以在 Spring 框架中找到。但在一個新應用中將全部須要的 Spring 組件整合並配置好並不容易,使用 xml集成所需組件和spring bean特別繁瑣。爲了解決這一問題Spring Boot 出現了,它是在 Java 中開發基於 REST 的微服務 Web 應用程序的最快方法之一。

微服務技術:SpringCloud、Dubbo

在國內目前使用最多的仍是SpringCloud和Dubbo。看看他們提供了哪些支持
對比方向 Spring Cloud Dubbo
服務註冊中心 Spring Cloud Netflix Eureka Zookeeper
服務調用方式 REST API RPC
服務網關 Spring Cloud Netflix Zuul
斷路器 Spring Cloud Netflix Hystrix 不完善
分佈式配置 Spring Cloud Config
服務跟蹤 Spring Cloud Sleuth
消息總線 Spring Cloud Bus
數據流 Spring Cloud Stream
批量任務 Spring Cloud Task
看上去有不少功能Dubbo都沒有,但它能夠繼承第三方組件很好的實現一樣功能,甚至用起來比Spring Cloud更容易。Spring Cloud功能比較齊全(就像一個全家桶),Dubbo只是實現服務治理,須要用到其餘組件,須要進行整合。

編程與年齡的關係

小編認爲軟件在我國發展比較晚,國內第一批從事java開發的目前也就是40+歲,因爲當時開發人員也比較少,全部給人一種錯覺:編程是吃青春飯的。不覺得然的能夠向java大數據方向發展,在方面大齡coder不少,並且仍是主力軍。
相關文章
相關標籤/搜索