原创 算法基礎之--二分查找實現

package wck.sort;/** * Created on 18/9/10. */ /** * @program: demo * @description: 二分查找實現 * @author: wck * @cr

原创 算法基礎之--快速排序實現

package wck.sort;/** * Created by wusong on 18/9/12. */ /** * @program: demo * @description: 快速排序 * @author: wc

原创 算法基礎之--歸併排序

package wck.sort;/** * Created on 18/9/11. */ import java.util.Arrays; /** * @program: demo * @description: 歸併

原创 算法基礎之--最大堆實現

上圖紅色代表樹節點索引; 左子節點和父節點的索引關係是 : 2*n 右子節點和父節點的索引關係是 : 2*n +1 package demo; /** * * @author Administrator * 最大樹--

原创 算法基礎之插入排序

package wck.sort;/** * Created on 18/9/7. */ /** * @program: demo * @description: 插入排序 * @author: wck * @create:

原创 設計模式中的幾種關係總結

面向對象設計模式中,類與類之間主要有6種關係,他們分別是:依賴、關聯、聚合、組合、繼承、實現。他們的耦合度依次增強。 可以參考下圖的關係對應: 1.依賴(Dependence) 描述: 可以簡單的理解,就是一個類A使用到了另一個類B

原创 Java集合之 Map源碼解析

HashMap: 也是我們平時開發中使用頻率很高的雙列集合,直接父類是AbstractMap,是基於hash表存儲的一種集合。 幾個重要的類變量: //hash表的初始化大小,默認爲16.是基於數組

原创 java集合整理 Set源碼解析

Set存儲基本數據類型: 由以下代碼我們可以看到Set是存取基本數據類型無序,但是如果基於java8的strean流來說卻是有序的。普通的增強for循環打印的結果卻是無序的,但是可以保證的是都不可以存儲相同的元素。 public

原创 AQS同步隊列之共享鎖源碼解析

AbstractQueuedSynchronizer作爲java.util.concurrent包的基礎,它提供了一套完整的同步編程框架,開發人員只需要實現其中幾個簡單的方法就能自由的使用諸如獨佔,共享,條件隊列等多種同步模式。我們常用的

原创 hibernate中的HQL到底用沒用一級緩存?

一般正常來說,我們認爲發送兩次相同的查詢,hibernate中是隻會打印一次sql(也就是訪問數據庫),第二次再進行查詢時,會從一級緩存中拿。 那HQL也用了一級緩存麼?俺們來驗證下: //Hql查詢,查詢結果會放入Session

原创 log4j配置略解

# trace(堆棧)< DEBUG < INFO (信息)< WARN < ERROR < FATAL(致命) ### set log levels ### log4j.rootLogger=debug, stdout //d

原创 JVM如何優化

一、JVM內存模型及垃圾收集算法 1.根據Java虛擬機規範,JVM將內存劃分爲: New(年輕代) Tenured(年老代) 永久代(Perm) 其中New和Tenured屬於堆內存,堆內存會從JVM啓動參數(-Xmx:3G)

原创 java集合整理 List源碼解析

數組: /** * 數組大小固定,存儲有序(存和取順序一直) * 直接打印輸出對象需要重寫toString()方法,否則會調用父類的toString()打印的是引用地址值 */

原创 hibernate save和persist方法的區別

save:save方法如果在保存對象之前設置了id,那麼該id也會被認爲是無效的。 persist:體現的是持久化,persist體現的是持久化理念,也包括id.如果在保存之前設置了id,但主鍵策略由數據庫維護,造成衝突,會報出異常。

原创 靜態分派

Java面向對象的三個基本特徵:繼承,封裝,多態,我們這次來看Java虛擬機如何實現,這裏說的不是語法上的實現。 靜態分派: 在Java語言中符合“編譯期可知,運行期不可變”這個要求的方法,主要包括靜態方法和私有方法兩大類,前者與類型