原创 圖解並查集,附贈幾道leetcode練手題

前言 並查集是一種非常有用且高效的數據結構,千萬不要被這個極具專業性的名字嚇到了,它的算法思想和代碼實現都非常簡單,不需要花太大力氣就可以輕鬆掌握。下面就通過畫圖等方式爲大家介紹一下這種神奇的數據結構。 一、 圖解並查集 並查集有

原创 HTTPS詳解二:SSL / TLS 工作原理和詳細握手過程

在上篇文章HTTPS詳解一中,我已經爲大家介紹了 HTTPS 的詳細原理和通信流程,但總感覺少了點什麼,應該是少了對安全層的針對性介紹,那麼這篇文章就算是對HTTPS 詳解一的補充吧。還記得這張圖吧。 HTTPS 和 HTTP

原创 Java 線程池會自動關閉嗎?

文章目錄1. 線程池自動關閉的情況一:核心線程數爲 0 並指定線程存活時間1.1. 手動創建線程池2.2 Executors.newCachedThrteadPool() 創建線程池2. 線程池自動關閉的情況二:通過 allowC

原创 Hashtable, Collections.SynchronizedMap和ConcurrentHashMap線程安全實現原理的區別以及性能測試

Hashtable,Collections.SynchronizedMap和ConcurrentHashMap線程安全實現原理的區別以及性能測試 這三種 Map 都是 Java 中比較重要的集合類,雖然前兩個不太常用,但是因爲與多

原创 HTTPS 詳解一:附帶最精美詳盡的 HTTPS 原理圖

前言 作爲一個有追求的程序員,瞭解行業發展趨勢和擴充自己的計算機知識儲備都是很有必要的,特別是一些計算機基礎方面的內容,就比如本篇文章要講的計算機網絡方面的知識。本文將爲大家詳細梳理一下 HTTPS 的實現原理。 近年來,隨着用戶

原创 Java 虛擬機系列一:一文搞懂 JVM 架構和運行時數據區

Java 虛擬機系列一:一文搞懂 JVM 架構和運行時數據區 Java 虛擬機系列二:垃圾收集機制詳解,動圖幫你理解 文章目錄前言一、Java 虛擬機架構 (JVM Architecture)1.1 Class 文件 (字節碼文件

原创 手把手教你手動創建線程池

一、爲什麼要手動創建線程池? 我們之所以要手動創建線程池,是因爲 JDK 自帶的工具類所創建的線程池存在一定的弊端,那究竟存在怎麼樣的弊端呢?首先來回顧一下 JDK 中線程池框架的繼承關係: JDK 線程池框架繼承關係圖 我

原创 Java 虛擬機系列二:垃圾收集機制詳解,動圖幫你理解

Java 虛擬機系列一:一文搞懂 JVM 架構和運行時數據區 Java 虛擬機系列二:垃圾收集機制詳解,動圖幫你理解 文章目錄前言一、需要進行垃圾收集的內存區域二、判斷對象是否可回收的方法2.1 引用計數法2.2 可達性分析法三、

原创 關於 TCP, 你需要了解的都在這裏了

前言 TCP(Transmission Control Protocol,傳輸控制協議) 是計算機網絡的的重要組成部分,也是網絡編程的重要內容,還有我們平時接觸最多的 HTTP 也是基於 TCP 實現的。TCP 可以說是最重要的傳

原创 Java 虛擬機系列三:垃圾收集器一網打盡,船新的 ZGC 和 Shenandoah 聽說過嗎

前言 上篇文章已經爲大家詳細介紹了 JVM 的垃圾收集機制,那麼這次就一起來看看這些機制究竟是怎樣應用到具體的垃圾收集器上的吧。Java 語言和 JVM 在不斷迭代發展的同時,垃圾收集器也在不斷地進化,從最初的的單線程收集器 Se

原创 關閉線程池的正確姿勢,shutdown(), shutdownNow()和awaitTermination() 該怎麼用?

ExecutorService 接口提供了三個方法用於手動關閉線程池,分別是shutdown(),shutdownNow()和awaitTermination()。我們最經常使用的 ThreadPoolExecutor 正是 Ex

原创 環境配置筆記:Mac環境下如何通過 Apache 服務器新建並訪問 XML 和 JSON 文件

最近在看《第一行代碼》這本書,今天看到了編寫安卓程序解析 XML 文件的部分,在寫程序之前需要自行搭建 Apache 服務器並新建可訪問的 XML 文件。不過作者只介紹了 Windows 環境下的操作方法,這與 Mac 環境還是有

原创 推薦10款超好用的 IDEA 插件,“效率”、“裝X”兩不誤

IDEA 如今儼然已經成爲了最主流的 Java IDE,優點在這兒就不一一列舉了,但豐富的插件絕對是一大亮點。本文就爲大家介紹幾款我在開發中最喜歡的10款 IDEA 插件,既有效率工具,也有裝X神器,絕對滿足你的需求。 第一部分:

原创 Android Studio環境下,LayoutInflater的inflate方法取不到自定義佈局文件

今天在跟着《第一行代碼》敲那個聊天界面的小demo時碰到了一個問題,就是在調用 LayoutInflater 的 inflate 方法時,無法獲取自定義佈局文件。正確的代碼如下所示,但是未解決問題之前一直會有錯誤提示: View

原创 Leetcode 反轉鏈表系列 圖解詳細過程

對於一個程序猿來說,數據結構和算法的重要性就不用我多說了吧,算法題已然成了現在大廠筆試面試的重頭戲,廢話少說,Leetcode 刷起來呀。說起刷 Leetcode,我建議你按 tag 刷,不然只能像無頭蒼蠅,東一榔頭西一棒槌,最後