原创 Java生產者消費者condition實現

import java.util.ArrayList; import java.util.LinkedList; import java.util.Queue; import java.util.concurrent.locks.

原创 Java 生產者消費者及手撕源碼 (jdk阻塞隊列寫法)

import java.text.SimpleDateFormat; import java.time.LocalDate; import java.time.LocalDateTime; import java.time.for

原创 mybatis XML開發 插件一鍵生成配置

mybatis XML開發 插件一鍵生成配置 pom文件: <dependency> <groupId>org.mybatis.spring.boot</groupId>

原创 Mysql MVCC總結

MVCC是不加鎖實現多個事務對數據庫的併發訪問 淺顯原理: 在每一行除了本來的數據外附加了兩列,一列是創建行時的版本號ID一列是刪除時的版本號ID id name create-version delete-version

原创 滑動窗口模板 單調棧

給定一個大小爲n≤106n≤106的數組。 有一個大小爲k的滑動窗口,它從數組的最左邊移動到最右邊。 您只能在窗口中看到k個數字。 每次滑動窗口向右移動一個位置。 以下是一個例子: 該數組爲[1 3 -1 -3 5 3 6 7],

原创 用數組模擬雙鏈表

#include<iostream> using namespace std; const int N = 100010; int l[N],r[N],e[N],idx; void add(int k,int x){ e[

原创 Spring源碼解析 容器注入 之@Componment

添加@Component註解掃描到Spring容器中 @Component 是將所有類都添加到容器中 @Service @Controller @Repository是將指定功能的類進行掃描 1.在Appconfig 中的@Com

原创 Java JVM 內存溢出Oom

Java 虛擬機的默認內存分配: -Xms 設置初始化默認內存,初始默認爲物理內存的1/64 -Xmx最大分配內存,初始爲物理內存的1/4 驗證: 本機的實際內存爲16G: public class Test { publ

原创 弱智三個線程輪流打印ABC

import java.util.concurrent.locks.ReentrantLock; public class PrintABC { public static final ReentrantLock loc

原创 萬能集合判空防npe 類

import java.math.BigDecimal; import java.util.Collection; import java.util.Iterator; import java.util.List; import

原创 查缺補漏2

一 基礎篇 1. System.out.println(3|9)輸出什麼? 2. 說一下轉發(Forward)和重定向(Redirect)的區別 3. 在瀏覽器中輸入 url 地址到顯示主頁的過程,整個過程會使用哪些協議 4

原创 synchronized 詳細介紹 及底層實現

synchronized 詳細介紹 及底層實現     synchronized 關鍵字有三種用法: 修飾實例的方法,給當前類的實例加鎖,在運行同步代碼塊時先要得到當前實例的鎖 修飾靜態的方法,修飾靜態方法就是給當前class類對象加鎖,

原创 JAVA Map的詳細學習

前言: **Java 自帶了各種 Map 類。這些 Map 類可歸爲三種類型: 通用Map,用於在應用程序中管理映射,通常在 java.util 程序包中實現 HashMap、Hashtable、Properties、Linke

原创 Java 虛擬機 垃圾回收

如何判斷對象已是垃圾 引用計數法 引用計數法實現簡單,判定效率也很高,但是JAVA虛擬機並沒有用引用計數法來判斷對象是否存活 原理:給對象中添加一個引用計數器,每當一個地方引用他的時候,計數器的值就加一,當引用失效時就減一,任何時

原创 Java 多線程 詳解

前言: 併發和並行 併發指的是在同一時刻只能有一個進程運行,但多個進程可以來回迅速切換,使得在宏觀上具有多個進程同時運行的效果,而並行是同一時刻有多條指令在多個處理器上同時執行。 線程和進程 線程也叫輕量級進程,線程是進程的組成部