原创 數據結構與算法(三)數組與鏈表編程實踐

1.支持動態擴容的數組 public class DynamicArray { //擴容因子 final float factor = 0.75f; int size = 16;

原创 數據結構與算法(四)鏈表(二)- 單向循環鏈表

public class RecycleLinkedList { @Test public void test() { System.out.println("0000000000000000000000

原创 數據結構與算法(五)棧- 數組棧+鏈表棧

public class Stack { @Test public void test() { ArrayStack arrayStack = new ArrayStack(); Syst

原创 H5離線包技術的實際應用-webview秒開

一、背景 在實際業務中,我們app中的webview使用的場景越來越多,加載速度成爲了困擾用戶的一個痛點,尤其是h5由jsp過渡到vue後,頁面加載速度更慢了,經常是經過長時間的loading才能加載出來,雖然這和我們的整體架構有關,首頁

原创 【重學Java】(四)Handler與ThreadLocal

先放結論:很多網上的文章說,threadlocal是以當前線程作爲key的,這個說法是錯誤的。正確的說法是:threadlocal用自己做key,存到threadlocalmap中,因爲一個Thread只有一個threadlocalmap

原创 數據結構與算法(九)查找 - 二分查找

1.時間複雜度:logn 每次查找後,數據規模縮減爲原來的一半 2.代碼實現 @Test public void test() { System.out.println("========" + bsearch(

原创 【重學Java】(三)靜態代理與動態代理

1.靜態代理 靜態代理是典型的代理模式的模版代碼,代碼結構如圖: 具體實現:被代理類和代理類實現同一接口,在代理類中持有被代理對象的引用,外界調用時,操作代理對象即可操作被代理對象。由於代理的存在,還可以在操作前後加入額外的邏輯。 如果

原创 【重學Java】(二)註解與反射

1.註解的意義 註解本身沒有意義,它是作爲一種標記或者註釋存在。需要結合反射、插樁纔有作用 jdk1.5引入,對於被註解的代碼沒有影響 2.元註解 是用於註解的註解:meta-annotation Target:註解的使用範圍 publ

原创 【重學Java】(一)Java泛型

1.什麼是泛型 JDK5引入泛型,提供了編譯時 類型安全 檢測機制。該機制允許程序員在編譯期檢測非法的類型。 本質是參數類型,所操作的數據類型被認定爲參數。 只存在於編輯器和編譯期,jvm中沒有泛型,目的是爲了兼容低版本 2.爲什麼使用泛

原创 數據結構與算法(八)排序(二) - 歸併排序、快速排序、第K大元素

public int[] mergeSortC(int[] array, int low, int heigh) { if (low < heigh) { int mid = (lo

原创 數據結構與算法(八)排序 - 冒泡排序、插入排序、選擇排序

public class Sort { @Test public void test() { // PopSort(new int[]{2, 3, 1, 4, 6, 5}); // Inse

原创 數據結構與算法(五)棧(二) -鏈表棧實現-模擬瀏覽器前進後退功能

public class Stack { @Test public void test() { // LinkedStack linkedStack = new LinkedStack(); //

原创 數據結構與算法(六)隊列 - 數組隊列+鏈表隊列

public class Queue { @Test public void test() { //均攤時間複雜度O(1) // ArrayQuene arrayQuene = new A

原创 數據結構與算法(七)遞歸 - 斐波那契數列+階乘實現+數據集合的全排列

public class Recursive { @Test public void test() { System.out.println("============Fibonacci " + Fib

原创 數據結構與算法(四)鏈表(五)- 兩個有序鏈表合併+尋找中間節點

public class CombineLinkedList { @Test public void test() { System.out.println("---------------------