javaWeb後端學習記錄

 

java後端學習重點:

1.java語言特性: 基礎知識,集合,多線程,併發,JVM,NIO,網絡編程,設計模式。  (★★★★★)javascript

jdk源碼中有大量的數據結構與java語言細節。jdk源碼着重看concurrent、collection、sort、nio、util。
2.計算機基礎知識: 數據庫(索引和鎖等基礎及sql優化)。網絡(http協議、tcp協議)。數據結構。算法。操做系統。計算機組成原理。   (★★★★★)css

計算機基礎知識和java語言細節。是最最重要的。須要重點學習。五年甚至十年後都有用。html

框架每隔幾年就會更新換代,可是基礎知識是永遠有用的。前端

80%的時間用來學習基礎知識,20%的時間學習框架。vue

3.Web框架。分佈式架構。html5

必備:Spring,Mybatis,SpringMVC,Mybatis-plus,SpringBootjava

經常使用:分佈式架構。分佈式理論。集羣。分佈式緩存Redis。SOA架構Dubbo。遠程調用RPC。分佈式服務協調Zookeeper。消息隊列KafKa 。微服務架構SpringCloud。分佈式事務。node

可選:搜索引擎ElasticSearch。容器Docker。分佈式數據庫分庫分表Mycat  。分佈式Session。分佈式存儲。分佈式鎖。mysql

邊實戰邊理解原理。最重要的是理解原理。用過不少框架,可是不懂原理,那也是無用的。(★★★★)react

好比學習Redis,就得知道Redis經常使用數據結構、Redis事務、備份方式、回收策略、主從同步、哨兵模式,Redis集羣。  

閱讀spring、springMvc等框架源碼、或者是其餘第三方庫源碼。Spring源碼主要是體會設計模式的運用。

4.深刻理解設計模式。最重要的是理解編程思想。 (★★★)
理解Tomcat,Nginx等服務器原理,mysql事務隔離與鎖機制,sql優化,數據庫引擎InnoDB原理 , nosql型數據庫原理等

5.其餘進階知識:linux、mongodb、nginx、netty、tomcat、sql優化  (★★★★)
6.前端基礎JavaScript、html、Css、Ajax、JQuery。    (★★★)
中小型公司常常要求後端開發也要會一點前端。簡單夠用就行。非重點。

java後端架構師技術圖譜: https://github.com/xingshaocheng/architect-awesome

書籍:

java語言:《java編程思想》、《Effective Java》、《碼出高效》、《Java性能優化權威指南》、《java併發編程實戰》、《深刻理解Java虛擬機》

SSM:《Java EE互聯網輕量級框架整合開發 SSM框架》、《精通Spring企業應用開發實戰》、

設計模式:《Head First 設計模式》、《大話設計模式》

分佈式理論:《大型分佈式網站架構設計與實踐 》、《大型網站技術架構:核心原理與案例分析》、

《大型網站系統與Java中間件實踐》

分佈式中間件:《從Paxos到Zookeeper  分佈式一致性原理與實踐》、《Redis設計與實現》、《Redis開發與運維》、《kafka實戰》、《kafka權威指南》

微服務:《SpringCloud微服務實戰》

網絡 :《圖解Http》、《HTTP權威指南》、《tcp/ip詳解 卷1、2、三》、《網絡是怎樣鏈接的》、《圖解Tcp/ip》

數據庫:《mysql必知必會》、《MySQL技術內幕 InnoDB存儲引擎》、《高性能MySQL》

操做系統:《linux鳥哥的私房菜》

計算機組成原理:《深刻理解計算機系統》、

代碼規範:《阿里巴巴java開發手冊》、《代碼整潔之道》、《重構 改善既有代碼的設計 》

其餘:《程序員修煉之道》、《碼農翻身》、《代碼大全》、《人月神話》、《黑客與畫家》

學習方法:

0.每週完成一個 ARTS:每週至少作一個 leetcode 的算法題、閱讀並點評至少一篇英文技術文章、學習至少一個技術技巧、分享一篇有觀點和思考的技術文章。(也就是 Algorithm、Review、Tip、Share 簡稱 ARTS)堅持至少一年。

1.項目經驗!!以戰養戰!動手作項目!

項目驅動型學習。只有親自動手作,才能掌握技術。沒有動手作,就算看十遍也不必定會理解的。

將項目放到GitHub,堅持commit。。
2.常常進行CodeReview。經過審覈,重構代碼,在反饋中不斷進步。
3.多讀源碼 ,理解技術原理。要帶着疑問去讀源碼,不要爲了讀源碼而讀源碼。

問題驅動型學習。好比當工做中或者面試時遇到問題均可以記錄下來,而後帶着這些問題去學習。

jdk源碼中有大量的數據結構與java語言細節。jdk源碼着重看concurrent、collection、sort、nio、util。

閱讀spring、springMvc等框架源碼、或者是其餘第三方庫源碼。Spring源碼主要是體會設計模式的運用。

也能夠去GitHub下載一些優秀的項目,閱讀源碼。
4.多看好書,書籍的知識是系統知識,而不是碎片化知識。

邊看書,邊實踐,再查閱相關博客,總結提升。看視頻也能夠。
5.csdn回答問題,收集疑問,整理並系統化知識.

6.花一個月時間解答面試題。多看牛客網。

在leetcode、codewars刷題。刷題能夠分Topic刷,好比鏈表、棧、隊列、樹、排序等。刷題經過筆試纔有機會進入比較好的公司。。
7.多看官方文檔,官方文檔的內容是最準確的。最好將官網的代碼敲一遍。

網絡上其餘的資料大可能是二手貨,並且還不必定是正確的。
8.每隔幾個月,查看招聘網站的 java開發/架構師 的工做要求,技術棧。

面向就業學習。若是學習的內容不是企業所須要的,那找工做會比較麻煩。
9.閱讀ImportNew、InfoQ等公衆號,拓展視野。
10.分清哪些是最主要的技術。抓重點。下班後分配更多的時間學習。有些技術是很容易過期的。
11.使用網站或其餘產品的時候,多思考實現和原理。模仿其餘知名網站的。本身寫一下。
12.提升調試技巧。

13.刻意學習。

java學習路線 : http://www.javashuo.com/article/p-zbhxtycd-gy.html
 =======================================================================

碎片時間:

下班前或者睡覺前的 20分鐘之內的時間。

只有系統時間才適合提升技能。碎片時間只適合瞭解、整理碎片知識。。

能夠規劃學習進度,閱讀微信公衆號,整理有道筆記,瀏覽掘金文章,閱讀"待閱"文章。

閱讀《程序員修煉之道》、《碼農翻身》、《黑客與畫家》等書籍。

======================================================================

如何親自動手寫項目?
有需求才有想法思路而後在寫項目,空寫確定不行,去網上找個需求寫就是了.
要麼你本身去網上找別人的畢業設計或者是課程設計慢慢練手。或者是你本身根據你本身所想的構造一個需求。而後去作就是了。

你已經看了項目,那你就知道項目的結構是啥樣的。遇到問題去查去問就是了。沒那麼難。重要的是你本身要走出那一步。
寫不出前端代碼,也能夠去網上找模板。先模仿後創新。

====================================================================

大中型公司須要專業人才,小公司須要全才,可是對於我的職業發展來講,建議是分開。
對於後端java工程師:
把精力放在java基礎,設計模式,jvm原理,spring+springmvc原理及源碼,linux,mysql事務隔離與鎖機制,mongodb,http/tcp,多線程,分佈式架構(dubbo,dubbox,spring cloud),緩存,消息隊列,彈性計算架構,微服務架構(springboot+zookeeper+docker+jenkins),java性能優化,以及相關的項目管理等等。
後端追求的是:三高(高併發,高可用,高性能),安全,存儲,業務等等。
對於前端工程師:
把精力放在html5,css3,jquery,angularjs,bootstrap,reactjs,vuejs,webpack,less/sass,gulp,nodejs,Google V8引擎,javascript多線程,模塊化,面向切面編程,設計模式,瀏覽器兼容性,性能優化等等。
前端追求的是:頁面表現,速度流暢,兼容性,用戶體驗等等。
術業有專攻,這樣你的核心競爭力纔會愈來愈高,正所謂你往生活中投入什麼,生活就會反饋給你什麼。而且兩端的發展都愈來愈高深,你想什麼都會,那你畢竟什麼都不精。
經過將team分紅先後端team,讓兩邊的工程師更加專一各自的領域,獨立治理,而後構建出一個全棧式的精益求精的team。

========================================================================

面向就業編程

51job、智聯,瞭解企業最須要的技術,每隔一段時間,重點概括:

201805重要技術棧以下:
1.多線程,IO,NIO,集合,網絡編程。併發編程
2.Spring,Redis,Dubbo,消息隊列,zookeeper,SpringBoot,SpringCloud。Soa架構,微服務架構。分佈式架構。

========================================================================
(已淡化安卓方面的學習,着重web開發)
安卓學習計劃:
0.多寫幾個項目,模仿知乎app,支付寶等,
1.開源庫:Gson、volley、okhttp、Fresco、Glide、retrofit 、dagger2 、rxjava 、eventbus
2.重看《Android編程權威經典》,學習《藝術探索》。多看郭霖、hongyang、任宇剛大神的博客
3.拆輪子,研究開源庫的源碼,或本身造個輪子

安卓經常使用的技術:
網絡編程,json和xml解析,繪圖原理,動畫,事件機制,自定義View,數據存儲,開源框架,
四大組件原理,UI控件(RecycleView,TabLayout等),Material Designs
=========================================================================

階段性總結:

201805 :

反思一下本身的動手能力。老大交給我一個很簡單的任務。。我作了兩個月,結果讓她很不滿意。唉。。我仍是太菜了。

201810:  

搭建zk集羣,redis集羣,kafka集羣,dubbo等,各類java中間件的demo。邊實戰邊理解原理。(基礎部分完成)

白天《redis實現》,晚上《從Paxos到Zookeeper  分佈式一致性原理與實踐》。(已完成)

201812:

工做最重要的仍是"出活"。多作項目。多實踐。

目前在學習分佈式和微服務。。純潔的微笑、程序員DD的博客。

書籍  《大型分佈式網站架構設計與實踐 》、《SpringCloud微服務實戰》、《碼農翻身》

實戰方面:SpringBoot、SpringCloud項目。博客,論壇,購物網站等等。

 

============================================================================

假如生活欺騙了你,
不要悲傷,不要心急!
憂鬱的日子裏需要鎮靜:
相信吧,快樂的日子將會來臨!
心兒永遠嚮往着將來;
如今卻常是憂鬱。
一切都是瞬息,一切都將會過去;
而那過去了的,就會成爲親切的懷戀。
===================================================================

2月28號--3月10號

主要溫習一下工做中經常使用的基礎知識。

1.Mybatis多表查詢、手寫比較複雜的Sql、Mybatis-plus

2.java8的Lambda表達式以及時間日期api,還有guaua包、HttpClient

3.實戰類:《阿里巴巴java開發手冊》、《Maven實戰》

理論類:《Redis設計與實現》、《高性能Mysql》

4.堅持刷題。

5.SpringCloud服務熔斷和降級。

6.linux安裝mysql、tomcat、nginx。

 

12月10---2月9號

1.牛客網作筆試題,看面試題。java基礎,集合,多線程,併發,jvm,spring,網絡,數據庫,分佈式。。一個接一個模塊看。

二、LeetCode天天刷題。《劍指offer》。手寫鏈表、樹、排序、查找等算法。

3.閱讀jdk集合(HashMap、ArrayList、TreeSet)、併發(線程池、ConcurrentHashMap、ExecutorService)等源碼。

4.《碼出高效》、《java併發編程實戰》、《深刻理解java虛擬機》、《大型分佈式網站架構設計與實踐 》、《阿里巴巴java開發手冊

5.Git、Dubbo、Mybatis-plus

 

2月12號

1.線程池源碼。線程池的實現原理。

1月22號

1.kafka的理解。

2.若是有看過Spring的相關源碼,能更好地理解IOC,AOP,還有其餘不少設計模式。

3.Spring的底層原理,還有Mysql的底層原理,這兩部分有所欠缺。

1月18號

1.溫習下sql優化。鎖。索引。

1月15號

1.準備看《mysql必知必會》、《MySQL技術內幕 InnoDB存儲引擎》

1月3號

1.Spring的上下文機制、循環依賴等面試題。

2.在白紙上手寫設計模式。

1月2號

1.linux查看端口占用,linux查看日誌並搜索。

12月7號

1.牛客網作筆試題。jvm等方面。

2.ConcurrentHashMap源碼。

12月5號

1.ArrayList源碼、LinkedList源碼。

12月2號

1.HashMap等集合的源碼

2.LeetCode刷題。

11月29號

1.postman傳遞json給後臺。

11月28號

1.後臺解析formData類型。。

2.@RequestBody的做用。用於解析application/json數據。。

11月27號

1.在springBoot中使用validator校驗數據。。

@Validated:能夠用在類型、方法和方法參數上。可是不能用在成員屬性(字段)上

@Valid:能夠用在方法、構造函數、方法參數和成員屬性(字段)上

2.jquery使用formData發送對象給後臺 。

3.Leetcode刷題 。。

11月26號

1.整理消息隊列的資料。

11月24號

1.kafka生產者成功發佈消息,消費者監聽訂閱,成功接收。

 11月21號

1.maven使用assemly打包jar包。

 2.lettCode刷題。。複習jdk集合的數據結構

11月19號

1.使用jedis操做集羣。

2.linux安裝kafka

11月18號

1.leetCode刷題。

11月15號

1.redis集羣,刪除節點後從新將節點加入集羣,出現錯誤。

11月14號

1.redis集羣的哈希槽、分片。

2.準備搭建zk集羣。過幾天再整合dubbo和zk。。

11月13號

1.成功搭建redis集羣。

2.爲何我在redis集羣的一個節點寫入數據,它把個人數據存放到另外一個節點。。查詢的時候也是轉到另外一個節點。好奇怪。。

查資料才知道原來這個是分片。

11月12號

1.Jedis鏈接池JedisPoolConfig的配置不太熟悉。最大空閒數、最大鏈接數。一直報錯。

2.linux配置靜態ip。

3.接下來準備搞下redis集羣、zookeeper集羣。。完成後再去弄kafka集羣。

11月9號

1.zk序列化,而後獲取節點數據。

2.zk節點數據亂碼。。須要自定義序列化類。

11月8號

1.zookeeper相關jar包zkClient的api例子。

11月6號

1.redis在linux中的配置、部署及啓動。

2.修復VmwareTools。須要用rpm處理依賴包

3.idea打包jar包放進linux,運行出錯。pom.xml中的main()方法要寫完整路徑。

11月1號

1.沒有集中精神,效率好低。。折騰了一會,裝幾臺linux。

10月30號:

 1.redis主從同步,哨兵模式。

2.zookeeper經過java api查詢節點數據。

10月29號

1.redis備份和內存回收策略。

10月26號

1. zookeeper,redis的java相關例子。

2.學習SpringCloudStream,消息驅動微服務。。因爲對MQ還不夠熟悉,看了有點蒙。

10月25號

1.準備深刻學習zookeeper,redis。

2.加深一下springCloud的理解。

3.eureka-server高可用註冊中心集羣,存在多個註冊中心,彼此互相註冊,某個註冊中心失效時,還有其餘註冊中心可用。

10月24號

1.安裝家裏電腦的虛擬機,vm tools,還有jdk。。準備下一步裝zk,kafka。

10月22號

1.瞭解一下Http的無狀態機制。狀態信息存儲在cookie和session。

2.作一下驗證碼功能、再作個導入導出excel和打印功能。

10月17號

1.網絡編程。TCP,UDP協議的比較。。TCP三次握手。

10月16號

1.NIO的Buffer,Channel,Selector的相關api及理解。

10月12號

1.簡單瞭解下NIO,BIO,AIO。

10月10號

1.SpringActutor進行監控。查看狀態信息,還能夠查看線程狀態,jvm堆狀態。

10月9號

1.接下來打算了解下NIO。

2.給家裏的臺式電腦裝Linux環境。

3.jdk動態代理,代理對象調用方法時,爲何會觸發InvocationHandler的invoke()方法?

遇到api細節,有不懂的地方就查資料,看源碼。

10月1號

1.寫下session和cookie的代碼塊。

2.繼續研究SpringBoot的一系列博客進行實踐。

SpringBoot書箱《Spring Boot實戰》、《JavaEE開發的顛覆者:Spring Boot實戰》、《SpringBoot揭祕:快速構建微服務體系》

9月28號

1.瞭解一下zookeeper的原理。

2.重溫一下jdk、cgLib動態代理。Method的invoke() 的理解。

9月27號

1.保存在內存和保存在磁盤有什麼區別?

2.kafka的組件。。

9月26號

1.kafka配置成功。準備整合一下SpringBoot和kafka。

9月25號

1.簡單瞭解一下kafka和rabbitMQ。。打算學一下kafka。

2.kafka依賴於zookeeper。。成功配置zk。

9月24號

1.配置eureka-server集羣。

2.maven命令。package是把jar打到本項目的target下,而install時把target下的jar安裝到本地倉庫,供其餘項目使用.

3.在Idea中,使用maven進行clean時,一直出錯。

 Failed to execute goal org.apache.maven.plugins:maven-clean-plugin:2.6.1:clean (default-clean)

9月21號

1.SpringCloud斷路器Hystrix、服務網關Zuul。

9月20號

1.jvm的Class類文件結構。。全是概念。看了好迷糊。

9月18號

1.修改SpringCloudConfig分佈式配置中心的bug。。

9月13號

1.搶紅包,秒殺系統的內部細節是怎樣的,高併發,計數器,信號量?

2.Redis單線程單進程,爲何支持併發?

採用多路 I/O 複用技術可讓單個線程高效的處理多個鏈接請求

9月12號

1.feign做爲客戶端進行服務消費。

9月11號

1.eureka。服務提供者,服務消費者。

2.數據庫隔離級別。

9月6號

1.eureka。註冊和管理服務。

2.maven生命週期。

9月5號

1.準備學習一下微服務。springCloud。

2.繼續看《深刻理解java虛擬機》。。

3.思考一下真正的編程能力是什麼?

9月3號

1.java內存模型。。

2.初步瞭解分佈式。

8月31號

1.HashMap的底層原理。

2.Java內存模型。

8月30號

1.反向代理?究竟是什麼?

反向代理方式,是指以代理服務器來接受internet上的鏈接請求,而後將請求轉發給內部網絡上的服務器,並將從服務器上獲得的結果返回給internet上請求鏈接的客戶端,此時代理服務器對外就表現爲一個反向代理服務器;

正向代理是經過代理服務器去發起請求,好比咱們平常說的"fan牆"。。反向代理則是接受請求。

8月29號

1.json顯示亂碼。。

2.看《併發編程》。理解不是很透徹。

8月25號

1.mybatis對查詢頁面和分頁頁面進行查詢。。

8月24號

1.準備繼續作項目。要"出活"。。

2.看下AQS、ReentrantLock、Semephore的源碼實現。。

3.整合分頁頁面和查詢頁面。。再看下摺疊的側欄菜單。

8月23號

1.JUC中各類同步器、鎖、容器的源碼是如何實現的?看得好吃力。有點難理解。

2.js的bind()、find()、each()等方法。hover。

js二級聯動。自動補全。

3.繼續閱讀rsbc項目。

8月22號

1.併發原理。AQS。AbstractQueueSynchronizer。這是一個基礎同步器,ReentrantLock、CountDownLatch都是依靠AQS實現的。

2.ABA問題?

8月21號

1.虛擬機和Idea有衝突。。在Idea內進行復制,而後打開虛擬機會崩潰。

2.360也和虛擬機有衝突。。360有時會對防火牆進行干預,致使虛擬機出錯。

3.阿姆達爾定律。不可併發的部分進行代碼優化,能夠併發的經過多個cpu處理。

8月20號

1.bootstrap的柵欄佈局太麻煩了。。左邊距常常出現誤差。下邊距又太大。功能強大,能夠用來適配不一樣的設備。

2.bootstrap的表單控件。

8月17號

1.idea靜態資源更新不及時。。太坑了。

8月16號

1. 黑馬程序員--品優購電商系統開發。下載,準備學習。

8月15號

1.線程的狀態轉換。包括新建new,運行runnable,等待waiting,限時等待timed waiting,阻塞block ,結束terminated

2.jvm的Happens-Before。

3.讀《深刻理解java虛擬機》。

8月13號

1.如何用Html優雅地顯示多個空格?

2.java內存模型中的"有序性"到底是指什麼?

8月10號

1.模仿淘寶或者天貓,寫一些基礎的界面。增強一下前端基礎。作後臺,仍是得會一點點前端的。

8月9號

1.非阻塞算法。AtomicInteger。CompareAndSet。

2.重排序。Happens-Before。知足Happens-Before原則的,具備有序性。

8月8號

1.準備學習Jvm。

2.SpringCloud、Duobbo,選擇其中一個進行學習。

3.阻塞算法:BlockingQueue  ,非阻塞的數據結構:AtomicInteger,AtomicBoolean等等。

8月7號

1.在SpringBoot中使用Redis。

2.配置logback日誌。

3.準備學習一下AQS。

8月6號

1.hash表也稱散列表(Hash table),是根據關鍵碼值(Key value)而直接進行訪問的數據結構。

也就是說,它經過把關鍵碼值映射到表中一個位置來訪問記錄,以加快查找的速度。

2.Redis的事務機制。

8月1號

1.redis的發佈/訂閱。

7月31號

1.同事幫我寫了個爬蟲。。原來2小時的重複工做,5分鐘就搞定了。好犀利~我要向大神學習。

2.redis。。支持多種數據類型。

7月30號

1. 死鎖:死鎖是兩個或更多線程阻塞着等待其它處於死鎖狀態的線程所持有的鎖。死鎖一般發生在多個線程同時但以不一樣的順序請求同一組鎖的時候。

Thread 1 locks A, waits for B 。 Thread 2 locks B, waits for A

7月27號

1.Condition進行線程等待,喚醒線程。

7月26號

1.可重入鎖ReentrantLock。讀寫鎖ReadWriteLock。

7月25號

1.java core learning example.

2.java之juc代碼實踐。

7月24號

1.mybatis的N+1問題,以及延遲加載。

2.java併發中的各類鎖。。lock(),unlock()方法。

3. CountDownLatch ??閉鎖的做用是什麼?

CountDownLatch能夠實現計數器效果,讓某個線程等待其餘線程執行完了再執行。

7月23號

1.下週,準備寫個SpringBoot的項目,先後端都本身折騰。

7月19號

1.看書。《Java EE互聯網輕量級框架整合開發 SSM框架和Redis實現》

2.copyOnWrite,寫時拷背。能夠實現讀寫分離。

7月18號

1.mybatis中的一對多、多對多關聯查詢。經過<collection>實現。

2.ExecuteService繼承自Executor接口。主要是execute()方法。

7月16號

1.git stash的理解。

2.final關鍵字的進一步理解。

7月13號

1.繼續完善CrmSsm的項目。。

2.同步鎖,可重入鎖,異步鎖,自旋鎖??

7月12號

1.mybatis的延遲加載?

延遲加載:先從單表查詢、須要時再從關聯表去關聯查詢,大大提升數據庫性能,由於查詢單表要比關聯查詢多張錶速度要快。

<association>中添加select選項就能夠指定延遲加載的dao層方法了。

2.Spring的@transactional註解。事務性。

7月11號

1.ConcurrentHashMap。能夠一邊更新一邊遍歷。

7月10號

1.idea熱部署。

2.溫習過濾器Filter,還有監聽器Listener.

7月9號

1.多線程中的wait()和notify()方法。。

7月5號

1.ORM,也就是對象關係映射。

2.Spring中的攔截器,能夠經過繼承HandlerInterceptorAdapter這個適配器來實現

爲何<mvc:interceptors>無法攔截成功,哪裏配置錯誤 ?

3.如何理解Spring中的攔截器要經過動態代理來實現 ?

在動態代理中,一個代理類,能夠對應多個主題類。

7月4號

1.js的dom節點的理解 。

$(this).children()

7月2號

1.線程的interrupt()方法。

6月27號

1.mybatis一對一,一對多,還有關聯查詢?association,collection。

6月26號

1.Thread.yield( )方法:暫停當前正在執行的線程對象,並執行其餘線程
8.wait和sleep的區別在哪裏?調用sleep方法的線程不釋放鎖,但調用wait方法的線程釋放鎖。
9.Thread.join()方法:存在一個線程A,如今插入線程B,要求B先執行完畢,而後再繼續執行線程A。

6月25號

1.準備將項目裏的jdbc重寫成mybatis。。

6月21號

1.mybatis的一些配置。sqlSession,sqlSessionFactory??究竟是啥,如何理解?

2.AbstractRoutingDataSource的理解。

6月15號

1.ThreadLocal類?ThreadLocal管理對象,保證對象在各個線程中的惟一性。

6月14號

1.《java併發編程實戰》作筆記。

6月13號

1.最近學習好混亂。。一會折騰下這個,一會折騰那個。沒什麼效果。

2.mybatis中的sqlSessionFactory。。理解。

6月12號

1.mysql 中left join的效率好低啊。。

2.某個表創建索引後,查詢速度快不少,可是插入速度會慢不少。

3.繼續學習多線程、併發。

 6月11號

1.mybatis如何進行多表聯合查詢?還有,對於mybatis中一對1、一對多的理解。

2.準備着手Dubbo、Redis。

6月7號

1.maven將全部依賴和項目打包,老是出錯。。

2.流行的ORM框架Mybatis 和 hibernate ,他們之間的優缺點是什麼?Mybatis比較靈活,能夠手寫sql。Hibernate還須要寫hql。

3.Mybatis傳遞參數$和#的區別是什麼?至關於Statement和Preparedment,#{}會自動判斷並決定是否給參數加上引號。

6月1號

1.如何快速讀懂/理解一個項目?

5月31號

1.仔細看老大給個人三個項目。。還要寫完那個沒完成的ssm.

5月30號

1.不少linux命令都生疏了。。

5月24號

1.感受我對ssm框架的實踐運用,仍是不夠。

5月23號

1.全部的異常都直接throws Exception,其實不太好,try catch又不優雅, 如何改進?

2.爲何要使用線程池?由於線程的建立比較費時,經過線程池能夠先建立好線程,要使用時直接從線程池裏取出,提升效率。

3.SpringMvc的後綴配置。dispatchServlet和集成mvc的xml配置中都有後綴配置,具體的區別在哪??

dispatchServlet是決定處理那些後綴的url,而xml配置是給controller層返回的視圖加上固定的後綴

5月22號

1.多瞭解一些java經常使用的工具類。

2.mybatis傳遞多個參數,後面幾個參數變成了問號?? #{}和 ${}不能夠混用。

5月11號

1.sql語句不熟悉。。只會些基礎的。不要太依賴dba,有空仍是得本身多深刻下。

5月10號

1.java普通類如何調用Spring的Service層方法?爲何老是報空指針?

2.mybatis鏈接多個數據源。

3.任務調試quartz。

5月9號

1.mysql去重查詢、統計。

5月8號

1.差點被本身坑了。。Git有些命令理解不到位。

2.String[]類型,比較List類型。。

5月7號

1.生產環境,怎麼部署、運行打包好的jar? 能夠經過maven打包。。

2.mybatis,如何一對多,多對多? mybatis在某個數據庫的mapper文件中如何聯表查詢?

3.mysql 如何查詢分組後各個組的數量?

5月4號

1.有空能夠讀一下分頁插件pageHelper的源碼。

2.IDEA熱部署。。不重啓Tomcat直接刷新頁面就能夠了。

5月3號

1.@Autowired沒法生效,只能@Resource能夠。。在Idea裏面,爲何會有這種奇怪的錯誤呢?

修改一下警告級別就能夠了。

4月28號

1.多個線程往同一個文件寫入數據,不會形成數據紊亂。。由於io句柄只有一個,是線程安全的。

2.相對路徑讀取文件。getResource();

4月27號

1.在多線程中,頻繁鏈接數據庫,致使出錯。

探索多線程使用同一個數據庫connection的後果

2.數據庫鏈接池dbcp、druid、 hikaricp。

4月20號

1.前端如何獲取後臺的存儲在session或者是request裏面的值?

4月17號

1.cglib動態代理仍是不太理解。

 4月16號

1.爲何在aop註解配置中,經過實現類Autowired會報錯呢?jar包衝突。

2.@Service放在接口上面跟放在實現類上面有什麼區別?只能放在實現類上。

 4月12號

1.運行的aop例子中,爲何只有前置通知,沒有後置通知?註解。

4月11號

1.內存泄露問題,如何處理?

4月10號

1.Spring AOP,代理模式,反射。。AOP的理解不透徹。

4月8號

1.SOA架構究竟是啥?面向服務架構。

2.union聯合多個表進行查詢。

3月29號

1.varchar和char的區別是什麼?varchar長度可變

2.外鍵foreign key 怎麼用?一個表的字段對應另外一個表的主鍵

3.inner join  怎麼用?根據兩個表的列之間的關係進行查詢。

3月28號

1.SpringBoot集成Mybatis老是不顯示日誌。並且classpath路徑老是出錯。。

折騰了半天,原來是少寫了根目錄/ 。。好低端

3月27號

1.Git Stash 

3月25號

1.salt鹽值。Md5加密。

3月20號

1.idea自動生成的html5文件裏的meta竟然是不完整的。。好坑。。

3月19號

1.配置Shiro,進行權限管理

3月16號

1.嘗試理解CgLib動態代理的原理。

2.SpringBoot單元測試的註解。。糾結了半天原來是maven的依賴版本有衝突。。

3.Mybatis跟實體類映射時,若是字段個數不一致是如何處理的?查詢結果爲多個,那麼返回的是List嗎?

3月15號

1.進行SpringBoot的單元測試。

3月14號

1.回想起一年半前,依賴都是一個個手動導入,測試類也是手動寫,代碼在公司和家裏拷來拷去,以爲好可笑。。哈哈

3月13號

1.爲何在Controller層自動裝配服務層,老是會提示出現兩個bean?必定得用實現類實例化嗎?

依賴注入@AutoWired和@Resource的運用。

3月12號

1.搭建SpringBoot框架。

3月8號:

1.準備總結一下shiro權限控制的用法

3月6號

1.回顧Spring的依賴注入原理。仍是挺簡單的。

3月5號

1.泛型<T>做爲返回類型<T> String 。

3月1號

1.xml的元素、節點、屬性解析。

2月27號

1.溫習下解析xml、解析json。。

2月1號

1.瞭解SpringCloud的註解@FeignClient

1月31號

1.在Github上傳反射的Class,Field,Method代碼。

2.寫關於Spring事務的博客。。

1月23號

1.動手寫一下反射代碼。溫習下動態代理。

1月22號

1.SpringBoot緩存。能夠經過開源框架Ehcache進行緩存,註解實現。

1月18號

1.事務隔離級別,傳播行爲。包括髒讀取、重複讀、幻讀。

1月17號

1.動態代理。

2.反射,InvocationHandler,Proxy代理類。

1月12號

1.在Spring中使用JUnit。

2.序列化和反序列化

3.SpringBoot中使用redis。

1月11號

1.<h1 th:inline="text">Hello [[${#httpServletRequest.remoteUser}]]!</h1> 這是什麼意思?ThymeLeaf引擎模板。

1月9號

1.Serializable序列化,如何運用?存儲和傳輸文件。

2.重溫單例模式。產生疑問:

爲何要用static?爲何要判斷等於null才實例化?爲何要加同步鎖?

1月8號

1.redis的使用。經過RedisTemplate、ValueOperations進行增刪改查。

2.工廠方法模式,抽象工廠模式

1月3號

1.設計模式。簡單工廠、抽象工廠模式。

2018年1月2號

1.Synchronized同步鎖

12月22號

1.先後端分離?

2.溫習一下枚舉

12月21號

1.mybatis的resultMap、resultType區別。

2.mybatis返回的結果集是全部City的集合,而不是cityName對應的集合,存在Bug,如何修改?

url路徑和參數有問題,跳轉到了另一個Dao層的方法裏。

12月20號

1.postman發送請求。

2.SpringBoot的相關注解。

3.準備學習下Mybatis 分頁插件 PageHelper

12月15號

1.學習redis。鍵值對數據庫

12月13號

1.sychronized關鍵字。在java源碼中大量運用。

12月12號

1.實現jQuery的autoComplete。

2.springBoot配置mvc先後綴.

12月7號

1.js點擊彈出下載框如何實現?zip下載. ResourceEntity

2.jQuery事件綁定

3.提交數據,ajax異步刷新

12月6號

1.溫習一下異常處理。自定義異常。

2.家裏的項目,同步公司電腦的項目,有些maven包不兼容。。

3.如何避免大量的if(str!=null) {}?在方法的內部先處理好,外部類調用時就不用煩瑣地規避空指針。

12月5號

1.Shiro框架。AuthenticationInfo表明了用戶的角色信息集合,AuthorizationInfo表明了角色的權限信息集合。

12月4號

1.aop示例的返回值bug

2.NameMatchMethodPointcutAdvisor通知類如何應用?

3.一邊查資料。一邊看jdk源碼。。終於有點進展了。看明白了點BufferedOutputStream。

爲何說字符流纔有緩存區,字節流裏貌似也用到了緩存?

12月1號

1.重溫Spring的依賴注入。

11月27號

1.準備重溫一下攔截器。

2.web做用域page、request、session、application

3.shiro框架的權限管理

11月24號

1.如何理解ThreadLocal類?

11月23號

1.如何釋放無用的對象、集合?
2.數據量比較大如何排序,好比1G的數據,怎麼快速排序?

3.阿里巴巴插件,編程規範錯誤提示。
4.裝箱類型。。集合和反射爲何要使用裝箱類型?

11月22號

1.將文件中的某些數據代換爲數據庫內查詢結果。

2.經過StringBuilder拼接字符串性能較好。

11月21號

1.研究一下IO流的細節,有空能夠看下jdk的IO包源碼

2.準備深刻多種排序的細節

11月20號

1.Collections.sort()進行集合的排序。

2.如何用compareTo()比較多個屬性進行排序?Collections.sort()

 3.github裏面javaDemo的代碼,須要重寫。去除大量無用的main()方法.

11月10號

1.接下來準備學習下jQuery的遍歷。

11月8號

1.閱讀MultipartFile源碼.

2.輸入流(InputStream)、輸出流(OutputStream)。字節流、字符流。

FileOutputStream,若是文件不存在,會自動建立。路徑不存在,則會報錯找不到文件。

3.timeStramp和date,datetime的區別。

11月7號

1.aquery實現頁面功能,ajax異步刷新頁面.

2.ajax進行get操做時,傳輸的data可否是json?

3.隊列的實現

11月6號

1.文件上傳MultipartFile上傳文件

11月2號

1.mybatis進行limit操做時,傳輸參數的格式?   limit #{param1} , #{ param2 }

2.html如何獲取js函數的返回值?

3.web程序,如何進行單步調試? 設置斷點

 

10月31號

1.分頁操做。

10月23號

1.鏈表,增刪改查。

10月17號

1.jQuery獲取、改變元素內容

2.線性數據結構。

10月15號

1.繼續jQuery。

10月13號

1.下載webStrom。溫習下基礎的js。

10月12號

1.學習下w3c的JQuery.10月10號1.學習SpringBoot項目9月14號1.這幾天在gitHub看項目。簡易博客,教學系統9月3號1.最近幫忙統計業務的異常狀況。讀取多個excel,而後計算數量。。8月24號1.寫博客。java數據類型轉換.poi使用.8月15號1.如何修改mapper.xml文件,進行sql語句編寫?2.進行帳號驗證等功能.8月12號開始嘗試用ssm進行增刪改查~8月11號終於把ssm項目給跑起來了。繼續學習!!8月8號初步接觸ssm框架。無法整合spring和mybatis7月31號創建maven項目後,如何自動生成spring等配置文件?7月26號1.spring的面向切面編程中,攔截器爲何要用到proxyfactorybean?代理模式。。7月25號1.這周工做太忙了。都沒怎麼學習。7月18號完成圖書的展現。接下來準備使用分頁,將各本圖書的信息分紅幾頁展現。再繼續學習《web整合開發》中的spring內容。7月14號1.將圖書管理系統加入Struts2框架。。下週準備進行book表的圖書展現。7月11號1.溫習一下static的做用.7月7號7月6號1.圖書管理系統,註冊新用戶。hibernate插入數據。7月5號1.最近工做好忙。沒什麼時間學習。6月29號1.思考spring的依賴注入。6月27號1.建立了數據表,開始嘗試用hibernate進行6月21號log4j爲何不能在servlet裏面打印log呢?servlet怎麼調試?(代碼沒有進入servlet裏面,因此沒有打印log)6月20號爲何servlet重定向時,須要用迴應(resp)來調用,而不是請求(req)呢?6月19號工做實在太忙了。白天沒空學習了。晚上學了一會。前端頁面網上找的,後臺本身寫。5月31號放完端午回來。看着項目仍是以爲很迷茫 。。寫不出什麼東西來。5月25號1.我有點心急了。。前天才剛接觸Struct2,今天就想掌握。一天就想配置好幾個項目,有點急於求成了。哈哈5月24號1.Struts2的配置與使用。5月22號1.Hibernate的配置與使用。5月19號1. 看了一下項目裏的Hibernate。。我對反射的瞭解不太夠。還得增強。 5月18號1.學習一下註解。。 5月17號 終於把項目配置的bug解決了。。  5月12號1.這幾天在配置項目的jar包。。搞得頭都大了。看來得認真學下maven、註解方面的知識  5月9號1.配置數據源. 5月3號1.重溫一下過濾器Filter、監聽器Listener.  5月2號1. 接觸spring配置bean 4月24號1.閱讀web項目代碼。。有點迷糊。  4月20號 1.學習《重構》和ajax。 4月17 1.javascript事件、對象. 4月141. 重構!!!  4月10號1.初步接觸ajax。阿賈克斯。哈哈。局部刷新。這個ajax還涉及到javaScript。。因此仍是先學一下js吧。  4月7號1.jstl。儘可能在jsp頁面少出現java代碼。實現頁面和java代碼分離   4月1號1.學習表達式語言el.  3月30號1.div(區域),li,ul(無序列表),ol(有序列表)  3月27號1.初識jsp的標籤 3月24號1.正則表達式的運用Patter、Match   3月22號1.jsp指令、內置對象  3月15號1.學了一些html,準備繼續jsp,學到了表單. 3月141.完成查詢停復機的任務  3月1-7號1.強化servlet 2月27號1.運用debug技巧,實踐強化記憶。 2月241.學習git管理版本 ,分支處理  2月21號1. 下載開源中國app的源碼,學習研究! 2月17號1.單元測試.Juint  2月16號 1.fresco架構.博客解讀 2月14 1.如何提升調試能力?step into,step out這些具體表明什麼?   step into:單步執行,遇到子函數就進入   step over:單步執行,遇到子函數不會進入,直接跳過   step out:單步執行,跳出子函數    2.嘗試撰寫報竣狀態的工廠模式、接口、類 3.弄明白了靜態方法和實例方法的區別   2017年2月9 1.fresco加載圖片的使用方法; 2.閱讀fresco的源碼

相關文章
相關標籤/搜索