原创 二叉樹中找到一個節點的後繼節點

1.後繼節點:二叉樹的中序遍歷下,某節點的後一個節點就是後繼節點。 2.兩種情況: 節點有右子樹:右子樹中的最左節點就是該節點的後繼節點。可以通過“左中右”順序理解一下。 節點無右子樹:一直向上查找,直到該節點是父節點的左孩子,即爲後繼節

原创 使用“前綴樹”過濾敏感詞

1.前綴樹 - 名稱:Trie、字典樹、查找樹 - 特點:查找效率高,消耗內存大 - 應用:字符串檢索、詞頻統計、字符串排序等 2.敏感詞過濾器 - 定義前綴樹 - 根據敏感詞,初始化前綴樹 - 編寫過濾敏感詞的方法 3.代碼實現 @

原创 FastJson解析字符串

一.需求:獲取Json字符串中的某個字段值 二.實現代碼 public class test { private static String COMPLEX_JSON_STR = "{\"status\":\"OK\",\

原创 如何實現大正整數相加?

原文鏈接 在不使用BigInteger類的情況下,如何計算兩個大正整數的和? 程序不可能通過一條指令計算出兩個大整數的和,但我們可以把一個大運算拆分成多個小運算, 像小學生一樣列豎式進行按位運算。這裏還有一個問題,我們都知道long類型的

原创 DCL失效分析

JAVA 單例雙重檢查(double check)爲什麼不好用 在閱讀之前,請先了解下線程併發涉及到的三個概念:原子性、可見性、有序性,可以看下這篇文章:http://www.cnblogs.com/dolphin0520/p/39

原创 Queue、Deque、Stack

Table of Contents 1.類圖結構 2.Queue 3.Deque(Double Ended Queue雙端隊列) 4.Stack 1.類圖結構 2.Queue 1.使用場景:需要出現隊列的數據結構時,使用Queue. 2

原创 單例模式的破壞與保護

How to prevent Singleton Pattern from Reflection, Serialization and Cloning? 1. Reflection 2. Serialization 3. Cloni

原创 二叉樹的遞歸遍歷、非遞歸遍歷、層次遍歷

1.遞歸遍歷 2.非遞歸遍歷 3.層次遍歷 1.遞歸遍歷 在使用遞歸遍歷的時候,每個節點會經過三次. public class PreInPosTraversal { public static class Node { pub

原创 Java實現堆結構

  public class HeapSort { // 堆排序O(nlogn) public static void heapSort(int[] arr) { if (arr == null || arr.lengt

原创 (Java實現)冒泡、插入、選擇、堆、快速、歸併、桶排序

1.冒泡排序 public class Code_00_BubbleSort { public static void bubbleSort(int[] arr) { if (arr == null || arr.length

原创 AOP、AspectJ、Spring AOP、JDK動態代理、CGLib動態代理

Table of Contents 1. AOP介紹 2.AOP的實現 3.Spring AOP的兩種實現方式 4.AspectJ實現示例 5.JDK動態代理、CGLib動態代理 實現示例 6.小結 1. AOP介紹 AOP稱爲面向切面編

原创 Error和Exception,throw和throws的區別

1 Error類和Exception類 1.1 Error(錯誤) 1.2 Exception(異常) 1.3 常見的RuntimeException異常 1.4 常見的CheckedException異常 2 throw和throws

原创 Cookie,Session,Token

我們知道HTTP是一種無狀態的協議,爲了分辨鏈接是誰發起的,需自己去解決這個問題。而且一旦數據交換完畢,客戶端與服務器端的連接就會關閉,再次交換數據需要建立新的連接。這就意味着服務器無法從連接上跟蹤會話。導致有些情況下即使是同一個網站每打

原创 Volatile關鍵字

爲什麼會有這個關鍵字? 計算機在執行程序時,每條指令都是在CPU中執行的,而執行指令過程中,會涉及到數據的讀取和寫入,但由於CPU執行速度很快,而從內存讀取數據和向內存寫入數據的過程跟CPU執行指令的速度比起來要慢的多,因此如果任何時候對

原创 貪心:花最少的代價切分整塊金條

題目描述: 一塊金條切成兩半, 是需要花費和長度數值一樣的銅板的。 比如長度爲20的 金條, 不管切成長度多大的兩半, 都要花費20個銅板。 一羣人想整分整塊金 條, 怎麼分最省銅板? 示例: 例如,給定數組{10,20,30}, 代表一