原创 Mybatis批量插入數據到Oracel

最近項目中出現了一個功能存在性能問題,經過研究發現主要是出現在數據插入的時候,當時用的單條提交,發現性能極其差,因爲項目中用的mybatis,所以考慮用批量提交的方式。 <!-- 批量提交 --> <insert id="bat

原创 java---求字符串中最長的重複子串

/** * 思路:"abdab" 拆分情況:1.ab abd abda abdab 2.bd bda bdab 3 da dab 4 ab 5 b * * @param str * @re

原创 設計模式之原型模式

原型模式是一種創建型的模式,原型模式的簡單程度僅次於單例模式和迭代器模式,正是由於簡單,使用的場景非常多。    通過原型模式的通用類圖可以看到,其實原型模式的核心就是一個clone方法,通過該方法實現對象的拷貝。   原型模式的優點:

原创 你真的理解java中的自動拆箱和自動裝箱以及類型轉換嗎?

public class Test { public static void main(String[] args) { Integer a=1; Integer b=2; In

原创 設計模式之單例模式

什麼是單例模式? 單例模式就是一個類只能產生一個實例,如果控制一個類只能產生一個實例呢? 我們在創建對象時一般都是使用new來產生對象即調用類的構造方法,如果將構造方法私有化那麼就控制了外部類隨意創建對象的能力。   所以單例的實現可以

原创 設計模式之抽象工廠模式

       抽象工廠模式是工廠方法模式的升級,在有多個業務品種、業務分類時,通過抽象工廠模式產生需要的對象是一種非常好的解決方法。   抽象工廠的通用類圖     抽象工廠模式使用於多個業務品種或者多個業務類型,即AbstractPr

原创 設計模式之建造者模式

將一個複雜的對象創建與它的表示分離,是的同樣的構建過程可以創建不同的表示。   通用類圖如下:     建造模式中主要有如下四個角色: Prodct產品類: 產品便是建造中的複雜對象   抽象建造者: 給出一個或多個抽象接口,規範產品的

原创 設計模式之中介者模式

        中介者模式又叫調停模式,定義如下:用一箇中介者對象封裝一系列的對象的交互,中介者使各個對象不需要顯示的相互作用,從而使其耦合鬆散,而且可以獨立的改變他們之間的交互。   通用類圖如下:     從圖中可以看到,中介者模式

原创 設計模式之裝飾者模式

        裝飾者模式又叫包裝模式,定義如下:動態的給一個對象添加一些額外的職責,就增加功能來說,裝飾者模式相比生成子類來說更爲靈活。     裝飾者模式的類圖如上: 從圖中可以看到裝飾着模式涉及到四個角色: 1.抽象構件角色Com

原创 Cube-web系統之Quartz+Spring實現任務監控管理

      Quartz 是 OpenSymphony 開源組織在任務調度領域的一個開源項目,完全基於 Java 實現。作爲一個優秀的開源調度框架,Quartz 具有功能強大,應用靈活,易於集成的特點         目前項目處於運維階

原创 設計模式之適配器模式

適配模式的定義如下: 將一個類的接口轉換成客戶端所期待的另一個接口,從而使原本因接口不匹配而無法在一起工作的兩個類能夠在一個工作   適配器模式在生活中還是很常見的,比如你的筆記本上的電源適配器,可以使用在110-220V之間變化的電源

原创 設計模式之策略模式

策略模式就是定義一組算法,將每個算法都封裝起來,並且是他們之間可以互換     通過類圖可以知道,策略模式設計到如下三個角色 1.Context封裝角色 它也叫上下文角色,其作用就是用來封裝高層模塊對策略的直接訪問,封裝可能存在的變化

原创 HashMap在java併發中如何發生死循環

        在多線程環境中,使用HashMap進行put操作時會引起死循環,導致CPU使用接近100%,下面通過代碼分析一下爲什麼會發生死循環。       首先先分析一下HashMap的數據結構:HashMap底層數據結構是有一個

原创 設計模式之責任鏈模式

責任鏈模式是一種對象的行爲模式。 在責任鏈模式裏,使多個對象都有機會出來請求,從而避免了請求的發送者和接收者之間的耦合關係。將這些對象連成一條鏈,並沿着這條鏈傳遞該請求。               責任鏈模式的顯著優點就是講請求和處理

原创 設計模式之觀察者模式

觀察者模式也叫發佈訂閱模式,它是一個在項目中經常使用的模式,定義如下:   定義對象間一種一對多的依賴關係,是的每當一個對象改變狀態,所有依賴它的對象都會得到通知並被自動更新   觀察者模式通用類圖:    通過類圖看到觀察者模式涉及