BST 二叉查找樹(shù)就是一顆二叉樹(shù),他的左節(jié)點(diǎn)比父節(jié)點(diǎn)要小,右節(jié)點(diǎn)比父節(jié)點(diǎn)要大。他的高度決定的查找效率。 當(dāng)查找BST時(shí),先進(jìn)行當(dāng)前節(jié)點(diǎn)比較: 如果相等的話就返回當(dāng)前節(jié)點(diǎn); 如...
BST 二叉查找樹(shù)就是一顆二叉樹(shù),他的左節(jié)點(diǎn)比父節(jié)點(diǎn)要小,右節(jié)點(diǎn)比父節(jié)點(diǎn)要大。他的高度決定的查找效率。 當(dāng)查找BST時(shí),先進(jìn)行當(dāng)前節(jié)點(diǎn)比較: 如果相等的話就返回當(dāng)前節(jié)點(diǎn); 如...
1.WeakReference的referent指向ThreadLocal的原因 ThreadLocal作為WeakReference的referent,只要ThreadLo...
前言 從PC互聯(lián)網(wǎng)到移動(dòng)互聯(lián)網(wǎng),B/S架構(gòu)演化為多端/S架構(gòu)。后端服務(wù)SOA模式下的重服務(wù)或單服務(wù)架構(gòu),逐漸按功能模塊被切分成微服務(wù)架構(gòu)(延伸閱讀《軟件工程和架構(gòu)發(fā)展簡(jiǎn)史》)...
看到第一個(gè)圖就知道錯(cuò)了,為什么錯(cuò)自己去看官方文檔,路過(guò)的人不要信
JVM系列(三)內(nèi)存劃分我們的java代碼經(jīng)過(guò)了類(lèi)加載到了JVM運(yùn)行時(shí)候,就需要使用到多塊內(nèi)存空間,不同的空間存放不同的數(shù)據(jù),配合代碼流程,才能讓程真正運(yùn)行起來(lái)。 JVM內(nèi)存劃分在JDK...
redis cluster 集群之間 如何實(shí)現(xiàn)通訊 1.gossip 協(xié)議pingpongmeet2.10000節(jié)點(diǎn)3.交換信息 內(nèi)存淘汰策略 數(shù)據(jù)結(jié)構(gòu) sort set 為...
偏向所鎖,輕量級(jí)鎖及重量級(jí)鎖 偏向所鎖,輕量級(jí)鎖都是樂(lè)觀鎖,重量級(jí)鎖是悲觀鎖。 一個(gè)對(duì)象剛開(kāi)始實(shí)例化的時(shí)候,沒(méi)有任何線程來(lái)訪問(wèn)它的時(shí)候。它是可偏向的,意味著,它現(xiàn)在認(rèn)為只可能...
5. InnoDB 行鎖 5.1 行鎖介紹 行鎖特點(diǎn) :偏向InnoDB 存儲(chǔ)引擎,開(kāi)銷(xiāo)大,加鎖慢;會(huì)出現(xiàn)死鎖;鎖定粒度最小,發(fā)生鎖沖突的概率最低,并發(fā)度也最高。InnoDB...
對(duì),這就是最簡(jiǎn)單的鎖,看不懂建議先把sql執(zhí)行順序復(fù)習(xí)一遍
并發(fā)減庫(kù)存,怎么保證不超賣(mài)?并發(fā)減庫(kù)存 秒殺的場(chǎng)景有很多,比如:搶購(gòu)、搶票、搶紅包等等??傊?,就是在極短時(shí)間內(nèi)有大量的請(qǐng)求。 我們都知道,這種系統(tǒng)設(shè)計(jì)的大方向就是限流,即通過(guò)層層過(guò)濾,最終只讓相對(duì)較少的...
面試回答這個(gè)直接就可以走人了,一點(diǎn)原理不說(shuō)
HashMap和HashTable的區(qū)別1、線程是否安全:HashMap是非線程安全的,HashTable是線程安全的;HashTable內(nèi)部的方法基本上都經(jīng)過(guò)synchronized修飾。(如果你要保保證線程安全...
1. b樹(shù)沒(méi)有雙向指針,b+樹(shù)有,可有用來(lái)范圍查找,同理hash結(jié)構(gòu)索引也沒(méi)辦法范圍查找 2. b樹(shù)可以在非葉子節(jié)點(diǎn)存儲(chǔ)數(shù)據(jù),b+樹(shù)只可以在葉子節(jié)點(diǎn)存儲(chǔ)數(shù)據(jù),故b+樹(shù)可以存儲(chǔ)...
最近在項(xiàng)目中遇到了類(lèi)似“秒殺”的業(yè)務(wù)場(chǎng)景,在本篇博客中,我將用一個(gè)非常簡(jiǎn)單的demo,闡述實(shí)現(xiàn)所謂“秒殺”的基本思路。 業(yè)務(wù)場(chǎng)景 所謂秒殺,從業(yè)務(wù)角度看,是短時(shí)間內(nèi)多個(gè)用戶“...
前言 如果在日常開(kāi)發(fā)中我們用new對(duì)象的方式,若多個(gè)構(gòu)造函數(shù)相互依賴(lài)的話,程序會(huì)在運(yùn)行時(shí)一直循環(huán)調(diào)用最終導(dǎo)致內(nèi)存溢出,那么spring是利用三級(jí)緩存解決循環(huán)依賴(lài)的,讓開(kāi)發(fā)者無(wú)...
Spring什么時(shí)候?qū)嵗痓ean,首先要分2種情況 第一:如果你使用BeanFactory作為Spring Bean的工廠類(lèi),則所有的bean都是在第一次使用該Bean的...
大家都知道,局部變量是存在于棧里的,隨著方法的調(diào)用而產(chǎn)生,隨著方法的執(zhí)行完畢而消失,因?yàn)闂J蔷€程私有的,所以局部變量也是線程安全的。 那成員變量又是存在于哪里呢,網(wǎng)上有的...
類(lèi)什么時(shí)候被加載/類(lèi)加載時(shí)機(jī): 第一:生成該類(lèi)對(duì)象的時(shí)候,會(huì)加載該類(lèi)及該類(lèi)的所有父類(lèi); 第二:訪問(wèn)該類(lèi)的靜態(tài)成員的時(shí)候; 第三:class.forName("類(lèi)名");