原创 java web日誌記錄之spring aop實現方式

實現思路:spring aop切入到bean,在需要寫日誌的方法加入註解AuditLog,如果沒有註解的方法則不記錄日誌。 註解類 @Target({ElementType.PARAMETER, ElementType.METHOD})

原创 Java線程(二):Lock

一、爲什麼出現Lock? 我們知道java中有synchronized可以有效的解決併發引起的共享資源線程安全問題,但是synchronized存在一些缺陷。 1)當使用synchronized時線程獲取的鎖已經被佔用只能等待其他線程釋放

原创 spring ioc中實例化bean以及依賴注入bean和基本類型屬性簡單實現方案

Spring兩個重要特性IOC和AOP,本文中簡單實現bean的創建以及屬性依賴注入。 實現步驟如下: 1、通過dom4j解析bean.xml文件,將bean對象以及依賴屬性裝入List。 2、遍歷list,通過反射機制實例化對象。 3、

原创 java多線程之fork/join

1、fork join是什麼?   Fork/Join框架是Java7提供了的一個用於並行執行任務的框架, 是一個把大任務分割成若干個小任務,最終彙總每個小任務結果後得到大任務結果的框架。 fork join流程圖 2、怎麼使用fork

原创 POI實現導出Excel數據工具類

  項目中很多地方需要導出excel數據,因此需要將導出excel數據封裝成工具類。實現思路:      1、將查詢結果List<T>以及T作爲入參。      2、新建一個註解,在T對象需要生成表格數據的字段加上這個註解。供外部調用

原创 java基於事件驅動之spring事件驅動

事件驅動4個要素: 事件、事件源、註冊中心(事件通道)、偵聽器。 事件驅動和觀察者模式本質一樣,事件驅動是觀察者模式的經典實現。 事件驅動的好處: 1、 無耦合的關聯,事件發佈者和訂閱者不需要預先知道彼此的存在。 2、 異步消息傳遞,業

原创 緩存擊穿之布隆過濾器bloom Filter實現方式

一、什麼是緩存擊穿 查詢一個在緩存內必然不存在的數據,導致每次請求都要去存儲層去查詢,這樣緩存就失去了意義。如果在大流量下數據庫可能掛掉。緩存擊穿是黑客攻擊系統的常用手段。 二、怎麼解決緩存擊穿問題? 採用布隆過濾器來實現。 什麼是布隆過

原创 java之ThreadLocal

1、概述 ThreadLocal類用來提供線程內部的局部變量。這些變量在多線程環境下訪問(通過get或set方法訪問)時能保證各個線程裏的變量相對獨立於其他線程內的變量,ThreadLocal實例通常來說都是private stat

原创 Java內存模型

Java內存模型即Java Memory Model,簡稱JMM。JMM定義了Java 虛擬機(JVM)在計算機內存(RAM)中的工作方式。JVM是整個計算機虛擬模型,所以JMM是隸屬於JVM的。 如果我們要想深入瞭解Java併發編程

原创 一個看似簡單的數字交換問題

package test; import java.lang.reflect.Field; /** * 交換兩個數字的相關知識點 * 1、Integer a = 1;編譯後可以看到裝箱操作Integer.valueOf(1);

原创 volatile和synchronized比較以及線程安全中的應用

一、線程安全的執行控制和內存可見的理解 線程安全的兩個方面:執行控制和內存可見。 執行控制的目的是控制代碼執行(順序)及是否可以併發執行。 內存可見控制的是線程執行結果在內存中對其它線程的可見性。根據Java內存模型的實現,線程在具體執行

原创 java枚舉實現命名空間層級限定

實現思路:通過遞歸調用實現枚舉限定命名空間 枚舉類:Type public enum Type { China(null, "中國"), Chongqing(China, "重慶"), Yuzhongqu(Chongqing, "渝中區

原创 hashmap底層實現原理以及常見的面試問題

hashmap算法優劣標準1.分佈均勻 2.儘量避免衝突 關於hashMap的幾個問題 1、hashing的概念這個是一個hash算法,將Key對象通過hashing的到需要存儲值對象的位置bucket。 2、HashMap中解決碰撞的

原创 Java線程(一):synchronized

一、什麼時候會出現線程安全問題? 當多個線程同時訪問一個資源(共享資源)時會出現線程安全。資源可以是一個變量、一個對象、一個文件、一個數據庫表等。需要注意的是如果多個程序同時訪問一個方法,定義在方法內部的局部變量並不是臨界資源(共享資源)

原创 java通過filter實現操作日誌入庫的實現

java Web工程實現操作日誌記錄的方式有很多,比如通過spring aop方式實現,也可以通過Filter方式實現。 public class StoreLogFilter implements Filter { private s