原创 數據結構與算法-選擇排序,插入排序

數據結構與算法-選擇排序,插入排序 選擇排序 原理:每次選擇最大的或最小的一個放在最前面後最後面 時間複雜度:O(n^2) 空間複雜度:O(1) 不穩定排序 /** * 選擇排序 */ public static voi

原创 JAVA-基礎知識-修飾符

JAVA-基礎知識-修飾符 大體上分兩類 訪問控制修飾符與非訪問修飾符 訪問控制修飾符 在Java中一共有4種 缺省(default,即默認,什麼也不寫):在同一包內可見,不使用任何修飾符。使用對象:類、接口、變量、方法。 pr

原创 數據結構與算法-樹-哈夫曼樹

數據結構與算法-樹-哈夫曼樹 概述 給定n個權值作爲n個葉子結點,構造一棵二叉樹,若帶權路徑長度達到最小,稱這樣的二叉樹爲最優二叉樹,也稱爲哈夫曼樹(Huffman Tree)。哈夫曼樹是帶權路徑長度最短的樹,權值較大的結點離根較

原创 設計模式-GOF-創建型-Singleton單例模式

設計模式-GOF-創建型-Singleton單例模式 定義 指一個類只有一個實例,且該類能自行創建這個實例的一種模式。 主要解決: 一個全局使用的類頻繁地創建與銷燬 優點: 在內存中只有一個實例,減少了內存的開銷,尤其是頻繁的創

原创 中間件-Tomcat-Servlet

中間件-Tomcat-Servlet Java Servlet 是運行在 Web 服務器或應用服務器上的程序,它是作爲來自 Web 瀏覽器或其他 HTTP 客戶端的請求和 HTTP 服務器上的數據庫或應用程序之間的中間層。 生命週

原创 多線程與併發-線程間通信

多線程與併發-線程間通信 概述: 多線程之間通信一般有這樣幾種方法: 通過共享對象實現通信 wait/notify機制 Condition接口,await/signal機制 消息隊列,socket編程等網絡通信 wait/no

原创 JAVA-基礎知識-StringJoiner

JAVA-基礎知識-StringJoiner Java 8在java.util軟件包下發布了StringJoiner類。我認爲相對於我們使用StringBuffer / StringBuilder的舊式做法來連接字符串,這並非是一

原创 數據結構與算法-冒泡排序

數據結構與算法-冒泡排序 概述: 原理:https://visualgo.net/zh/sorting?slide=6 看圖理解方便點 時間複雜度O(n^2) 空間複雜度O(1) 適用場景:大部分元素已有序 參考鏈接: http

原创 設計模式-創建型-工廠模式(SimpleFactory簡單工廠,FactoryMethod工廠方法)

設計模式-創建型-工廠模式(SimpleFactory簡單工廠,FactoryMethod工廠方法) 在面向對象編程中, 最常見的是使用new來創建一個對象實例,new操作符就是用來構造對象實例的。但是在一些情況下, new操作符

原创 element-文件上傳-自定義上傳方式

element-文件上傳-自定義上傳方式 這次主要寫的是el-upload這個組件中的http-request鉤子,首先來看一下官方的: 非常的簡潔,簡潔到完全看不懂了,簡直了。 先展示一下我的成果,記得先把jquery,vue

原创 多線程與併發-併發關鍵字(synchronized,volatile,final)

多線程與併發-併發關鍵字(synchronized,volatile,final) synchronized 原理 synchronized在字節碼中採用monitor機制實現,在修飾的方法中使用flag標記ACC_SYNCHRO

原创 多線程與併發-線程池-ThreadPoolExecutor

多線程與併發-線程池-ThreadPoolExecutor 概述: 線程池這東西很常見,使用的原因更好的對線程進行管理,就是減少線程創建銷燬的開銷。 雖然有幾個現成的創建方法,但很多公司都不建議使用,而要求一定要通過ThreadP

原创 錯誤總結-myBatis plus 分頁

錯誤總結-myBatis plus 分頁 今天碰到了一個神奇的問題: org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis

原创 數據結構與算法-樹-AVL樹

數據結構與算法-樹-AVL樹 一棵AVL樹有如下必要條件: 它必須是二叉查找樹。 條件二:每個節點的左子樹和右子樹的高度差至多爲1。 使用AVL樹的原因 我們爲了提高查找效率而使用了二叉搜索樹,這使得理論上能將查找時間降到O(