原创 MyBatis源碼分析:MyBatis概覽
在具體分析源碼之前,我們先對MyBatis的執行原理以及MyBatis的框架結構有一定的瞭解,以便能讓我們站在一定的高度上看問題。 一.MyBatis的執行原理 1、加載mybatis全局配置文件(數據源、mapper映射
原创 java多線程:線程池常用的三種隊列詳解!
開篇:我們在初始化線程池的時候常常會使用到如下三種隊列,他們分別是: LinkedBlockingDeque(鏈表同步阻塞隊列)、ArrayBlockingQueue(數組同步阻塞隊列)、SynchronousQueue(同步阻塞隊列)
原创 多線程:線程池的拒絕策略
當線程池中的資源全部被佔用時,對於新添加的runnable有不同的處理策略,默認情況下有如下四種拒絕策略: RejectedExecutionHandler rejected = null; rejected = new
原创 結構師手把手教我優化代碼的經驗總結,寫好代碼做個有良心的碼畜
目錄 架構師格言: 背景: 代碼走讀: 代碼優化總結: 方法抽取: 常量提取: 註釋明確: 每個service中不要包含別的service的mapper需要調用盡量走service: 巧用框架: 架構師格言: 在實現相同功能的情況下,誰寫
原创 線程池的內部原理圖(簡單明瞭)
線程池內部原理:
原创 java多線程:CompletionService的使用
1.CompletionService是什麼? 答 :CompletionService的功能是以異步的方式,一邊產生新任務,一邊處理已完成的任務的結果,這樣可以將執行任務與處理任務分開來處理。使用submit來執行任務,使用take
原创 設計模式:克隆模式
1.原型模式定義: 原型模式的定義如下:用一個已經創建的實例作爲原型,通過複製該原型對象來創建一個和原型相同或相似的新對象。用這種方式創建對象非常高效,根本無須知道對象創建的細節。 2.細節: 抽象原型類:規定了具體原型對象必須實現的接口
原创 做好代碼優化--做個有良心的程序員
這段代碼來源於開發中實例,源代碼如下: public void removeProjectUser(ProjectUserDto projectUserDto) { if (Optional.ofNullab
原创 javac、javap命令不生效,java命令生效解決方法
解決辦法參照:解決辦法 a、運行cmd; b、set java_home=D:\Java\jdk1.8.0_131 ( 這是我安裝JDK的路勁,根據實際情況做出相應的改變) c、set classpath=%JAVA_HOME%\lib\
原创 設計一個工具類:通過切面的方式掃描所有的入參和出參,動態去除所有無意義的字段,只返回有用字段?
需求原型:在日常的開發過程中,我們爲了做到規範,我們需要根據不同的需求響應不同的結果,比如: “根據用戶名和用戶年齡返回匹配的用戶的生日”,當我們拿到需求我們的做法可能是這樣的: (1).首先我們需要一個UserModel類,該類與數據庫
原创 IDEA官網進不去?
如何解決? 解決辦法
原创 設計模式:卑微的代理模式
代理模式類圖: 代理模式的本質: 提供了間接對目標對象進行訪問的方式,即通過代理對象訪問目標對象,這樣做的好處是:可以在目標對象實現的功能上,增加額外的功能補充,即擴展目標對象的功能。 具體實現(一句話描述):代理類和
原创 計算機網絡結構概述
1.計算機網絡結構圖:通過理解該圖可以幫助我們對計算的數據的網絡傳輸和網絡編程有很大幫助。 2.內容闡釋:每一層的協議必須一一對應,這樣才能解析數據。最底層的數據纔是通過實際傳輸媒介傳輸,比如網線,信號基站等物理傳輸設備。 推薦博客:
原创 Spring中的InitializingBean與DisposableBean接口
1.InitializingBean接口: Interface to be implemented by beans that need to react once all their properties have been set
原创 Java面試題:Math.round();
public class Test { public static void main(String[] args) { System.out.println(Math.round(0.5));