成神之Java之路

既然勵志在java路上走的更遠,那就必須瞭解java的路徑。先看圖

  image.png
  更加細化的細節以下

  一: 編程基礎
  無論是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.五、JDK1.六、JDK1.七、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技術

  5、主流框架及工具
  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

  6、JavaWeb系統設計與架構
  Java設計模式

  JAVA與UML建模

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

  面向資源架構:ROA/REST

  面向雲架構:COA/Saas/雲計算

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

  7、More
  排錯能力:

  應該能夠根據異常信息比較快速的定位問題的緣由和大體位置

  優化能力

  代碼規範、代碼管理:

  有本身的代碼規範體系,代碼可讀性好

  知識面廣:

  懂各類網絡產品及特性,懂各類中間件,可以知道坑在哪兒,深諳各類技術方案的優缺點,懂整合各類資源並達到最優....瞭解各類技術及應用場景,有足夠的工做經驗解決集成中遇到的各類奇葩問題

  技術管理/技術總監:

  產品管理、項目管理、團隊建設、團隊提高

  CTO:

  發展戰略

  總結:目前的我和個人目標還有很大的差距,但願每當過一段時間就來看看這些東西,看看本身是否又前進了一步。java大神任而道遠,路在腳下,加油。
  同時須要更多java相關資料以及面試心得和視頻資料的,歡迎加QQ羣:810589193
  免費獲取Java工程化、高性能及分佈式、高性能、高架構、性能調優、Spring、MyBatis、Netty源碼分析等多個知識點高級進階乾貨的直播免費學習權限及相關視頻資料,還有spring和虛擬機等書籍掃描版前端

相關文章
相關標籤/搜索