原创 【Java面試】GC如何判斷對象是否死亡

引用計數算法(不採用) 給對象中添加一個引用計數器,每當有一個地方引用它,計數器就加 1;當引用失效,計數器就減 1;任何時候計數器爲 0 的對象就是不可能再被使用的。 此方法是最簡單的實現方法,但是無法解決對象相互循環引用的問題

原创 【Java面試】方法鎖鬧的一個小笑話

當然,笑話的主角就是我本人了,緣由一位羣友關於線程鎖的提問,我直接被帶到溝裏了,典型的審題不認真啊! -> 羣友 (滑稽) 各位問一個問題 -> 羣友 一個方法synchronized修飾了 裏面就Int++ -> 羣友 幾百個線

原创 【Java面試】徹底搞懂HashMap

廢話不多說,直接閱讀源碼。如果你實在無閒暇看無聊的代碼閱讀,可以閱讀每段的標題或者最後的總結。 HashMap結構 transient <K,V>[] table; 實際上HashMap內就是由多個Node<K, V>對象組成

原创 【Java面試】LinkedList和ArrayList的異同點

我們先把LinkedList的增刪改查源碼都閱讀一遍,然後再各個方面進行比較兩者之間的區別。 LinkedList linkedList = new LinkedList(); // add linkedList.add("1")

原创 【Java面試】每天一篇小故事,搞定面試題。

初衷 本人是十足的背面試題的苦手,畢竟好些面試題都是平時工作場景中碰不到了,想自己用編碼實現、可視化、模擬場景等方式來靈活的背面試題,在此做個記錄。 其實我一直認爲自己的腦子不太好使,接受的速度也比別人慢,所以我每次遇到難點的東

原创 空杯理論

南隱是一位禪師。一天,一位學者來向他問禪,但自己喋喋不休。南隱則默默無語,以茶相待。他將茶水注入這位客人的杯子,滿了也不停下來,而是繼續往裏面倒。   眼睜睜看着茶水不停地溢出杯外,客人着急地說:“已經滿出來了,不要再倒了! ”   南隱

原创 【LANB WVS】一個正在孵化的漏掃平臺,開源漏洞掃描平臺。

一個正在孵化的漏掃平臺;漏洞掃描平臺。 github地址:https://github.com/colodoo/lanb-wvs 前言 本項目是立足於網絡安全的的WEB掃描平臺,定位是基於雲服務的微掃描平臺。 整合安全資源,提供一

原创 【Java面試】一步步搞懂ArrayList

直接通過以下幾行代碼開始一步步debug,先看看對象是怎麼被初始化的。 // add ArrayList arrayList = new ArrayList(); arrayList.add("1"); // get array

原创 【Java面試】通過安檢的例子理解什麼是可重入鎖

相信大家安檢的時候最討厭的就是兩類人,一類是違禁物品非常多又恰巧在你前面、另一類就是插隊的人,而這兩類人恰好解釋了可重入鎖。 看圖理解 現在安檢的準備去安檢的門前有一個大包小包A,老實巴交B,還有一個嚴厲的安檢員S。 A來得比

原创 【Java面試】以故事的形式教你理解死鎖,如何避免死鎖

目錄什麼是死鎖死鎖觸發條件賣家強買強賣如何避免死鎖參考資料 什麼是死鎖 先通過一段產生死鎖的代碼來理解死鎖是怎麼產生的。 /** * 線程死鎖 * */ public class ThreadDeadkockStudy {

原创 我爲什麼還繼續呆在外包公司

之前因爲覺得自己實習的地方很坑,沒轉正就辭職了,然後在家呆了好幾個月,得有小半年了吧,首先不是我不想去工作,一直在面試,但是真的沒人要我!最後經人推薦去了一個外包公司,事後我自己琢磨了一下,根本原因還是在自己身上,距當初已經有50

原创 【Java面試】我終於理解了併發和並行的區別

這兩個名詞一定很多人聽過,會不會有人理所當然的把這兩個名詞當成一個意思,其實這兩者有着本質上的區別。 【Java面試】我終於理解了併發和並行的區別併發並行畫圖理解總結參考資料 用工作中開發來舉個例子吧。 併發 同一時間有兩個需求,

原创 源碼解析:HashMap:哈希表(JDK8)

之前寫過一篇關於HashMap的文章,只是粗略的介紹了一下HashMap的整體架構,但是沒有很徹底閱讀整個源碼(暫不閱讀紅黑樹部分源碼)。 如果你想簡單的瞭解HashMap的總體結構,可以閱讀這篇文章。 【Java面試】徹底搞懂H

原创 Java併發編程實戰筆記(2):線程安全性-原子性

原子性 競態關係 複合操作 我們還是以一段代碼來理解這兩點。 public class ThreadSecStudy { static int count = 0; public static void mai

原创 Java併發編程實戰筆記(1):線程安全性-什麼是線程安全性

線程的安全的定義是複雜的,安全性中最核心的概念就是數據的正確性。 正確性 當多個線程訪問某個類時,這個類始終能表現出正確的行爲,那麼就稱這個類是安全的。 如果我們還是不懂這個正確性的定義,就舉一個反例來理解它。 public c