怎樣學(xué)習(xí)Java?
一、Java基礎(chǔ)學(xué)習(xí)
包括Java 開發(fā)環(huán)境的搭建、Java語言基礎(chǔ),流程控制,字符串,數(shù)組,面向?qū)ο缶幊袒A(chǔ)、面向?qū)ο蠛诵募夹g(shù),包裝類,數(shù)字處理類,接口、繼承與多態(tài),類的高級特性,異常處理,lambda 表達式,集合類,I/O(輸入/輸出),反射,枚舉類型與泛型,多線程,網(wǎng)絡(luò)通信,數(shù)據(jù)庫操作。
二、Java基礎(chǔ)框架學(xué)習(xí)
Spring 框架
Spring MVC
Spring MVC 是一個模型 - 視圖 - 控制器(MVC)的Web框架建立在中央前端控制器servlet(DispatcherServlet),它負責(zé)發(fā)送每個請求到合適的處理程序,使用視圖來最終返回響應(yīng)結(jié)果的概念。Spring MVC 是 Spring 產(chǎn)品組合的一部分,它享有 Spring IoC容器緊密結(jié)合Spring松耦合等特點,因此它有Spring的所有優(yōu)點。
Spring Boot
Spring Boot是由Pivotal團隊提供的全新框架,其設(shè)計目的是用來簡化新Spring應(yīng)用的初始搭建以及開發(fā)過程。該框架使用了特定的方式來進行配置,從而使開發(fā)人員不再需要定義樣板化的配置。
SpringBoot所具備的特征有:
(1)可以創(chuàng)建獨立的Spring應(yīng)用程序,并且基于其Maven或Gradle插件,可以創(chuàng)建可執(zhí)行的JARs和WARs;
(2)內(nèi)嵌Tomcat或Jetty等Servlet容器;
(3)提供自動配置的“starter”項目對象模型(POMS)以簡化Maven配置;
(4)盡可能自動配置Spring容器;
(5)提供準備好的特性,如指標、健康檢查和外部化配置;
(6)絕對沒有代碼生成,不需要XML配置。
數(shù)據(jù)庫映射框架
Hibernate(開放源代碼的對象關(guān)系映射框架)
Hibernate是一個開放源代碼的對象關(guān)系映射框架,它對JDBC進行了非常輕量級的對象封裝,它將POJO與數(shù)據(jù)庫表建立映射關(guān)系,是一個全自動的orm框架,hibernate可以自動生成SQL語句,自動執(zhí)行,使得Java程序員可以隨心所欲的使用對象編程思維來操縱數(shù)據(jù)庫。Hibernate的API一共有6個,分別為:Session、SessionFactory、Transaction、Query、Criteria和Configuration。通過這些接口,可以對持久化對象進行存取、事務(wù)控制。
MyBatis
MyBatis 是一款優(yōu)秀的持久層框架,它支持定制化 SQL、存儲過程以及高級映射。MyBatis 避免了幾乎所有的 JDBC 代碼和手動設(shè)置參數(shù)以及獲取結(jié)果集。MyBatis 可以使用簡單的 XML 或注解來配置和映射原生信息,將接口和 Java 的 POJOs(Plain Ordinary Java Object,普通的 Java對象)映射成數(shù)據(jù)庫中的記錄。
MyBatis 是支持普通 SQL查詢,存儲過程和高級映射的優(yōu)秀持久層框架。MyBatis 消除了幾乎所有的JDBC代碼和參數(shù)的手工設(shè)置以及結(jié)果集的檢索。MyBatis 使用簡單的 XML或注解用于配置和原始映射,將接口和 Java 的POJOs(Plain Ordinary Java Objects,普通的 Java對象)映射成數(shù)據(jù)庫中的記錄。
每個MyBatis應(yīng)用程序主要都是使用SqlSessionFactory實例的,一個SqlSessionFactory實例可以通過SqlSessionFactoryBuilder獲得。SqlSessionFactoryBuilder可以從一個xml配置文件或者一個預(yù)定義的配置類的實例獲得。
用xml文件構(gòu)建SqlSessionFactory實例是非常簡單的事情。推薦在這個配置中使用類路徑資源(classpath resource),但你可以使用任何Reader實例,包括用文件路徑或file://開頭的url創(chuàng)建的實例。MyBatis有一個實用類----Resources,它有很多方法,可以方便地從類路徑及其它位置加載資源。
三、Web前端基礎(chǔ)知識學(xué)習(xí)
大前端:
HTML、CSS、JavaScript、工具、后端、性能、測試、開發(fā)守則、用戶體驗。
HTML:
HTML語義化、HTML5、DOCTYPE、SEO、Wap、SVG/VML
CSS:
CSS2(布局方式、CSS權(quán)威指南、通用樣式)
CSS3(new selector、new CSS style)
IE通用Bug(雙倍邊距、…)
IE hack方式(條件注釋、CSS hack)
圖片(IE png8透明、css font icon、css spirite、圖片格式與壓縮率的關(guān)系、預(yù)設(shè)值width/height提升性能)
JavaScript:
安全相關(guān)(跨站腳本攻擊)、基礎(chǔ)知識(DOM、兼容性bug、BOM、跨域相關(guān))、Good parts、NodeJS、設(shè)計模式、熟悉一門框架(jQuery/YUI/MoonTool)
新技術(shù)(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òu)建工具(G-build、Google、YUI compressor、uglifyjs)
測試工具
學(xué)習(xí)工具(信息記錄[workflowy.com、EverNote、zootool]、信息獲取[RSS(google reader)、Twitter、新浪微博])
版本管理工具(SVN、git、hg)
四、Java高級技術(shù)
微服務(wù)治理框架
Spring Cloud
Spring Cloud是一系列框架的有序集合。它利用Spring Boot的開發(fā)便利性巧妙地簡化了分布式系統(tǒng)基礎(chǔ)設(shè)施的開發(fā),如服務(wù)發(fā)現(xiàn)注冊、配置中心、消息總線、負載均衡、斷路器、數(shù)據(jù)監(jiān)控等,都可以用Spring Boot的開發(fā)風(fēng)格做到一鍵啟動和部署。
Dubbo
Dubbo是阿里巴巴公司開源的一個高性能優(yōu)秀的服務(wù)框架,使得應(yīng)用可通過高性能的 RPC 實現(xiàn)服務(wù)的輸出和輸入功能,可以和Spring框架無縫集成。
Dubbo是一款高性能、輕量級的開源Java RPC框架,它提供了三大核心能力:面向接口的遠程方法調(diào)用,智能容錯和負載均衡,以及服務(wù)自動注冊和發(fā)現(xiàn)。
主要核心部件編輯
Remoting: 網(wǎng)絡(luò)通信框架,實現(xiàn)了 sync-over-async 和request-response 消息機制。
RPC: 一個遠程過程調(diào)用的抽象,支持負載均衡、容災(zāi)和集群功能
Registry: 服務(wù)目錄框架用于服務(wù)的注冊和服務(wù)事件發(fā)布和訂閱
數(shù)據(jù)庫
MySQL
MySQL 是最流行的關(guān)系型數(shù)據(jù)庫管理系統(tǒng)之一,在WEB應(yīng)用方面,MySQL是最好的 RDBMS應(yīng)用軟件之一。PostgreSQL
PostgreSQL是一個功能非常強大的、源代碼開放的客戶/服務(wù)器關(guān)系型數(shù)據(jù)庫管理系統(tǒng)(RDBMS)。
緩存
Redis
redis是一個key-value存儲系統(tǒng)。和Memcached類似,它支持存儲的value類型相對更多,包括string(字符串)、list(鏈表)、set(集合)、zset(sorted set --有序集合)和hash(哈希類型)。這些數(shù)據(jù)類型都支持push/pop、add/remove及取交集并集和差集及更豐富的操作,而且這些操作都是原子性的。在此基礎(chǔ)上,redis支持各種不同方式的排序。與memcached一樣,為了保證效率,數(shù)據(jù)都是緩存在內(nèi)存中。區(qū)別的是redis會周期性的把更新的數(shù)據(jù)寫入磁盤或者把修改操作寫入追加的記錄文件,并且在此基礎(chǔ)上實現(xiàn)了master-slave(主從)同步。
消息中間件
Kafka
Kafka是一種高吞吐量的分布式發(fā)布訂閱消息系統(tǒng),它可以處理消費者在網(wǎng)站中的所有動作流數(shù)據(jù)。
AcitveMQ
ActiveMQ是一種開源的基于JMS(Java Message Servie)規(guī)范的一種消息中間件的實現(xiàn),ActiveMQ的設(shè)計目標是提供標準的,面向消息的,能夠跨越多語言和多系統(tǒng)的應(yīng)用集成消息通信中間件。