怎么學Java
Java是一門面向對象編程語言,不僅吸收了C++語言的各種優點,還摒棄了C++里難以理解的多繼承、指針等概念,因此Java語言具有功能強大和簡單易用兩個特征。
話不多說,直接上干貨:
第一階段
-
JavaSE編程基礎
- DOS常用命令
- 安裝JDK、設置環境變量
- DOS系統編譯、執行Java程序
- Java的注釋
- 標識符、標識符的命名規范
- Java 關鍵字
- Java的數據類型
- 變量的定義及初始化
- Java的運算符
- 表達式
- 轉義字符
- 運算符的優先級
- 類型轉換
- Java分支if...else
- 多重if、嵌套if
- Java switch
- Switch vs if
- Java循環 for、while 、doWhile
- 循環的嵌套
- break、continue、return
- 方法的定義
- 方法的形參和實參
- 無返回值的方法
- 有返回值的方法
- 方法的重載
-
Java數組
- Java 數組的定義
- 數組的靜態賦值
- 數組的動態賦值
- 數組單個元素的訪問
- 數組的遍歷訪問
- 數組的增強for循環
- 數組的排序
- 數組的順序查找
- 數組的二分法查找
- 命令行參數args的使用
- 可變參數的應用
- Arrays工具類的使用
- 二維數組的使用
-
Java面向對象
- 面向對象的分析與設計
- 面向對象與面向過程的區別
- Java與面向對象
- 類的定義
- 對象的定義
- 類中成員變量及方法的定義
- 構造方法的定義和調用
- 構造方法的重載
- 面向對象的封裝特性
- this調用屬性、方法、構造方法
- 局部變量和成員變量的作用域問題
- static靜態屬性、方法、代碼塊
- 工具類的概念及工具類的制作
- super關鍵字的使用及理解
- Java中訪問權限控制機制
- 繼承中構造方法的細節
- 方法的重寫
- equals及toString方法的正確理解
- Java中的包機制
- 抽象類,接口,多態
- 對象的轉型
- final修飾類、屬性、方法
- 抽象類,接口
- 多態機制
- 內部類
- 通過內部類制作性能檢測工具
- Java的內存分析
-
常用基礎類
- 常用數據類型的包裝類
- String、StringBuffer、StringBuilder
- Date的使用
- SimpleDataFormate對日期和字符
串之間的轉換處理 - Calendar日歷類的使用
- Math常用方法
- Random類
- Runtime類
- System 類
- java8新特性
-
集合
- 集合框架體系介紹
- 集合框架與數組的對比
- 集合框架之Collection接口
- 集合框架之List接口
- ArrayList和LinkedList的使用
- 深入源碼探究ArrayList和LinkedList
的工作原理 - 迭代器的工作原理
- 迭代器的使用
- 集合框架之Set
- HashSet和TreeSet的使用
- 深入源碼探究HashSet和TreeSet
的工作原理 - HashMap和TreeMap的使用
- 分析Map和Set的之間的關系
- Collections工具類
-
異常處理
- Java的異常體系
- 異常的概念及分類
- 異常的處理方式
- 異常設計原則
- 自定義異常
-
線程和I/O
- I/O
- NIO
- 文件操作
- 多線程
- 線程池
- 同步
- 線程調度
- 多線程下載
- 網絡http、socket
- 基於HTTP協議訪問網絡資源、XML解析
- 文件的下載
- ThreadLocal
-
項目
- FTP服務器、多人聊天服務器
第二階段
-
HTML5
- HTML的作用
- 全局標簽
- 絕對路徑與相對路徑
- 常見標簽
- 字符集
- 表單標簽
- 布局指定的網頁
-
CSS3
- css聲明類型
- 常見的各種屬性
- 圓角屬性:border-radius的使用
- 陰影屬性:box-shadow的用法
- 背景屬性擴展:多背景應用
- 新的顏色表示方式:HSLA色輪模式
- 浮動
- 完成自己的初級課頁面實戰
-
Javascript
- JavaScript基本語法
- JavaScript數據類型
- JavaScript對象和常用對象
- history對象
- location對象
- bom對象
- 表單對象
- DOM對象
- window對象
- 常用事件
- 選項卡、幻燈片、貪吃蛇、
瀑布流各種特效
-
MySQL使用
- Mysql數據庫
- MySql命令行客戶端的使用
- MySql圖形化客戶端的使用
- SQL語句介紹
- DDL
- DML
- DQL
- 多表的聯合查詢
- 子查詢
- 排序、聚合、分組
-
JDBC連接池
- JDBC的介紹
- 采用JDBC實現CRUD
- 采用PrepareStatement防止SQL注入,提高安全性
-
Servlet
- Tomcat與eclipse的集成開發
- 什么是Servlet
- Servlet接收客戶端請求信息
- Servlet響應客戶端信息
- Servlet的生命周期
- 什么是JSP
- JSP的內置對象
- 透析JSP的本質
- JSTL+EL
- MVC介紹
- 分層的重要性
- Mysql的事務特性
- MySql的事務實現
- Session的使用
- Cookie的使用
- 實現系統的安全控制
- DBCP連接池的使用
- C3P0連接池的使用
- DBUils
- 實現用戶的自動登錄
- 文件的上傳
- 文件的下載
- 過濾器解決編碼問題
- 過濾器解決安全驗證問題
- 監聽器
- 反射、注解、泛型
-
MVC
- 設計模式
- ORM原理
- 自定義框架
-
ajax
- Ajax的工作原理
- JSON解析
- Ajax 數據格式(XML格式、HTML格式、JSON格式、各種格式對比)
- 使用 jQuery 實現 Ajax(load()方法、$.get()方法、$.post()方法、序列化、Ajax應用)
- 聊天室小實例
-
jQuery
- jQuery選擇器
- jQuery的常用事件
- 事件冒泡
- 事件委派
- jQuery中的動化
- 模擬操作
- jQuery綜合實例
-
BootStrap
- 響應式設計
- BootStrap安裝
- Bootstrap 組件
- 進度條和列表組件
- BootStrap綜合實例
-
項目
- 講解項目開發流程
- 項目簡介
- 項目功能演示
- 項目功能實現分析
- 數據庫設計分析
- 項目架構設計分析
- 實現網站首頁的商品展示
- 實現商品詳情頁面
- 實現購物車功能
- 實現我的訂單管理
- 項目驗收
第三階段、雲計算體系
-
框架和Maven
- 為什么用框架
- 流行的框架
- Maven概述
- 使用Maven的優勢
- maven的一次構建
- 依賴管理
- 安裝配置介紹.使用Maven核心概念介紹( 坐標、依賴、倉庫、插件、生命周期等)
- Maven與第三方Elicpse整合及如何在Eclipse中使用Maven、Maven私服Nexus的安裝使用
- 如何使用Maven構建Web應用
- 使用Maven構建SSH應用
- 使用Maven進行多模塊和繼承使用
-
Hibernate5
- ORM思想
- hibernate5與JPA關系介紹
- hibernate.cfg.xml配置
- hbm.xml映射文件詳解
- 主鍵生成策略 PO對象三種狀態分析與切換
- hibernate5一級緩存分析與測試
- Hibernate5高級映射技術
- Hibernate5多表聯合查詢
- Hibernate5的性能優化
- hibernate4及hibernate3區別及新特性介紹
-
JPA
- JPA 概述
- JPA 注解
- JPA 相關 API
- JPA 映射
- JPQL
- 二級緩存
- Spring 整合 JPA
-
Struts2
- Struts2框架介紹
- 工作原理及架構分析
- 快速掌握Struts2開發模式
- Struts.xml詳解
- 通配符的配置模式
- ActionContext及ServletActionContext使用
- 類型自動轉換機制
- 多模塊的開發模式
- 單文件上傳
- 多文件上傳
- 文件下載
- 攔截器的介紹
- 默認攔截器
- 自定義攔截器
- Token機制
-
Spring4
- 框架原理介紹
- 框架環境搭建
- 快速入門
- 創建Bean的方式及實現原理
- Bean種類
- Bean生命周期
- Bean的作用域
- Bean的注值方式
- SpEL
- 整合Junit測試
- Web項目集成spring
- 注解裝配Bean
- AOP思想
- AOP原理解剖
- 傳統方式實現AOP開發
- AspectJ介紹及實現AOP開發
-
SpringMVC
- Spring MVC 概述
- 使用 @RequestMapping映射請求
- 請求處理方法簽名概述
- 處理方法簽名詳細說明
- 使用 HttpMessageConverter
- 處理模型數據
- 數據綁定流程剖析
- 數據轉換
- 數據格式化
- 數據校驗
- 視圖和視圖解析器
- 處理方法的數據綁定
-
博客、論壇項目整合和富文本編輯器
- 博客或論壇項目在面試中的意義
- 如何使用Maven構建框架開始寫項目
- 業務流程
- 富文本編輯器整合
- 前后台的業務實現
-
MyBatis
- 安裝和配置MyBatis
- 使用映射語句
- 執行非查詢語句
- 使用高級查詢技術
- 事務
- 使用動態SQL
- 使用高速緩存提高性能
- MyBatis數據訪問對象
- DAO使用進階
-
項目整合
- 使用SSM整合博客或論壇項目
- 體現MyBatis的優越性
- 使用對比
-
SpringData
- Spring Data 概述
- Repository
- CrudRepository
- PagingAndSortingRepository
- JpaRepository
- 條件查詢
- 使用@Query自定義查詢
- @Query 與 @Modifying 執行更新操作
- 索引參數與命名參數
- 用@Query來指定本地查詢
- 為某一個 Repository 上添加自定義方法
- 所有的 Repository 都添加自實現的方法
-
Redis、MongoDB(二選一)
- redis安裝
- redis數據類型
- redis操作
- java操作redis
- redis寫個帶分頁好友關系處理系統
- Linux平台安裝MongDB
- MongDB插入、更新、刪除、查詢文檔、MongoDB條件操作符
- MongoDB排序、索引、聚合、復制、分片
- MongoDB與java、MongoDB數據庫引用
- java寫一個MongoDB的操作
-
SpringSecurity(二選一)
- 加強URL訪問安全
- 登錄到Web應用
- 驗證用戶
- 加強方法調用的安全
- 做出訪問控制決策
- 處理視圖中的安全性
- 處理領域對象安全性
-
Shiro(二選一)
- 權限基礎
- Shiro 概述
- Shiro 配置基礎
- Permissions
- Authentication
- Authorization
- Role
- 編程授權
- Realm
- Realms的認證實現
- Realms的授權實現
- Spring 集成 Shiro
- Spring 集成 Shiro
- 基於注解的授權
-
WebService
- WebService介紹
- WebService的應用場景
-
WebService
- http協議
- RestFul規范
- postman使用
- spring 實現 RestFul
第四階段
-
億級並發架構演進
架構演進特點大並發架構微服務 -
Linux基礎
文件處理命令權限管理命令幫助命令文件搜索命令壓縮解壓命令命令使用技巧VIM使用軟件包管理用戶和用戶組管理服務和進程基本網絡設置雲服務器搭建和使用 -
搭建tomcat環境
在雲服務器下搭建tomcat和MySQL服務器 -
MySQL主從
MySQL主從和binlog的配置 -
MySQL主從
nginx服務器的優勢nginx服務器配置什么是反向代理什么是負載均衡負載均衡算法構建數十台服務器的負載均衡環境 -
SSL證書配置
為什么使用SSL證書RSA算法、DES算法Let's Encrypt證書申請證書續期 -
keepalived雙活
不間斷服務的重要性keepalived原理OSI七層模型和TCP/IP四層模型配置keepalived服務 -
MySQL高級
ACID和MySQL的實現原理SQL優化技巧MySQL分區Explain分析 -
memcached
MySQL引擎memcached優勢memcached與Java配使用用memcached分布式處理 -
elasticsearch
為什么使用全文索引elasticsearch與solr的對對實時索引分布式elasticsearch寫一個自己的搜索引擎 -
ActiveMQ隊列
隊列應用場景常用的隊列服務器隊列服務器的架設壓力測試Java中使用隊列服務器 -
MyCat分庫分表技術
MyCat介紹分庫分開技術講解其他的數據庫中間件配置與自動分表 -
Rpc和Dubbo
分布式服務框架簡介Dubbo主要核心部件Dubbo-RPC基本功能Dubbo-高級功能遠程方法調用軟負載均衡及容錯機制linux 上 Dubbo 的部署 -
svn & git & Jenkins持續集成
svn介紹svn服務器和客戶搭建配置如何使用svn多人一起進行沖突解決git常用命令git的web hooks為什么要使用持續集成持續集成與git 的web hooks配使使用 -
echarts圖表插件
圖表介紹和選擇什么樣的圖表5分鍾快速上手常用API和模塊移動端自適應 -
UML和常用工具的使用
UML的作用UML常用工具的使用UML的3個要素UML的3個基本構造塊事物是對模型中最具有代表性的成分的抽象5種圖定義UML的應用領域 -
Hadoop
大數據的應用場景Hadoop架設Hadoop單機配置Hadoop偽分布式環境Hadoop集群環境HDFS的使用和配置分治思想分治思想處理數據MadReduce原理MapReduce架設和使用雲服務器上提供的大數據工具 -
億人同時在線的搶票系統
大並發系統的應用大並發系統的分析大並發系統的設計大並發系統的開發手把手帶着學員完成大並發系統 -
綜合項目實戰
15個大型項目選擇各種項目特點分析項目設計項目分組選擇框架后台搭建使用Maven構建項目項目開發壓力測試webhooks項目自動部署面試中常問到的項目問題項目bug收集和解決阿里雲、騰訊雲項目上線項目驗收項目答辯
最后是實戰項目,是時候展現真正的技術了!