原创 如何把一個單例模式寫出花來

1,懶加載模式 /** * 單例模式--懶加載模式 *@author 萊格 */ public class Singleton { //一個靜態的實例 private static Singleton sin

原创 Tomcat服務器的模擬實現學習解析Http協議、反射、xml解析等

模擬tomcat機制手寫一個簡單的Tomcat服務器,主要功能有可以獲得請求參數,還可以對瀏覽器做出響應,底層採用http協議,通過用戶請求信息,解析請求信息,並且封裝了響應信息,可以向瀏覽器響應網頁,也可以響應文字,原理就是通過

原创 基於Redis實現分佈式鎖,解鎖原子版

實現思路 鏈接: https://www.processon.com/view/5ca5a76be4b0cfb73427ee0f#map 代碼: public class RedisLock implements Lock {

原创 算法刻意練習第二天--數組與鏈表

數組 查找 內存連續的存儲空間,內存管理器可以實現訪問任何一個位置的元素,O(1)的查找。 插入 [1,2,3,4,5] 在3和4之間插入一個值,6,需要把4,5 往後挪動。平均時間複雜度是O(N),刪除也是O(n) 的平均時間複

原创 算法刻意練習第一天--複雜度分析以及學習方法

時間複雜度 算法時間複雜度分析,複雜度越低,大數據量,高併發環境下,收益很高 1 + 2 + 3+ … + n 求和公式: y = n*(n+1)/2 Fibonacci 時間複雜度計算 F(n) = F(n-1) + F(n-2

原创 一文了解多線程的前世今生

簡介 1.1 併發簡史 背景 早起的操作系統,非常難用,裸機的環境,不僅很難編寫和運行程序,每次只能運行一個程序,非常浪費計算機資源。 解決方案 由於出現了操作系統,計算機便能運行多個程序,不同的程序都在單獨的進程中運行。 操作系

原创 算法刻意練習第三天--兩數相加解題思路

題目描述 給出兩個 非空 的鏈表用來表示兩個非負的整數。其中,它們各自的位數是按照 逆序 的方式存儲的,並且它們的每個節點只能存儲 一位 數字。 如果,我們將這兩個數相加起來,則會返回一個新的鏈表來表示它們的和。 您可以假設除

原创 使用java來實現阻塞隊列

import java.util.LinkedList; import java.util.concurrent.atomic.AtomicInteger; /** * 使用wait和notify實現Queue * Bloc

原创 深入理解Java多態機制

目錄: 1,多態的概念? 2,存在的條件? 3,案列解析? 4,應用場景? 1,多態的概念 父類引用指向子類對象,通俗點就是,在編譯時不綁定是什麼方法,根據你傳進來的值,是什麼就會運行什麼。 2.存在

原创 對於loader constraint violation問題的解決方案

javax.servlet.ServletException: java.lang.LinkageError: loader constraint violation: loader (instance of org/apache

原创 全面解析所有的工廠模式!

1、how is FactoryParrten? 工廠模式就是專門負責將大量有共同接口的類實例化,而且不必事先知道每次是要實例化哪一個類的模式。它定義一個用於創建對象的接口,由子類決定實例化哪一個類。 啥也不說

原创 一個請假案例弄懂責任鏈模式

1、什麼是責任鏈模式? 定義:將能夠處理同一類請求的對象連成一條鏈,所提交的請求沿着鏈傳遞,鏈上的對象逐個判斷是否有能力處理該請求,如果能處理則處理,如果不能則傳遞給鏈上的下一個對象。 2、應用場景? 場景:

原创 一個租房案列透徹理解--靜態代理模式

靜態代理模式 1、代理模式簡介? 組成: 抽象角色:通過接口或抽象類聲明真實角色實現的業務方法。 代理角色:實現抽象角色,是真實角色的代理,通過真實角色的業務邏輯方法來實現抽象方法,並可以附加自己的操作。 真實角色:實現

原创 算法複雜度分析,如何分析,統計算法的執行效率和資源消耗

複雜度分析是整個算法學習的精髓 只要掌握了他,數據結構和算法的內容基本上就掌握了一半 爲什麼需要複雜度分析? 其實我可以把代碼跑一遍,通過統計,監控就能得到算法執行的時間和佔用內存大小。其實這是一種事後統計法,這種統計方法侷限很大

原创 以SpringIoc的模擬實現來學習反射和xml解析

模擬一個簡單的SpringIoc容器 我們只實現一個簡單的接口。 //自定義一個接口 public interface BeanFactory { //通過傳進來的bean id獲得相應的對象 public Ob