原创 面試複習(深圳第三天)

※※※Spring IOC的實現方式※※※ 1、XML配置(不推薦,xml文件太多,不易於管理) 2、自動裝配(推薦,使用spring註解和xml配合,這種方式也是比較普遍的) 3、零配置(不推薦,因爲項目上線後難以修改)

原创 Thread類的使用

前言: 每一個類都有wait(),notify()的方法,簡單理解這兩個方法: 1、對象維護了一個等待隊列list; 2、線程A中執行對象的wait方法,把線程A保存到list中;

原创 如何定製化序列化過程

1、繼承Serializable接口 2、實現writeObject(ObjectOutputStream oos)和readObject(ObjectInputStream ois)兩個方法 點贊 1 收藏 分享

原创 類的加載

public class Test{ public static void main(String[] args) { Father ts = new Son(); } } class Fathe

原创 HashMap源碼閱讀與理解

JDK1.8HashMap源碼分析 HashMap幾個對象: 1、默認初始化大小。tips:爲什麼must be a power of two呢,因爲在put元素的時候會進行(length-1)&hashcode操作,2的冪次方-1

原创 多線程初始三

認識jetty 1、new Server()所做的事情: 初始化線程池-->QueuedThreadPool-->execute()方法把任務加入job-->任務推入BlockingQueue(具體實現,這個是阻塞隊列可待優化) 初

原创 JAVA基本類型佔據字節數比特位

JAVA基本類型佔據的字節數,須知: byte :8個bit (bit就是比特位的意思) byte :1個字節 (byte就是字節的意思) char :2個字節 short :2個字節

原创 native關鍵字

一個Native Method就是一個java調用非java代碼的接口! 點贊 1 收藏 分享 文章舉報 白絲巾 發佈了44 篇原創文章 · 獲贊 50 · 訪問量 1萬+

原创 ArrayList源碼的閱讀與理解

JDK1.8ArrayList源碼分析 ArrayList幾個對象: 1、默認容量,默認爲10。tips:在new ArrayList()的時候並不會創建一個長度爲10的數組,這個數值在add的時候如果發現沒有指定容量會

原创 ReentrantLock源碼閱讀與理解

ReentrantLock源碼閱讀與理解 tips:在讀這篇文章之前請先理解本博客對AQS這個類的闡述:傳送門。本文針對的是理解AQS框架的基礎上進行說明的。 簡介:重入鎖具有可重入,可限時,可中斷,可公平四個特性。 幾個屬性和

原创 LinkedList源碼閱讀與理解

LinkedList源碼閱讀與理解 幾個變量: //記錄長度 transient int size = 0; //記錄頭節點 transient Node<E> first; //記錄尾節點

原创 實現一個無鎖的Stack,並寫一段測試代碼(多線程訪問),證明這個Stack是線程安全的。給出程序以及運行的截圖。

實現一個無鎖的Stack,並寫一段測試代碼(多線程訪問),證明這個Stack是線程安全的。給出程序以及運行的截圖。 //關鍵點:無鎖須利用CAS類 //data static private Atomic

原创 AbstractQueuedSynchronizer源碼閱讀與理解

AbstractQueuedSynchronizer源碼閱讀和理解 簡述:這個抽象類是J.U.C的鎖同步的基礎框架(簡稱:AQS),與之相關的鎖同步實現類有:ReentrantLock、ReentrantReadWriteLoc

原创 JAVA版Future模式實現代碼

JAVA版Future模式實現代碼 思路: 1、調用方發送數據給被調用方並起一個線程等待數據填充, 2、被調用方立馬返回數據並啓動一個線程處理, 3、處理完把數據交給調用方並喚醒調用方線程。 調用方代碼: import java.u

原创 ArrayBlockingQueue源碼閱讀與理解

ArrayBlockingQueue源碼閱讀與理解 簡介:FIFO隊列,運用重入鎖配合Condition控制多線程進出,算法:運用一個Object數組,插入順序0->length->0滿了則等待,0->length->0逐個取空了想取也等