原创 劍指Offer(線程)——線程的狀態

通過Thread.State就可以看到線程的狀態: public enum State { /** * Thread state for a thread which has not yet st

原创 劍指Offer(鎖)——synchronized和ReentrantLock

參考之前專欄的文章: https://blog.csdn.net/weixin_44240370/article/details/96646295

原创 劍指Offer(鎖)——synchronized基本使用方法

說到併發那麼就要說一下Synchronized和ReentrantLock等等方面相關的知識。 針對互斥鎖先來介紹一些引起線程安全問題的主要原因是什麼? 存在共享數據(也稱臨界資源); 存在多條線程共同操作共享數據。 解決上面

原创 劍指Offer(類庫)——HashMap、HashTable、ConcurrentHashMap(下)

HashTable HashTable是線程安全的,那麼HashTable做了什麼操作才實現了HashMap沒做到的線程安全呢??? 寫個簡單的demo: 進入synchronizedMap內部看一下: 聲明瞭一個mutex修

原创 京東後端開發面經

部門是做信息安全的,經歷兩面時間相隔比較長。 感覺整體面試不是特別的難。 一面(50min) 1、自我介紹 2、介紹一下簡歷上的項目(問了整體架構和實現的功能以及表的設計,Redis存儲的東西,ES如何進行使用的以及RabbitM

原创 劍指Offer(線程)——sleep和wait的區別以及notify和notifyAll的區別

sleep和wait 在源碼中可以看出基本的差別: sleep是Thread類中的一個方法,wait是Object類中的一個方法; sleep()方法可以在任何地方使用; wait()方法只能在synchronized方法或者s

原创 劍指Offer(鎖)——JMM的內存模型

Java內存模型(Java Memory Model, 簡稱JMM)本身是一種抽象的概念並不是真實存在的,描述的是一種規則或規範,通過這組規範定義了程序中各個變量(包括實例字段,靜態字段和構成數組對象的元素)的訪問方式。 簡單說

原创 疏漏總結(四)

文章目錄yield和join跨域的流程分佈式事務MVCC和可重複讀Cookie和Sessionsubmit原理MyBatis緩存機制 yield和join Thread.yield()作用是暫停當前的正在執行的線程去執行其他的線程

原创 劍指Offer(Spring)——IOC容器

容器內部的運行的原理: Spring啓動的時候讀取應用程度提供的bean配置並在Spring容器中生成一份相應的bean配置註冊表,然後根據這張註冊寶去是實例化bean,裝配好bean之間的依賴關係後爲上層提供準備就緒的運行環境

原创 EventLoopGroup源碼及其父類

1、特殊的EventExecutorGroup,允許註冊處理後的通道以便在事件循環期間進行選擇。 EventLoopGroup next()方法:返回下一個要使用的EventLoop register(Channel):使用Eve

原创 劍指Offer(網絡)——TCP四次揮手

揮手指的就是終止連接,TCP四次揮手流程圖如下: 客戶端或者服務端觸發close,假設客戶端觸發close 數據傳輸完畢之後,雙方纔可以釋放連接; 最開始客戶端和服務端都處於Established狀態,假設客戶端主動關閉; 首

原创 劍指Offer(類庫)——HashMap、HashTable、ConcurrentHashMap(上)

Map是由一對對的key-value組成的,key要求是唯一的,value不要求。 通過看源碼可以得出:key自帶去重功能是Set類型的,value是Collection接口可存放任意集合。 來看一下Map的實現類: Hash

原创 Apache Thrift介紹

文章目錄1、簡介2、Thrift IDL2.1、基本類型2.2、結構體struct2.3、容器Container2.4、枚舉enum2.5、常量定義2.6、類型定義2.7、異常Exception2.8、服務定義類型Service2

原创 劍指Offer(SQL)——密集索引和稀疏索引

密集索引和稀疏索引的區別: 密集索引文件中的搜索碼值都對應一個索引值 稀疏索引文件中只會爲某些索引碼的某些值建立索引項 接下來以MySQL爲例來進行說明: 在MySQL中有兩種搜索引擎:MyISAM和InnoDB MyISAM

原创 疏漏總結(八)

文章目錄1、密集索引和稀疏索引的區別2、意向鎖3、Redis集羣4、DNS解析的流程5、Spring Bean生命週期6、Spring編程式事務和聲明式事務7、堆外內存8、Https9、接口限流方法 1、密集索引和稀疏索引的區別