原创

創建一個棧 package 棧; //定義一個結點 class Node{     Node next = null;     Integer data;     public Node(Integer data

原创 二叉查找樹

package 樹; import java.util.Stack; /**  * 定義一個結點  */ class Node{     Node left = null;     Node right =

原创 鏈表

package 鏈表; //定義一個結點 class Node{     Node next = null;     int data;     public Node(int data){         this.data = dat

原创 排序選擇題總結

排序選擇題總結 常見的排序算法有哪些?其中哪些是穩定的,哪些是不穩定的? 答:冒泡排序、選擇排序、直接插入排序、希爾排序、歸併排序、快速排序、堆排序、基數排序、計數排序。 其中,穩定的排序算法有:冒泡排序、直接插入排序、歸併排序、基數

原创 隊列

創建一個隊列 package 隊列; //定義一個結點 class Node{     Node next = null;     Integer data;     public Node(Integer da

原创 工廠設計模式

爲什麼要使用工廠設計模式呢?答:實現對象創建的統一管理。如果不使用工廠設計模式,那麼就需要客戶端自己new 對象,在客戶端new 對象是一種硬編碼,如果客戶端有n多地方都new 對象了,一旦這個對象做了修改,你需要改n個地方。但是採用了工

原创 詳談java內存模型

我們一起來討論討論java內存模型。理解內存模型對多線程編程無疑是有好處的。 java代碼是如何跑起來的 java代碼如何運行 我們寫的java代碼,自己看得懂,然而虛擬機是看不懂的,更不用說直接在機器上跑起來了。要讓java代碼按照我們

原创 分佈式緩存

分佈式緩存   分佈式緩存常見的解決方案?你們採用哪種? 答:Memcached集羣和Redis集羣(RedisCluster)。我們採用的是RedisCluster。   分佈式緩存帶來的複雜度問題 常見的問題主要包括如下幾點: ·數據

原创 設計模式知識點總結

什麼是設計模式?答:Christopher Alexander說過:“每一個模式描述了一個在我們周圍不斷重複發生的問題,以及該問題解決方案的核心。這樣,你就能一次又一次地使用該方案而不必做重複勞動。”        簡單來講,設計模式就是

原创 HashMap知識點總結(2)

HashMap集合知識點總結 衆所周知,HashMap是一個用於存儲Key-Value鍵值對的集合,每一個鍵值對也叫做Entry。這些個鍵值對(Entry)分散存儲在一個數組當中,這個數組就是HashMap的主幹。 HashMap數組每一

原创 堆排序

                                                   堆排序 堆是具有以下性質的完全二叉樹:每個結點的值都大於或等於其左右孩子結點的值,稱爲大頂堆;或者每個結點的值都小於或等於其左右孩子結點

原创 Spring依賴注入和控制反轉

Spring 能有效地組織J2EE應用各層的對象。不管是控制層的Action對象,還是業務層的Service對象,還是持久層的DAO對象,都可在Spring的 管理下有機地協調、運行。Spring將各層的對象以鬆耦合的方式組織在一起,Ac

原创 Mysql中的事務

數據庫本地事務 1.什麼是事務? 答:事務就是作爲單個邏輯單元執行的一組操作,要麼全成功,要麼全失敗。 2.事務的四大特性? 答:ACID。 原子性(Atomic):事務是由一個或多個活動所組成的一個工作單元。原子確保事務中的所有操作全部

原创 內存泄漏和內存溢出的區別和聯繫

1、內存泄漏memory leak :是指程序在申請內存後,無法釋放已申請的內存空間,一次內存泄漏似乎不會有大的影響,但內存泄漏堆積後的後果就是內存溢出。 2、內存溢出 out of memory :指程序申請內存時,沒有足夠的內存供申請

原创 分佈式緩存

分佈式緩存——RedisCluster   RedisCluster是如何確定數據要存在集羣中的哪個節點的? 答:Redis集羣中內置了16384個哈希槽,當需要在Redis集羣中放置一個key-value時,redis先對key使用cr