原创 單例總結

雙重檢測 public class SingletonTest { // 定義一個私有構造方法 private SingletonTest() { } //定義一個靜態私有變

原创 分佈式原理概括

文章目錄分佈式原理知識點1Paxos算法一致性算法-RaftrpcNetty 模型 分佈式原理 知識點1 分佈式與集羣的區別: 集羣:多個人在一起作同樣的事 。 分佈式 :多個人在一起作不同的事 。 CAP理論和base理

原创 ApplicationContextAware和BeanFactoryAware獲取bean實例

這兩個接口在項目中的使用,主要是爲了動態獲取實例對象,兩種場景 第一種:獲取的實例對象都實現了相同的接口或者繼承了相同的父類,這樣就可以實現代碼的整潔複用; 第二種:比如方法的調用,類裏邊的方法相互調用,如果想使用自定

原创 setAccessible(true)用法及意義

實際開發中,setAccessible具體的用處主要有兩處: 作用於方法上,method.setAccessible(true); public static void test02() throws Exception{ User

原创 io流知識學習總結

總結的放到前邊: 下邊的類圖很重要,心裏邊一定要有個印象,最好可以記住,尤其是標紅的類; 注意裝飾類的使用,這是一種好的代碼規範,性能的提升; ByteArrayInputStream,ByteArrayOutStream這兩個類很關鍵,

原创 SpringMvc看源碼思路

1、HandlerMapping實現:使用DefaultAnnotationHandlerMapping(spring3.1之前)或RequestMappingHandlerMapping(spring3.1)替換之前的BeanName

原创 System.arraycopy方法小總結

@HotSpotIntrinsicCandidate public static native void arraycopy(Object src, int srcPos,

原创 Guava之項目集合操作使用

1.Maps.uniqueIndex(Iterable, Function) // nickname屬性能唯一確定一個WebUser ArrayList<WebUser> users = Lists.newArrayL

原创 dependencyManagement標籤在項目中的實際使用

首先,現在項目中,大家對於maven的使用,就是聚合和依賴,子類和父類之間的繼承,現在項目中遇到這樣一種情況,就是有些依賴的jar包,隨着使用的過程,版本會需要更新,如果使用的模塊比較少的話,一個模塊一個模塊去修改其實還可以(要麼修改pa

原创 redis的內存淘汰機制---LRU算法

目錄 LRU原理 實現1 實現2 先說明一下redis的內存淘汰機制! 官網上給到的內存淘汰機制是以下幾個: noeviction:返回錯誤當內存限制達到並且客戶端嘗試執行會讓更多內存被使用的命令(大部分的寫入指令,但DEL和幾個例外)

原创 ThreadLocal對request和response的使用

記得在一篇博文中看到描述threadLocal的一句話: ThreadLocal除了適用於多線程保證每條線程都有自己的變量副本外,還適用於在線程上下文中共享某些變量值。 這兩種說法是有區別的。前者強調的是,使用ThreadLocal對副本

原创 springMvc和springAop實現原理對比

1.兩者的實現思路是一樣的,都會使用到jdk動態代理,當然aop可能也會用到cgilb代理實現; jdk的生成的代理對象是實現了實際類接口,繼承了Proxy代理類($Proxy0 extends Proxy implements Huma

原创 springAop源碼分析

首先,請帶着以下疑問去看源碼, 1.aop的動態代理有jdk動態代理,也有cglib動態代理,最終如何選擇? 2.我們平常工作中面向切面編程到底是怎麼實現的? 3.AopContext.currentProxy()是幹什麼的,怎麼使用?

原创 基於TCP模擬聊天室

利用面向對象的思想,對在線聊天的模塊進行封裝; 一個服務器,可以有多個客戶端進行連接;每個客戶端是個單獨的線程,互不影響;(因爲每跟服務端建立一次連接,所對應的Socket是不同的,一個ServerSocket可以對應多個Socket);

原创 基於UDP模擬在線聊天

需要注意兩個核心類:DatagramSocket,DatagramPacket 和InetSocketAddress 實現多線程去模擬,本次例子會有四個線程去完成實現(學生和老師,都是既可以是接收者也可以是發生者); 使用字符轉換流(In