原创 一次排查線上線程池數量過高的報警經歷

  線上jstack查看正常機器和問題機器對比堆棧信息,發現大量的http-nio-1601-exec-線程在等待,查看線上監控發現優惠券接口調用量飆升,中午商家做活動搶券,根據線程名字可以看出是tomcat的線程池被打滿了,線上監控顯

原创 HashMap源碼解析-java8

1.構造函數如下 HashMap() HashMap(int initialCapacity) HashMap(int initialCapacity, float loadFactor) HashMap(Map<? extends K,

原创 紅黑樹基礎-第三篇-源碼解析

本文主要解析java8中HashMap的紅黑樹源碼部分,如有不懂可以先看我寫的紅黑樹基礎-第一篇和紅黑樹基礎-第二篇 1.左旋 注意:圖中節點標號跟下面代碼中變量名一致,便於理解。 /** * 紅黑樹節點左旋操作 * @param

原创 Java鎖,偏向鎖,輕量級鎖,重量級鎖原理(轉載)

之前做過一個測試,詳情見這篇文章《多線程 +1操作的幾種實現方式,及效率對比》,當時對這個測試結果很疑惑,反覆執行過多次, 發現結果是一樣的:  1. 單線程下synchronized效率最高(當時感覺它的效率應該是最差纔對);  2.

原创 Object源碼解析

/** * java類繼承體系下的根類,是所有類的超類基類,所有的對象都擁有該類的所有方法 * * @author unascribed * @see java.lang.Class * @since JDK1.

原创 spring郵件發送demo

公司一直使用的是org.apache.commons.mail.HtmlEmail來發送郵件,今天測試了一下spring的郵件發送功能,感覺特不錯,也記錄一下踩得坑。 首先是maven依賴: <dependency> <group

原创 紅黑樹基礎-第二篇-刪除

寫在前面 總結了紅黑樹的幾篇文章,總感覺意猶未盡,從當初我懼怕紅黑樹到現在理解紅黑樹,真是下了不少功夫,但是也不得不感謝一篇文章,講紅黑樹還算透徹,圖解比較好,但是仍然有部分我不理解的地方或是我覺得有缺陷的地方,所以我決定自己總結一番徹底

原创 紅黑樹基礎-第二篇

本文主要解析java8中HashMap的紅黑樹源碼部分,如有不懂可以先看我寫的紅黑樹基礎-第一篇 1.左旋 注意:圖中節點標號跟下面代碼中變量名一致,便於理解。 /** * 紅黑樹節點左旋操作 * @param root 根節點

原创 紅黑樹基礎-第一篇

一、紅黑樹的定義和性質 紅黑樹是一種含有紅黑結點並能自平衡的二叉查找樹。它並且滿足下面定義: 定義1. 每個節點要麼是黑色,要麼是紅色。 定義2. 根節點是黑色。 定義3. 每個葉子節點(Nil)是黑色。 定義4. 每個紅色結點的兩個子結

原创 動態規劃-今日頭條-房間跳躍次數

題目描述 存在n+1個房間,每個房間依次爲房間1 2 3...i,每個房間都存在一個傳送門,i房間的傳送門可以把人傳送到房間pi(1<=pi<=i),現在路人甲從房間1開始出發(當前房間1即第一次訪問),每次移動他有兩種移動策略:    

原创 排序算法總結

幾種常見的排序算法 排序一般指對關鍵字的排序,下面的例子都是針對int數值類型舉例,對於Object類似。 相關概念: 1)內排序和外排序 排序過程完全在內存中進行稱內排序,有時數據量大,內存無法全部容納,需要藉助外部存儲設備存取,此種

原创 IntelliJ IDEA 2017.3.3 完美破解激活教程,到2099年

準備工作:下載“IntelliJ IDEA 2017.3.3旗艦版”和“JetbrainsCrack-2.6.10-release-enc.jar”目前“IntelliJ IDEA 2017.3.3旗艦版”在官網已經沒有下載入口,有需要的

原创 java常見的設計模式簡介

//常用設計模式簡介 創建型模式,共五種:工廠方法模式、抽象工廠模式、單例模式、建造者模式、原型模式。 結構型模式,共七種:適配器模式、裝飾器模式、代理模式、外觀模式、橋接模式、組合模式、享元模式。 行爲型模式,共十一種:策略模式、

原创 深入理解Java虛擬機重點

一、Java虛擬機內存分區 (1)方法區(一般稱永久代) 1、所有線程共享的區域 2、主要存放類信息、常量、靜態變量、常量池等 (2)虛擬機棧 1、線程私有的內存區域 2、每個方法調用都會創建自己的棧幀,

原创 Linux基礎命令

# Linux命令 # 命令格式 命令 [選項] [參數] # 簡化選項和完整選項 -a和--all是一樣的 ####################### 基礎命令 # 顯示當前目錄 pwd # 進入目