原创 同步狀態

同步狀態 public enum State { /** 線程新建未開始 */ NEW, /** 在虛擬機運行但是可能在等待其他來自操作系統的資源 */ RUNNABLE,

原创 給定範圍n內給定數字m的個數

給定範圍n內給定數字m的個數 求出1~13的整數中1出現的次數,並算出100~1300的整數中1出現的次數? 爲此他特別數了一下1~13中包含1的數字有1、10、11、12、13因此共出現6次,但是對於後面問題他就沒轍了。

原创 旋轉數組最小的數

旋轉數組最小的數 import java.util.ArrayList; /** * @Author JH * @CreateDate 18-6-1 * @Description 旋轉數組最小的數 * 利用旋轉數組兩部分有

原创 樹的深度 遞歸非遞歸實現

樹的深度 遞歸非遞歸實現 package com.dugstudio.SwordToOffer; import java.util.LinkedList; /** * 樹的深度遞歸和非遞歸算法 */ class TreeN

原创 求兩個整數之和 找出所有和爲S的連續正數序列 字符串循環左移(ROL)

求兩個整數之和 找出所有和爲S的連續正數序列 字符串循環左移(ROL) package com.dugstudio.SwordToOffer; import java.util.ArrayList; /** * @Autho

原创 ReentrantReadWriteLock源碼解析

NonfairSync ReentrantReadWriteLock static final class NonfairSync extends Sync { private static final long seri

原创 希爾排序

/** * @Author JH * @CreateDate 18-6-7 * @Description 希爾排序 */ //使用int數組時要將泛型繼承改爲Integer這樣才能使用compareTo public c

原创 ReentrantLock與AQS

ReentrantLock的Sync繼承自AQS Sync實現了nonfairTryAcquire 、tryRelease、isHeldExclusively, 而TryAcquire和lock留給子類實現 abst

原创 兩個隊列實現棧

兩個隊列實現棧 import java.util.LinkedList; import java.util.Queue; import java.util.Stack; /** * @Author JH * @Create

原创 JVM清除算法

標記-清除算法 標記之後清除所有標記過的對象,會產生大量的內存碎片,兩個階段效率都不高 複製算法 將內存分爲兩部分,第一部分的空間佔滿了就將還存活的對象, 複製到另一塊上,把用過的那一塊清除掉 現在的商

原创 MySQL查詢優化

應用WHERE語句的條件 在索引中使用where條件來過濾不匹配的記錄,在存儲引擎年後過濾層完成 使用索引覆蓋掃描(Extra中出現了Using index)來返回記錄,直接從索引中過濾不需要的 記錄並

原创 十進制轉成二進制中1的個數

解法一:讓臨時變量每次乘以二再與源數字相與,測試每一位上的數字是否爲1 public int NumberOf1(int n) { int temp=1,count=0; while(temp!=0

原创 數組拼接成最小的數字

數組拼接成最小的數字 package com.dugstudio.SwordToOffer; import jdk.nashorn.internal.ir.IdentNode; import java.util.ArrayLi

原创 從尾到頭打印鏈表每個節點的值

package com.dugstudio.SwordToOfferBook.Singleton.Interview; import java.util.ArrayList; import java.util.Stack; /

原创 高性能MySQL複製與緩存

複製解決的基本問題 讓一臺服務器的數據讓其他服務器保持同步,一臺主庫的數據可以同步到多臺備庫上, 備庫本身也可以被配置成另外一臺服務器的主庫。 MySQL支持兩種複製方式:基於行的複製和基於語句的複製(