原创 磨刀不誤砍柴工(二)-日常使用工具整理

文章目錄日常工作、學習使用的工具日常學習筆記工具在線文檔管理快捷搜索截圖瀏覽器①Google好用插件②使用收藏夾③瀏覽器快捷鍵的使用視頻播放器翻譯時間管理工作畫圖工具原型圖思維導圖開發設計開發工具IDEA①非常好用的插件②開發常用

原创 MyBatis中if標籤正確使用方法(Integer類型)

文章目錄場景嘗試一嘗試二嘗試三原因 場景 持久層:MyBatis 組合查詢一組數據,字段有:String id,String name ,Integer status。 由於三個字段都可能爲空,所以mapper文件中這樣寫的: S

原创 15分鐘“拿下”23個設計模式

文章目錄23個設計模式七大原則揭祕內化法和圖表法比喻法(故事會)故事一(創建型)故事二(結構型)故事三(行爲型)故事四(原則) 15分鐘是否可以拿下23個設計模式呢? 答案是肯定的,當然15分鐘是不可能把全部的設計模式搞懂的,只是

原创 對codeReview到底要明確什麼?

什麼不是codeReview Code reviews 不應該承擔發現代碼錯誤的職責。 Code Review主要是審覈代碼的質量,如可讀性,可維護性,以及程序的邏輯和對需求和設計的實現。代碼中的bug和錯誤應該由單元測試,功能

原创 【Spring boot實踐】Spring boot下的Spring MVC

文章目錄Spring MVC的幾種註解Controller註解RequestMapping註解@ResponseBody註解Spring boot下的Spring MVCRestController註解GetMapping註解 S

原创 調優之容量問題

在經過Tomcat、keepAlived參數調優之後,還是會發現相應時間變長,反應時間變長,TPS上不去的情況。 那麼我們改如何進行優化呢? 對於單臺web容器的性能上限我們要掌握 線程數量:4核cup8G內存單進程調度線程數8

原创 動態代理實現AOP-反射的應用

文章目錄invoke方法Object invoke(Object obj,Object[] args)說明AOPJDK和Cglib的區別靜態代理動態代理(JDK) 反射應用 要理解AOP需要這麼幾個步驟: 反射——invoke()

原创 磨刀不誤砍柴工(三)-工具調優-IDEA啓動速度

背景 硬件:240固態硬盤、12G內存。 IDEA:啓動時間 1分鐘(手工測量誤差2秒) 電腦的硬件更新已經很久了,記不得以前IDEA的啓動時間,只是感覺IDEA啓動的時間有點長,就上手了。 過程 修改配置 找到idea.vmop

原创 分佈式通信框架-RMI原理

文章目錄什麼是RPCJava RMI 什麼是RPC RPC (Remote Procedure Call,遠程過程調用),一般用來實現部署在不同機器上的系統之間的方法調用,使得程序能夠像訪問本地系統資源一樣,通過網絡傳輸去訪問遠端

原创 磨刀不誤砍柴工(一)-高效的第一步

文章目錄高效的基礎反應與習慣工具的高效使用 高效的基礎 在工作、學習和生活中,我們會追求高效率做事,可總會碰壁,不能很好的高效的完成一件事情。高效是一種表現形式,由很多習慣與思維方式共同組成一個高效的系統,這個體系會被不斷的調整滿

原创 對codeReview的一些思考

什麼不是codeReview Code reviews 不應該承擔發現代碼錯誤的職責。 Code Review主要是審覈代碼的質量,如可讀性,可維護性,以及程序的邏輯和對需求和設計的實現。代碼中的bug和錯誤應該由單元測試,功能

原创 java自定義註解和使用

文章目錄前言註解的使用場景手寫註解註解類計算類測試類輸出結果 前言 上一篇對註解是什麼和其原理做了簡單的介紹(傳送門),本篇手寫實現一個簡單的註解示例。 註解的使用場景 對註解有了一定的熟悉之後,那麼註解到底有什麼用呢? java

原创 15分鐘拿下23個設計模式

文章目錄23個設計模式七大原則內化法和圖表法比喻法(故事會)故事一(創建型)故事二(結構型)故事三(行爲型)故事四(原則) 15分鐘是否可以拿下23個設計模式呢? 答案是肯定的,當然15分鐘是不可能把全部的設計模式搞懂的,只是用結

原创 揭祕如何又快又好的讀書

文章目錄前言讀書難在哪根源誤區高手的讀書觀 前言 讀書是我們獲取知識的一種重要的途徑,無論是在學習專業知識,還是日常非專業書籍的閱讀都會遇見相似的問題:讀書很慢,感覺到很難,不理解,都看懂了但忘的很快,一本書看很久等等諸多問題,往

原创 動態代理AOP的實現-反射的應用

要理解AOP需要這麼幾個步驟: 反射——invoke()——代理——AOP。 在上一篇已經介紹了基礎的反射是什麼,和常見的API是如何使用的在此基礎上,說明一下invoke()方法的使用。 invoke方法 invoke方法用於調