高并發(fā)編程一直是我的痛點(diǎn),面試被問到基本都答不上來。 我相信很多朋友跟我一樣,不系統(tǒng)學(xué)習(xí)整理一把,真的難受。 下面是我花了不少時(shí)間整理的Java并發(fā)編程相關(guān)的面試題,知識(shí)點(diǎn)等...
高并發(fā)編程一直是我的痛點(diǎn),面試被問到基本都答不上來。 我相信很多朋友跟我一樣,不系統(tǒng)學(xué)習(xí)整理一把,真的難受。 下面是我花了不少時(shí)間整理的Java并發(fā)編程相關(guān)的面試題,知識(shí)點(diǎn)等...
除了synchronized能解決原子性性問題,Jdk1.5以后,在java.util.concurrent.locks.Lock包下的Lock也能解決原子性問題。 java...
前言 關(guān)于wait/notify/notifyall有2個(gè)經(jīng)典的面試: notify和notifyall有什么區(qū)別? 為什么wait方法要寫在while循環(huán)里面而不是if呢?...
前言 面試題:synchronized是可重入鎖嗎? 答案:synchronized是可重入鎖。ReentrantLock也是的。 1、什么是可重入鎖呢? 關(guān)于什么是可重入鎖...
前言 Synchronized原理是面試中的一個(gè)難點(diǎn)。網(wǎng)上的各種資料太亂了 ,概念晦澀難懂,看了不少資料、博客,花了不少時(shí)間,才整理成這篇筆記。看完對(duì)你大有幫助。 1、內(nèi)存布...
1、什么是公平鎖與非公平鎖 公平鎖:公平鎖就是保障了多線程下各線程獲取鎖的順序,先到的線程優(yōu)先獲取鎖。非公平鎖:非公平鎖則無法提供這個(gè)保障(先到的線程優(yōu)先獲取鎖)。 2、Re...
前言 工作中難免會(huì)使用線程池。對(duì)線程池的使用要格外的小心,說不定某天就出現(xiàn)了難搞的生產(chǎn)問題(OOM)。每次在使用的時(shí)候,我都會(huì)網(wǎng)上找找資料,今天我就自己全部整理了一篇,不足或...
前言 上一節(jié)講了i++并不是線程安全的,我們需要用synchronized來保證其線程安全。 這里我就介紹下synchronized的基本用法和簡(jiǎn)單原理。 便于說明,我寫了個(gè)...
前言 1、并發(fā)編程三要素 在并發(fā)編程的世界里,下面三要素你必須清楚: 可見性:可見性指多個(gè)線程操作一個(gè)共享變量時(shí),其中一個(gè)線程對(duì)變量進(jìn)行修改后,其他的線程可以立即看到修改的結(jié)...
前言 面試題:synchronized是可重入鎖嗎? 答案:synchronized是可重入鎖。ReentrantLock也是的。 1、什么是可重入鎖呢? 關(guān)于什么是可重入鎖...
簡(jiǎn)書 占小狼轉(zhuǎn)載請(qǐng)注明原創(chuàng)出處,謝謝! 前言 ThreadLocal為變量在每個(gè)線程中都創(chuàng)建了一個(gè)副本,所以每個(gè)線程可以訪問自己內(nèi)部的副本變量,不同線程之間不會(huì)互相干擾。本文...
Exception 和 Error區(qū)別? 可查異常和不可查異常區(qū)別? Error和Exception都是繼承了Throwable 類。Error是指在正常情況下,不大可能出現(xiàn)...
最好、最壞時(shí)間復(fù)雜度 我們先看一個(gè)例子: 當(dāng)把break語句注釋掉的時(shí)候,總是需要遍歷整個(gè)數(shù)組,所以時(shí)間復(fù)雜度就是數(shù)組的長(zhǎng)度,為O(n)。當(dāng)有break語句的時(shí)候,如果找到x...
1、算法的考量指標(biāo) 算法的考量指標(biāo),我們是用時(shí)間、空間復(fù)雜度來衡量的。 2、為什么需要復(fù)雜度分析? 1.測(cè)試結(jié)果非常依賴測(cè)試環(huán)境測(cè)試環(huán)境中硬件的不同會(huì)對(duì)測(cè)試結(jié)果有很大的影響比...
1、什么是數(shù)據(jù)結(jié)構(gòu) 廣義上講:數(shù)據(jù)結(jié)構(gòu)就是一組數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)。狹義上講:隊(duì)列、棧、堆、樹 等常用的數(shù)據(jù)結(jié)構(gòu)。 2、什么是算法 算法(Algorithm)就是操作數(shù)據(jù)的一組方法...