原创 JAVA中爲什麼Map桶中個數超過8才轉爲樹

爲什麼要轉換? 因爲Map中桶的元素初始化是鏈表保存的,其查找性能是O(n),而樹結構能將查找性能提升到O(log(n))。當鏈表長度很小的時候,即使遍歷,速度也非常快,但是當鏈表長度不斷變長,肯定會對查詢性能有一定的影響,所以才需要

原创 Spring中Bean的生命週期

最近項目有用到對Spring的擴展,順便整理下Spring中Bean的生命週期。 BeanFactory中Bean的生命週期 當調用者通過getBean(beanName)向容器請求某一個bean時,如果容器註冊了org.spri

原创 Mockito初探——快速入門

Mockito是基於CGLIB代理,實現打樁。它通過攔截對象的所有操作方法,對於滿足打樁條件的調用,返回預設的返回值。 主要註解 @InjectMocks 用於標記對象屬性允許用mock或spy注入。嘗試通過按「先構造函數注入再set

原创 Dubbo原理淺析——從RPC本質看DUBBO

RPC的本質是什麼?通俗地講RPC就是要解決遠程服務間的調用問題,也就是管理服務配置並提供便捷可靠高效的服務間調用。 我們來看看dubbo的定義:dubbo是一個分佈式的服務框架,致力於提高性能和透明化的RPC遠程服務調用方案,以及S

原创 功夫貸支付服務架構演進之路——架構原型

第三方支付的作用 在沒有第三方支付時,人們交易一般都是通過現金直接交易,當場錢貨兩清(需要雙方在場);如果是大額交易的話,一般雙方先達成商品交易信息的一致,之後買家會通過銀行櫃檯轉賬,轉賬後雙方再次確認信息(流程較長)。 有了第三方支付後

原创 支付服務架構演進之路——解決的問題

前天和朋友在一起聊天,聊到在做什麼,聽着他滔滔不絕地,真佩服他的記憶力,後面他說他都有記筆記的習慣,一篇篇的,什麼CSDN、javaeye、博客園,還自建博客。確實東西做久了,自然慢慢地也就淡忘了,回想一下以前做過的事,能記起來的還真屈

原创 sql之內外連接

作爲開發,或多或少會接觸到數據庫,之前接觸的都是零零散散的皮毛而已,現階段正想系統學一下數據庫,然後就寫些以後複習用吧。。。   SQL連接常用來關聯多張表。 常見的連接有: 內連接(INNER JOIN) 左(外)連接(LEFT (O

原创 DataGridView合併列標題

下面的示例實現如下形式的列標題合併。 -----------------------------------------------------------------                |   January     |

原创 Struts 2 struts.xml詳解(三)

攔截器(Interceptor)配置         上節簡單地介紹了Action的配置,這節簡單介紹一下攔截器的配置。 1 攔截器棧的配置         顧名思義,攔截器就是在action的執行前後實行攔截,加入某些操作。攔截器類似

原创 深入淺出Java設計模式之備忘錄模式

一、引子   俗話說:世上難買後悔藥。所以凡事講究個“三思而後行”,但總常見有人做“痛心疾首”狀:當初我要是……。如果真的有《大話西遊》中能時光倒流的“月光寶盒”,那這世上也許會少一些傷感與後悔——當然這隻能是癡人說夢了。   但是在我

原创 Struts 2 struts.xml詳解(二)

Action配置         上節大致講了關於struts.xml的整體結構,下面講一下它的一些詳細的配置。先從action說起吧! Method屬性         在action中有一個method屬性,可以指定此action調

原创 C#在控件上有序地動態添加自定義控件

經常我們需要在一個控件的工作區上動態添加新的控件,例如在panel控件上動態添加我們自定義的UserControl,並且希望按照我們所希望的順序顯示。 比較簡單的方法:用Dock = DockStyle.Top佈局panel.Contro

原创 C#中decimal, double, float的區別

        一直很奇怪C#的預定義數據類型中爲什麼加了一個decimal,有float和double不就夠了嗎?今天來挖一挖。 浮點型 Name CTS Type Description Signi

原创 DataGridView圖像文本單元格

爲了美觀,有時候我們需要文本單元格中帶有圖標,然而微軟自帶的DataGridView控件中沒有類似的控件。下面的示例就是實現這樣的一個控件。在文本前顯示圖像,顯示出的圖像如果太大,效果不好看,可以結合之前寫過的C#圖像縮放與裁剪,自己加以

原创 C#圖像縮放與裁剪

文筆不好,不廢話,直接進入正題,不解釋,相信大家都看得懂。   按百分比縮放圖像: public static Image ScaleByPercent(Image imgPhoto, int Percent) { float n