首頁  >  文章  >  Java  >  Java進階之路的詳細介紹

Java進階之路的詳細介紹

零下一度
零下一度原創
2017-07-23 14:59:001055瀏覽

怎麼學習才能從一名Java初級程式設計師成長為一名合格的架構師,或者說一名合格的架構師應該有怎樣的技術知識體系,這是不僅一個剛踏入職場的初級程式設計師也是工作三、五年後開始迷惘的老程式設計師常會問到的問題。希望這篇文章會是你所看到的最全面、最權威的回答。

一:程式設計基礎

不管是C或C++,不管是Java或PHP,想成為合格的程式設計師,基本的資料結構與演算法基礎還是要有的。以下幾篇文章從想法到實現,為你整理出常用的資料結構和經典演算法。

1-1 常用資料結構

陣列、鍊錶、堆疊、堆疊、佇列、Hash表、二元樹等

1-2 演算法想法

#演算法時間複雜度與空間複雜度的分析計算

演算法思想:遞推、遞歸、窮舉、貪心、分治、動態規劃、迭代、分枝界限

#1-3經典演算法

經典排序:插入排序、冒泡排序、快排(分劃交換排序)、直接選擇排序、堆排序、合併排序

經典查找:順序查找、二分查找、二元排序樹查找

1-4 進階資料結構

B+/B-數、紅黑樹、圖等

##1-5 進階演算法

圖的深度優先搜尋、圖的廣度優先搜尋、拓樸排序、Dijkstra演算法(單源最短路徑)、霍夫曼編碼、輾轉相除法、最小生成樹等

 

#二:Java語言基礎

誕生不過二十餘年的Java語言憑藉其跨平台、物件導向、適合分散式運算的特性,廣泛應用於Web網站、在行動裝置、桌面應用程式中,並且已經連續多年穩居TOBIE程式語言排行榜前列,最近更是登上冠軍寶座。 Java有哪些優秀又與眾不同的地方首先一定要清楚。

2-1 基礎語法

Java語法格式,常數和變量,變數的作用域,方法和方法的重載,運算符,程式流程控制,各種基本資料型別及包裝類別

2-2 重要:集合類別

Collection以及各種List、Set、Queue、Map的實作以及整合關係,實作原理

Collections和Arrays 

2-3 其他JavaAPI

String和StringBuffer,System和Runtime類,Date和DateFomat類別

java.lang套件

#java.util套件(集合類別系統、規則表達式、zip,以及時間、隨機數、屬性、資源和Timer等)

java.math套件

java.NET套件

##java .text套件(各種格式化類別等)

java.security套件

2-4 物件導向、物件導向

物件的三大特性:封裝、繼承和多態,優缺點

如何設計類,類別的設計原則

this關鍵字,final關鍵字,static關鍵字

物件的實例化過程

方法的重寫和重載;方法和方法的參數傳遞過程

建構子

#內部類,抽象類,介面

物件的多態性(子類別和父類別之間的轉換、父類別紙箱類別的引用),抽象類別和介面在多態中的應用

2-5 JVM記憶體模型、垃圾回收

2-6 關於異常

Throwable/Error/Exception,Checked Exception vs. Unchecked Exception,異常的捕捉和拋出,異常捕捉的原則,finally的使用

2-7多線程

線程和進程的概念

如何在程式中建立多線程,線程安全性問題,線程之間的通訊

線程的同步

#死鎖問題的剖析

線程池

2-8 IO

java.io包,理解IO體系的基於管道模型的設計思路以及常用IO類的特性和使用場合。

File及相關類,位元組流InputStream和OutputStream,字元流Reader和Writer,以及對應緩衝流和管道流,位元組和字元的轉換流,包裝流,以及常用包裝類使用

分析IO性能

2-9XML

熟悉SAX、DOM以及JDOM的優缺點並且能夠使用其中的一種完成XML的解析及內容處理;這幾種解析方法的原理

2-10 一些高階特性

#反射、代理、泛型、枚舉、Java正規表示式

2-11 網路程式設計

網路通訊協定原理及適用場景,Socket編程,WEB伺服器的工作原理

2-11 JDK1.5、JDK1.6、JDK1.7、JDK1.8每個版本都比前面一個版本增加了哪些新特性,進行了哪些提升

 

三:資料庫相關

前面說到了資料結構,資料庫簡單來說就像是電子化的檔案櫃,是依照一定的資料結構來組織、儲存和管理資料的倉庫。

3-1理論基礎

資料庫設計原則與範式

事務(ACID、運作方式、交易的隔離等級、鎖定、交易的傳播機制)

3-2 各種資料庫優缺點、使用場景分析

MySQL/SQLServer/Oracle以及各種NoSQL(Redis、MongoDB、Memcached、Hbase、CouchDB等)

3- 2 SQL語句

資料庫創建,權限分配,表的創建,增刪改查,連接,子查詢

觸發器、預存程序、事務控制

3-3最佳化

索引原理及適用,大表查詢最佳化,多表連接查詢最佳化,子查詢最佳化等

3-4 分庫、分錶、備份、遷移

##匯入、匯出,分庫、分錶,冷備熱備,主從備份、雙機熱備、縱向擴充、橫向擴充

3-5 JDBC

JDBC Connection、Statement、PreparedStatement、CallableStatement 、ResultSet等不同類別的使用

連接池(設定使用、實作原理)

ORM,DAO

 

四:JavaWeb核心技術(包括部分前端)

HTML5/Css/js原生/jQuery

Ajax(跨域等)

JSP/JavaBean/Servlet/EL/JSTL /TabLib

JSF

JSON

EJB

序列化與反序列化

規則引擎

#搜索引擎

範本引擎

快取

身份認證

#測試

##叢集

## 持久化

產生靜態頁技術

高效能

安全

事務JTA

其他需要了解的,如:管理JMX、安全JCCA/JAAS、整合JCA、通訊JNDI/JMS/JavaMain/JAF、SSI技術

 

五、主流架構及工具

##Struts1/Struts2 spring(IoC、AOP等),SpringMVC

#持久化:hibernate/MyBatis

日誌:Log4j

單元測試:JUnit

訊息佇列:ActiveMQ、RabbitMQ等

負載平衡:Nginx/HaProxy

Web伺服器:Tomcat、JBoss、Jetty、Resin、WebLogic、WebSphere等

通訊:WebService(cxf的soap、restful協定)

快取:redis、Memcached

工作流程:Activity、JBPM

搜尋引擎:lucene,基於lucene封裝的solr 

#範本引擎:Velocity、FreeMaker

大數據:Hadoop(HDFS和MapReduce)

建置工具:Ant/Maven

 

#六、JavaWeb系統設計與架構

Java設計模式JAVA與UML建模

面向服務架構:SOA/SCA/ESB/OSGI/EAI,微服務

面向資源架構:ROA/REST

面向雲端架構:COA/Saas/雲端運算

大型網站負載平衡、系統調優等

 

七、More

排錯能力:

應該可以根據異常訊息比較快速的定位問題的原因和大致位置

最佳化能力

程式碼管理:

有自己的程式碼規格體系,程式碼可讀性好

知識面廣:

懂各種網路產品及特性,懂各種中間件,能夠知道坑在哪兒,深諳各種技術方案的優缺點,懂得整合各種資源並達到最優....了解各種技術及應用場景,有足夠的工作經驗解決整合中遇到的各種奇葩問題

技術管理/技術總監:

產品管理、專案管理、團隊建立、團隊提升

以上是Java進階之路的詳細介紹的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
上一篇:Java基本語法下一篇:Java基本語法