原创 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