原创 Java面試必會的40個問題

1.Java集合框架是什麼?說出一些集合框架的優點? 每種編程語言中都有集合,最初的Java版本包含幾種集合類:Vector、Stack、HashTable和Array。隨着集合的廣泛使用,Java1.2提出了囊括所有集合接口、實現和

原创 SpringMVC 註解式攔截器實現

編輯此區域 Huluwa-Notify系統在接收合作方的通知內容時,需要進行訪問控制,即需要對訪問的IP進行限制,防止惡意用戶篡改消息通知我們。 爲了實現方法的通用性,並降低對系統的侵入性,我選擇使用SpringMVC的註解式攔截器

原创 面向接口編程詳解(一)——思想基礎

我想,對於各位使用面向對象編程語言的程序員來說,“接口”這個名詞一定不陌生,但是不知各位有沒有這樣的疑惑:接口有什麼用途?它和抽象類有什麼區別?能不能用抽象類代替接口呢?而且,作爲程序員,一定經常聽到“面向接口編程”這個短語,那麼它是什

原创 Java volatile關鍵字

在java線程併發處理中,有一個關鍵字volatile的使用目前存在很大的混淆,以爲使用這個關鍵字,在進行多線程併發處理的時候就可以萬事大吉。 Java語言是支持多線程的,爲了解決線程併發的問題,在語言內部引入了 同步塊 和 vola

原创 HashMap與ConcurrentHashMap的區別

從JDK1.2起,就有了HashMap,正如前一篇文章所說,HashMap不是線程安全的,因此多線程操作時需要格外小心。 在JDK1.5中,偉大的Doug Lea給我們帶來了concurrent包,從此Map也有安全的了。

原创 Spring @Transactional的使用及原理

本文主要討論Spring聲明式事務中使用註解@Transactional的情況,包括以下主要內容: Spring @Transactional的配置;Spring @Transactional的傳播行爲和隔離級別;Spring @Tr

原创 HashMap的擴容機制---resize()

雖然在hashmap的原理裏面有這段,但是這個單獨拿出來講rehash或者resize()也是極好的。 什麼時候擴容:當向容器添加元素的時候,會判斷當前容器的元素個數,如果大於等於閾值---即當前數組的長度乘以加載因子的值的時候,就要

原创 利用Spring掃包實現發現具體的註解類

編輯此區域 需求描述: 在RocketMQ客戶端開發過程中,發現對於消費端的消費程序客戶端在開發過程中是無法提前預知的,即消費端的消費程序需要具體到業務中去實現。 因此,發現具體的消費方法是RocketMQ客戶端設計過程中一個不得不

原创 Spring Cloud核心組件底層原理

目錄 一、業務場景介紹 二、Spring Cloud核心組件:Eureka 三、Spring Cloud核心組件:Feign 四、Spring Cloud核心組件:Ribbon 五、Spring Cloud核心組件:Hystrix 六、S

原创 深入理解Java NIO

在 JDK1.4 之後,爲了提高 Java IO 的效率,Java 提供了一套 New IO (NIO),之所以稱之爲 New NIO,原因在於它相對於之前的 IO 類庫是新增的。此外,舊的 IO 類庫提供的 IO 方法是阻塞的,New

原创 AQS框架源碼分析

AQS就是AbstractQueuedSynchronizer,它是爲實現依賴於先進先出(FIFO)等待隊列的阻塞鎖和相關同步器(信號量,事件等)提供的一個框架。AQS繼承了AbstractOwnableSynchronizer類,這個類

原创 Spring 如何使用註解注入集合類list、set、map

首先通過示例來展示,如何在Spring中使用註解注入集合類(list、map、set等) 定義接口InjectService,繼承InitializingBean接口,便於打印Spring注入的實例對象 public interface

原创 JVM(二):JVM類加載機制

如下圖所示,JVM類加載機制分爲五個部分:加載,驗證,準備,解析,初始化,下面我們就分別來看一下這五個過程。   加載 加載是類加載過程中的一個階段,這個階段會在內存中生成一個代表這個類的java.lang.Class對象,作爲方法區這

原创 netty源碼分析之揭開reactor線程的面紗(二)

如果你對netty的reactor線程不瞭解,建議先看下上一篇文章netty源碼分析之揭開reactor線程的面紗(一),這裏再把reactor中的三個步驟的圖貼一下 reactor線程 我們已經瞭解到netty reactor線程的第

原创 netty源碼分析之揭開reactor線程的面紗(三)

上兩篇博文(netty源碼分析之揭開reactor線程的面紗(一),netty源碼分析之揭開reactor線程的面紗(二))已經描述了netty的reactor線程前兩個步驟所處理的工作,在這裏,我們用這張圖片來回顧一下: reacto