原创 Java雙親委派模型:爲什麼要雙親委派?如何打破它?破在哪裏?---todo

文章目錄一、前言二、類加載器三、雙親委派機制 1、什麼是雙親委派 2、爲什麼要雙親委派? 四、破壞雙親委派 1、直接自定義類加載器加載 2、跳過AppClassLoader和ExtClassLoader 3、自定義類加載器加載擴展類

原创 字符串匹配算法之BF算法(即暴力算法)

  BF算法,即暴力(Brute Force)算法,是普通的模式匹配算法,BF算法的思想就是將目標串S的第一個字符與模式串T的第一個字符進行匹配,若相等,則繼續比較S的第二個字符和 T的第二個字符;若不相等,則比較S的第二個字符和T的第一個

原创 rk字符串匹配算法java實現

    /** * rk字符串匹配算法,主要引入了hash的概念, * 利用子串的hash值依次對比主串相應長度的子串hash值 * 並對hash值相同的子串進行匹配對比 */ public class RKSearch {

原创 UncaughtExceptionHandler 是什麼?線程池如何處理異常?

    UncaughtExceptionHandler在 Thread API 中提供了 UncaughtExceptionHandler ,它能檢測出某個線程由於未捕獲的異常而終結的情況,能有效地防止線程泄漏問題當一個線程由於未捕獲異常

原创 LongAdder詳解以及底層原理分析

一、原子累加器我們都知道,原子整型可以在線程安全的前提下做到累加功能,而今天介紹的LongAdder具有更好的性能 我們先來看原子累加器和原子整型做累加的對比使用: private static <T> void demo(Sup

原创 Java 之 CAS 原理及實現是怎樣的?

面試官:今天我們來聊聊CAS吧?你對CAS瞭解多少? 候選者:好,CAS的全稱爲compare and swap,比較並交換 候選者:雖然翻譯過來是「比較並交換」,但它是一個原子性的操作,對應到CPU指令爲cmpxchg 面試官:好傢伙

原创 原子操作增強類LongAdder

一. 性能對比 阿里開發手冊推薦jdk8使用LongAdder替代AtomicLong         示例代碼 題目:熱點商品點贊計算器,點贊數加加統計,不要求實時精確。50個線程,每個線程100W次,統計總點贊數 比較s

原创 LongAdder類實現原理、源碼解析

1. 概述 AtomicLong通過循環CAS實現原子操作,缺點是當高併發下競爭比較激烈的時候,會出現大量的CAS失敗,導致循環CAS次數大大增加,這種自旋是要消耗時間cpu時間片的,會佔用大量cpu的時間,降低效率。 那這個問題如何解決

原创 看一遍就理解:動態規劃詳解

前言 我們刷leetcode的時候,經常會遇到動態規劃類型題目。動態規劃問題非常非常經典,也很有技巧性,一般大廠都非常喜歡問。今天跟大家一起來學習動態規劃的套路,文章如果有不正確的地方,歡迎大家指出哈,感謝感謝~ 什麼是動態規劃?

原创 爲什麼你學不會遞歸,告別遞歸,談談我的經驗

鏈接:https://www.zhihu.com/question/23995189/answer/1094101149 對於動態規劃,春招秋招時好多題都會用到動態規劃,一氣之下,再 leetcode 連續刷了幾十道題     之後,

原创 談談動態規劃的本質

    前言   在上一篇文章動態規劃的文章中,我們先由 Fibonacci 例子引入到了動態規劃中,然後藉助兌換零錢的例子,分析了動態規劃最主要的三個性質,即:   重疊子問題 最優子結構 狀態轉移方程   但是動態規劃遠不止這麼簡單

原创 關於 貪心算法 知友們的看法

貪心算法的產生背景是什麼?它主要解決的是哪一類的問題?這些問題可以總結成一個固定的什麼樣的模型? 產生背景沒了解過,但是我以前學建模的時候是這樣理解的: 貪心算法是一種思路,而非固定的操作方法;貪心算法叫短視算法更貼切,因爲它只考慮當前最

原创 95% 的算法都是基於這 6 種算法思想!!!

  https://zhuanlan.zhihu.com/p/431240843   1 遞歸算法 1.1 算法策略 1.2 適用場景 1.3 使用遞歸算法求解的一些經典問題    DOM樹爲例   2 分治算法

原创 如何理解動態規劃

一、動態規劃三板斧 狀態轉移公式 循環 或 遞歸 性能優化 二、WHY 1、狀態轉移公式 動態規劃與分治不一樣,分治的問題是相互獨立的,而動態規劃的各個狀態是有關聯關係的。比如揹包問題,你選擇了 i 物品之後,揹包的剩餘容量要發

原创 貪心算法:給我最好的,現在就要!

  每次做選擇的時候都做出當下最好的選擇,而不考慮將來的後果。並且期望最終得到的結果是全局最優的。 ——貪心算法 - Greedy Algorithm 什麼時候該使用貪心算法 針對一組數據,定義了限制值。現在需要我們從中選出幾個數據,在滿足