怎樣學習Java?

一、Java基礎學習

包括Java 開發(fā)環(huán)境的搭建、Java語言基礎,流程控制,字符串,數組,面向對象編程基礎、面向對象核心技術,包裝類,數字處理類,接口、繼承與多態(tài),類的高級特性,異常處理,lambda 表達式,集合類,I/O(輸入/輸出),反射,枚舉類型與泛型,多線程,網絡通信,數據庫操作。

二、Java基礎框架學習

Spring 框架

Spring MVC

Spring MVC 是一個模型 - 視圖 - 控制器(MVC)的Web框架建立在中央前端控制器servlet(DispatcherServlet),它負責發(fā)送每個請求到合適的處理程序,使用視圖來最終返回響應結果的概念。Spring MVC 是 Spring 產品組合的一部分,它享有 Spring IoC容器緊密結合Spring松耦合等特點,因此它有Spring的所有優(yōu)點。

Spring Boot

Spring Boot是由Pivotal團隊提供的全新框架,其設計目的是用來簡化新Spring應用的初始搭建以及開發(fā)過程。該框架使用了特定的方式來進行配置,從而使開發(fā)人員不再需要定義樣板化的配置。

SpringBoot所具備的特征有:

(1)可以創(chuàng)建獨立的Spring應用程序,并且基于其Maven或Gradle插件,可以創(chuàng)建可執(zhí)行的JARs和WARs;

(2)內嵌Tomcat或Jetty等Servlet容器;

(3)提供自動配置的“starter”項目對象模型(POMS)以簡化Maven配置;

(4)盡可能自動配置Spring容器;

(5)提供準備好的特性,如指標、健康檢查和外部化配置;

(6)絕對沒有代碼生成,不需要XML配置。

數據庫映射框架

Hibernate(開放源代碼的對象關系映射框架)

Hibernate是一個開放源代碼的對象關系映射框架,它對JDBC進行了非常輕量級的對象封裝,它將POJO與數據庫表建立映射關系,是一個全自動的orm框架,hibernate可以自動生成SQL語句,自動執(zhí)行,使得Java程序員可以隨心所欲的使用對象編程思維來操縱數據庫。Hibernate的API一共有6個,分別為:Session、SessionFactory、Transaction、Query、Criteria和Configuration。通過這些接口,可以對持久化對象進行存取、事務控制。

MyBatis

MyBatis 是一款優(yōu)秀的持久層框架,它支持定制化 SQL、存儲過程以及高級映射。MyBatis 避免了幾乎所有的 JDBC 代碼和手動設置參數以及獲取結果集。MyBatis 可以使用簡單的 XML 或注解來配置和映射原生信息,將接口和 Java 的 POJOs(Plain Ordinary Java Object,普通的 Java對象)映射成數據庫中的記錄。

MyBatis 是支持普通 SQL查詢,存儲過程和高級映射的優(yōu)秀持久層框架。MyBatis 消除了幾乎所有的JDBC代碼和參數的手工設置以及結果集的檢索。MyBatis 使用簡單的 XML或注解用于配置和原始映射,將接口和 Java 的POJOs(Plain Ordinary Java Objects,普通的 Java對象)映射成數據庫中的記錄。

每個MyBatis應用程序主要都是使用SqlSessionFactory實例的,一個SqlSessionFactory實例可以通過SqlSessionFactoryBuilder獲得。SqlSessionFactoryBuilder可以從一個xml配置文件或者一個預定義的配置類的實例獲得。

用xml文件構建SqlSessionFactory實例是非常簡單的事情。推薦在這個配置中使用類路徑資源(classpath resource),但你可以使用任何Reader實例,包括用文件路徑或file://開頭的url創(chuàng)建的實例。MyBatis有一個實用類----Resources,它有很多方法,可以方便地從類路徑及其它位置加載資源。

三、Web前端基礎知識學習

大前端:

HTML、CSS、JavaScript、工具、后端、性能、測試、開發(fā)守則、用戶體驗。

HTML:

HTML語義化、HTML5、DOCTYPE、SEO、Wap、SVG/VML

CSS:

CSS2(布局方式、CSS權威指南、通用樣式)

CSS3(new selector、new CSS style)

IE通用Bug(雙倍邊距、…)

IE hack方式(條件注釋、CSS hack)

圖片(IE png8透明、css font icon、css spirite、圖片格式與壓縮率的關系、預設值width/height提升性能)

JavaScript:

安全相關(跨站腳本攻擊)、基礎知識(DOM、兼容性bug、BOM、跨域相關)、Good parts、NodeJS、設計模式、熟悉一門框架(jQuery/YUI/MoonTool)

新技術(WebWorker、WebSocket、localStorage、Canvas、Audio/Video、SVG、ECMAScript 5、History api、File api、Geolocation API、Drag&Drop、Messaging、Offline cache、其他)

DOM:DOM Traversal、事件、其他、Rang api

BOM:XMLHttpRequest、CSS Object Model、其他

工具:

開發(fā)工具(編輯器、firebug/Web developer、chrome默認工具、fiddler/其他代理工具、jslint/jsdev)

構建工具(G-build、Google、YUI compressor、uglifyjs)

測試工具

學習工具(信息記錄[workflowy.com、EverNote、zootool]、信息獲取[RSS(google reader)、Twitter、新浪微博])

版本管理工具(SVN、git、hg)

四、Java高級技術

微服務治理框架

Spring Cloud

Spring Cloud是一系列框架的有序集合。它利用Spring Boot的開發(fā)便利性巧妙地簡化了分布式系統(tǒng)基礎設施的開發(fā),如服務發(fā)現注冊、配置中心、消息總線、負載均衡、斷路器、數據監(jiān)控等,都可以用Spring Boot的開發(fā)風格做到一鍵啟動和部署。

Dubbo

Dubbo是阿里巴巴公司開源的一個高性能優(yōu)秀的服務框架,使得應用可通過高性能的 RPC 實現服務的輸出和輸入功能,可以和Spring框架無縫集成。

Dubbo是一款高性能、輕量級的開源Java RPC框架,它提供了三大核心能力:面向接口的遠程方法調用,智能容錯和負載均衡,以及服務自動注冊和發(fā)現。

主要核心部件編輯

Remoting: 網絡通信框架,實現了 sync-over-async 和request-response 消息機制。

RPC: 一個遠程過程調用的抽象,支持負載均衡、容災和集群功能

Registry: 服務目錄框架用于服務的注冊和服務事件發(fā)布和訂閱

數據庫

MySQL

MySQL 是最流行的關系型數據庫管理系統(tǒng)之一,在WEB應用方面,MySQL是最好的 RDBMS應用軟件之一。PostgreSQL

PostgreSQL是一個功能非常強大的、源代碼開放的客戶/服務器關系型數據庫管理系統(tǒng)(RDBMS)。

緩存

Redis

redis是一個key-value存儲系統(tǒng)。和Memcached類似,它支持存儲的value類型相對更多,包括string(字符串)、list(鏈表)、set(集合)、zset(sorted set --有序集合)和hash(哈希類型)。這些數據類型都支持push/pop、add/remove及取交集并集和差集及更豐富的操作,而且這些操作都是原子性的。在此基礎上,redis支持各種不同方式的排序。與memcached一樣,為了保證效率,數據都是緩存在內存中。區(qū)別的是redis會周期性的把更新的數據寫入磁盤或者把修改操作寫入追加的記錄文件,并且在此基礎上實現了master-slave(主從)同步。

消息中間件

Kafka

Kafka是一種高吞吐量的分布式發(fā)布訂閱消息系統(tǒng),它可以處理消費者在網站中的所有動作流數據。

AcitveMQ

ActiveMQ是一種開源的基于JMS(Java Message Servie)規(guī)范的一種消息中間件的實現,ActiveMQ的設計目標是提供標準的,面向消息的,能夠跨越多語言和多系統(tǒng)的應用集成消息通信中間件。