原创 Spring 源碼學習 - ClassPathXmlApplicationContext

衆所周知,Spring以其強大而又靈活的IoC管理功能著稱。IoC本質上是通過依賴注入DI的方式實現組件之間的解耦。其實在DI模式下,一個關鍵性的角色

原创 如何進行Java EE性能測試與調優

[b]性能測試的目標[/b]性能測試不同於功能測試,不是對與錯的檢驗,而是快與慢的衡量。在進行真正的性能測試之前要先搞清楚目標:1. 在確定的硬件條件

原创 從appfuse開始學習Spring和Hibernate - (2)Spring啓動log

分析appfuse的詳細的啓動日誌來看看Spring的啓動過程。1. 裝載app上下文main INFO org.springframework.web.context.ContextLoader - R

原创 關於Hashtable和HashMap, Vector和ArrayList

在功能上講Hashtable和HashMap, Vector和ArrayList有着幾乎相同的功能。他們的主要區別在於:Hashtable和HashMap的區別,先看put方法的源代碼Hashtablepu

原创 Tomcat 7 源碼分析 - 下載 tomcat source code 並導入eclipse

準備好好研究學習一下tomcat 7 的源代碼,那麼第一步就是下載,導入eclipse並且運行。[size=small]1. 下載源代碼[/size]tomcat 7 的源代碼在svn上,所以你需要svn的

原创 Java 併發編程 - Programming Concurrency on the JVM

這幾個月一直在做性能調優的工作,以前總是進行功能的開發,從來不考慮性能的問題,經過這幾個月的工作,發現從性能和擴展性的角度去看軟件開發,還真是大不一樣。在和朋友聊天的時候,提及Java程序是否能充分利用多核cpu的問題的時候,朋友給我推薦

原创 關於 sun.misc.Unsafe

今天在看java.util.concurrent.atomic包的源代碼的時候看到原來這個包的底層都調用了sun.misc.Unsafe這個類,這個類其實是個native的實現類,他的神奇之處就在於它可以直接訪問內存地址。如果你能直接調用

原创 Java String 詳解 - String Literal

爲了性能和內存資源上的考慮,JVM對String類型的數據做了特殊的處理。也就是大家都知道的String是immutable的或者是constant。其實很多面試或者筆試裏面都會考到。有時覺得沒事找事,確實

原创 Tomcat 7 源碼分析 - 初始化 class loader

Bootstrap 在啓動的時候初始化了三種class loader:common,server和shared。在它的createClassLoader方法裏面,通過:String value = Cata

原创 如何提高代碼質量

本文是寫給開發人員的建議,不會涉及很多QA方面的討論。我覺得有三個方法可以提高軟件質量,根據重要性和有效性一次爲:Code Review, Refactor和Unit Test。這三個方法不是三個階段,而是

原创 JVisualVM還真是不錯

最近再看Java 性能的問題。一直都習慣使用Jconsole和Jstack。今天偶然發現一個更好的東東JVisualVM。這個工具功能更強大而且有很多插件可以擴展,相信後面插件會越來越豐富。如此一來一些簡單

原创 Java Management Extensions (JMX) 學習筆記- 程序管理和監控

在學習Tomcat 7 的源代碼的時候發現,大量運用到了JMX, MBeans,所以決定先學習一下。[size=medium]介紹[/size]JMX是Java 5開始引入的API。這個API意在幫助管理和

原创 Java 執行過程詳解 - JVM 生命週期

Java的執行過程也就是JVM從啓動到退出的過程。JVM的運行是一個進程單元,可以用jps工具列舉出正在運行的JVM 進程。在一個JVM進程中可以運行多個線程。[size=medium]1. JVM 啓動[

原创 Java Generic 學習

泛型是Java 5開始引入的一個語言級別的特性,目的是爲了讓你的程序更爲可靠(reliable)。 程序總是有bug,而bug分爲編譯時bug和運行時bug,編譯時bug是比較令人舒服的bug

原创 Java System 類詳解 - properties and environment variables

在環境配置中我們經常需要知道或者設置系統屬性值和環境變量。系統屬性值是在同一個Java process裏面有效的全局變量。而環境變量則是對於整個操作系統中所有進程都可見的,就如同你在OS裏面設置的一樣。因此