原创 數據結構與算法-----6.排序算法:

1.各種常用排序算法的時間複雜度: 算法名稱:    時間複雜度: 是否基於比較: 冒泡/插入/選擇(排序)          O(n^2) yes 快速排序/歸併(排序)          O(nlogn) yes 桶/計數/基數(排序

原创 數據結構-----2.鏈表:

1.概念:鏈表不需要在內存中有連續的內存空間,他是將零散的內存塊通過 “指針” 的形式串聯在一起,每個節點中需要保存下一個節點所在的地址。 鏈表與數組的區別是:數組在內存中需要一塊連續的空間來存儲數據,如果數組需要100MB的存儲空間,雖

原创 數據結構與算法-----7.二分查找:

1.概念:二分查找也稱爲 “折半查找”,採用的是二分思想,每次可以將數據查詢的範圍縮小爲原來的一半,所以它的效率非常高。 同時二分查找針對的也是有序的數據集合,它的時間複雜度爲O(logn)。 2.O(logn)是一個非常恐怖的數量級,即

原创 數據結構-----數組:

1.數組中的概念:是一種線性表數據結構,使用連續的內存空間來存儲類型相同的數據。 (1)線性表:數據排列成一種線形結構 ,如(數組,鏈表,棧,隊列)。非線性表:(樹,圖,堆) 2.數組是如何實現根據下標索引隨機訪問數據元素的 ? 數組支持

原创 數據結構與算法-----9.散列表:

1.概念:散列表,又稱爲哈希表。 2.散列思想:散列表使用的是數組支持利用下標隨機訪問數據的特性,散列表是數組的一種擴展,由數組演化而來,可以說:沒有   數組就沒有散列表。 3.爲什麼需要使用散列表這種數據結構: 因爲當我們存儲結構簡單

原创 java中什麼時候需要重寫equals和hashCode方法,以及爲什麼重寫:

1.使用Object默認的equals()和hashCode()方法: public class HashCode { private String name; private int age; public

原创 Redis中常用數據類型的底層數據結構:

1. redis是一種鍵值(key-value)數據庫,通常作爲內存數據庫來使用。需要通過 "鍵" 來查詢 "值"。 2.在Redis中,鍵的類型爲字符串,爲了方便多種數據類型的存儲方式,"值" 的數據類型有很多,常用的數據類型有 "字符

原创 java中字符串的初始化過程以及String Stringbuilder StringBuffer 的區別:

在Java的JVM中,有一個字符串常量池的概念,在jdk 1.7之後,字符串常量池被劃分到java的Heap中,Java的八種基本數據類型中,除了float 和 Double ,其他都實現了常量池技術。 (字符串常量池底層是用HashTa

原创 生產者和消費者:

public class ProductorAndCustomer {     /*      * 在生產者和消費者的飯店模型中,有四個角色:1.餐館,2.菜單,3.廚師,4.顧客      * 餐館中包含:廚師,顧客,菜單三種角色   

原创 java中實現在控制檯輸入數據的幾種方法:

1.使用Scanner取得一個字符串或一組數字   System.out.print("輸入");   Scanner scan = new Scanner(System.in);   String read = scan.nextLin

原创 如何在Windows下,設置虛擬域名:

1:首先找到本機Host目錄文件----->        C:\Windows\System32\drivers\etc\hosts 2:修改hosts文件,添加虛擬域名->

原创 java 性能優化:35 個小細節,讓你提升 java 代碼的運行效率

原文地址: https://blog.csdn.net/chaishen10000/article/details/89509577 代碼 優化 ,一個很重要的課題。可能有些人覺得沒用,一些細小的地方有什麼好修改的,改與不改對於代碼的運行

原创 JDK 中的 RandomAccess接口有什麼作用:

*在 java 中的 集合類中, (1)如果有implements RandomAccess接口,在遍歷該集合時採用for循環效率會更高。 (2)如果沒有implements RandomAccess接口,那麼在遍歷該集合時採用Itera

原创 CAS操作中的ABA問題,以及相應的優化:

一、併發業務場景 庫存業務,stock(sid, num),其中: sid爲庫存id num爲庫存值 如上圖所示,兩個併發的查詢庫存操作,同時從數據庫都得到了庫存是5。   接下來用戶發生了併發的庫存扣減動作: 用戶1購買了3個庫存,

原创 Java排序算法---快速排序

/*  * 快速排序的核心思想:1. 需要三個重要元素(左指針,右指針,基準數key[一般採用數組的第一個元素作爲基準數])  * 2. 如果採用數組的第一個數據作爲基準數,那麼需要首先右指針向前移動,直到找到比key小的數據停下。 *