原创 freemarker 講義
1. 類型支持的類型 數據模型實現 模型接口 操作 注意標量 字符串 SimpleScalar TemplateScalarModel "Hel
原创 OpenJDK FAQ
What happens with JRockit? Will it become part of OpenJDK?Oracle engineers
原创 jetty源碼分析
加載WebXmlConfiguration對象,找到webdefault.xml(在jetty-webapp-9.1.jar包中)和web.xml文件,創建WebAppClassLoader,利用StandardDescriptorPr
原创 內存分配策略
大對象直接進入老年代大對象就是指需要大量連續空間的java對象,寫程序時應該避免“短命的大對象”可根據-XX:PretenureSizeThresho
原创 HashMap源碼
Map接口定義了一個內部類Entry HashMap 一個bucket用Entry(extends Map.Entry)鏈表示 HashMap可以存放null key和null value transfer 將當前tables上的所有的
原创 CAS ABA問題
首先要知道什麼叫CAS(compare and swap):在jdk裏面可以由UnSafe提供一個針對於volatile變量的操作,其原理是直接調用的
原创 垃圾回收(GC)
Garbage Collection垃圾收集需要完成的三件事1、哪些內存需要回收2、什麼時候回收3、如何回收java內存運行時區域的部分中,程序計數器
原创 公平鎖的性能比非公平鎖的性能低
爲什麼說公平鎖的性能比非公平鎖的性能低 在沒有深入瞭解內部機制及實現之前,先了解下爲什麼會存在公平鎖和非公平鎖。公平鎖保證一個阻塞的線程最終
原创 SimpleDateFormat
這玩意兒不是線程安全的,看起來就是個包裝器工具(SimpleDateFormat sdf = new SimpleDateFormat("yyyy-M
原创 線程安全與鎖優化
Brian Goetz對線程安全的定義:當多個線程訪問一個對象時,如果不考慮這些線程在運行時環境下的調度和交替執行,也不需要進行額外的同步,或者在調度
原创 編譯JDK
編譯hotspot的時候可能會出現的錯誤:"*** This OS is not supported:" `uname -a`; exit 1;這是由
原创 Spring MVC源碼解析
DispatcherServlet配置到web.xml。在servlet.init()的時候進行spring mvc的初始化 1、創建springmvc的ioc容器並refresh(),從ServletContext中拿到Spring
原创 Spring結構大概
入口:在web.xml裏面配置ServletContextListener,在Servlet容器初始化完以後會執行ServletContextListener的contextInitialized(ServletContextEve
原创 MySimpleReadWriteLock
import java.util.concurrent.TimeUnit; import java.util.concurrent.locks.AbstractQueuedSynchronizer; import java.util.c
原创 ConcurrentLinkedQueue
成員:head tail 內部類:Node item和next,Itr implements Iterator add offer 利用UNSAFE.compareAndSwapObject(p, nextOffSet, nu