原创 抽象類繼承非抽象類

在java裏面抽象類是常見的,一般情況下都是, 1. 抽象類被實體類繼承 2. 抽象類被其他的抽象類繼承 今天查看Spring源碼,發現, public abstract class FactoryBeanRegi

原创 Spring源碼--關於AccessController.doPrivileged

在Spring裏發現一段代碼,位置在, DefaultListableBeanFactory -> preInstantiateSingletons()方法裏。 如下: if (System.getSecurityManage

原创 HashMap源碼解析(一)

引言 由於HashMap相對來說複雜一些,所以從類的註釋開始。 基於哈希表的 Map 接口的實現。此實現提供所有可選的映射操作,並允許使用 null 值和 null 鍵。(除了非同步和允許使用 null 之外,HashMap 類與

原创 ArrayList源碼解析(上)

成員變量 elementData爲實際存儲數據的數組 size爲ArrayList的實際大小,和elementData的長度有所區別 有一個特殊的地方,elementData使用transient修飾,即不可以被序列化,這麼做的

原创 HashMap源碼解析(三)

hash函數 final int hash(Object k) { int h = hashSeed; if (0 != h && k instanceof String) { return sun

原创 ThrealLocal詳解

ThrealLocal用於提供線程內部的局部變量, 這種變量在多線程環境下訪問能保證各個線程裏的變量相對獨立於其他線程內的變量, 也就是數據隔離。 簡單例子 先看一個簡單示的ThreadLocal示例,創建五個線

原创 ArrayList源碼解析(中)

判斷元素位置 這些函數都相對簡單。因爲存儲的元素可能爲null,所以判斷的時候多了一次。 public int size() { return size; } public boolean isEmpty() {

原创 ArrayList源碼解析(下)

序列化操作,writeObject和readObject private void writeObject(java.io.ObjectOutputStream s) throws java.io.IOException{

原创 tomcat責任鏈模式

本文模擬一個FilterChain過濾器處理請求Request,並且返回Response。 用到的設計模式是, 責任鏈。 責任鏈設計模式 每個對象都持有下家對象的引用而形成一條鏈,請求在這個鏈條上傳遞,直到某個對象處理

原创 接口多繼承

一直以爲java是沒有多繼承的,但是才發現其實對於interface,是可以多繼承的。今天查看Spring源碼,發現, public interface ConfigurableBeanFactory extends Hierar

原创 BeanFactory和ApplicationContext聯繫和區別

在Srping Ioc容器中,有BeanFactory和ApplicationContext兩個系列,分別是: 實現BeanFactory接口的簡單容器,具備最基本功能。 實現ApplicationContext接口的複雜容器

原创 使用Policy文件來設置Java的安全策略

衆所周知,Java語言具有完善的安全框架,從編程語言,編譯器、解釋程序到Java虛擬機,都能確保Java系統不被無效的代碼或敵對的編譯器暗中破壞,基本上,它們保證了Java代碼按預定的規則運作。但是,當我們需要逾越這些限制時,例

原创 IntelliJ IDEA 刪除項目

IntelliJ IDEA 刪除項目, 1. 先關閉項目,然後界面上出現項目例表, 2. 鼠標移到你想要刪除的項目上(不要點擊,一點就打開了), 3. 然後按DELETE鍵

原创 Iterator和ListIterator對比

Iterator是ListIterator的父類,Iterator可以用於所有集合,而ListIterator適用於List。 方法名稱 hasNext() next() remove() hasPrevious() pe

原创 Spring 自定義xsd

項目結構圖 代碼 application.xml <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schem