06 2009 檔案
JVM 調優 技巧 總結
摘要: 寫了好幾篇關于這個方向的文章了,但連自己都感覺寫的有點亂,沒有總結。所以現在把所有方法整理到一起,如果以后又發現新的,我繼續補充到這篇文章里。
這篇是技巧性的文章,如果要找關于GC或者調整內純的文章,看我其他幾篇文章。因為是JVM 調優總結,所以廢話少說。從各方面一共收集到以下幾個方法:
閱讀全文
posted @
2009-06-28 10:57 RoyPayne 閱讀(429) |
評論 (0) 編輯
Hibernate延遲加載機制
摘要: 延遲加載:
延遲加載機制是為了避免一些無謂的性能開銷而提出來的,所謂延遲加載就是當在真正需要數據的時候,才真正執行數據加載操作。在Hibernate中提供了對實體對象的延遲加載以及對集合的延遲加載,另外在Hibernate3中還提供了對屬性的延遲加載。下面我們就分別介紹這些種類的延遲加載的細節。
閱讀全文
posted @
2009-06-28 08:30 RoyPayne 閱讀(198) |
評論 (0) 編輯
解讀ClassLoader
摘要: ClassLoader一個經常出現又讓很多人望而卻步的詞,本文將試圖以最淺顯易懂的方式來講ClassLoader,希望能對不了解該機制的朋友起到一點點作用.
要深入了解ClassLoader,首先就要知道ClassLoader是用來干什么的,顧名思義,它就是用來加載Class文件到JVM,以供程序使用的。我們知道,java程序可以動態加載類定義,而這個動態加載的機制就是通過ClassLoader來實現的,所以可想而知ClassLoader的重要性如何。
閱讀全文
posted @
2009-06-26 22:38 RoyPayne 閱讀(261) |
評論 (0) 編輯
request.getParameter()和request.getAttribute()的區別
摘要: request.getParameter
是用來接受來自get方法或post方法的參數
只能接受java.lang.String
也就是說String hotel_id = request.getParameter("hotel_id");
request.getAttribute
是用來接受來自servlet的變量或Action(其實Action就是特殊的Servlet)
在Action中,request.setAttribute("ret",ret);
只能接受java.lang.Object
也就是說List ret = (List)request.getAttribute("ret");
一個是變量類型,一個對象類型
閱讀全文
posted @
2009-06-25 22:01 RoyPayne 閱讀(1165) |
評論 (0) 編輯
通通透透理解ThreadLocal
摘要: 概述
我們知道Spring通過各種DAO模板類降低了開發者使用各種數據持久技術的難度。這些模板類都是線程安全的,也就是說,多個DAO可以復用同一個模板實例而不會發生沖突。
我們使用模板類訪問底層數據,根據持久化技術的不同,模板類需要綁定數據連接或會話的資源。但這些資源本身是非線程安全的,也就是說它們不能在同一時刻被多個線程共享。
雖然模板類通過資源池獲取數據連接或會話,但資源池本身解決的是數據連接或會話的緩存問題,并非數據連接或會話的線程安全問題。
按照傳統經驗,如果某個對象是非線程安全的,在多線程環境下,對對象的訪問必須采用synchronized進行線程同步。但Spring的DAO模板類并未采用線程同步機制,因為線程同步限制了并發訪問,會帶來很大的性能損失。
閱讀全文
posted @
2009-06-23 09:30 RoyPayne 閱讀(450) |
評論 (0) 編輯
java的淺復制和深復制
摘要: 1.淺復制和深復制概念
⑴淺復制(淺克?。?
被復制對象的任何變量都含有和原來的對象相同的值,而任何的對其他對象的引用仍然指向原來的對象。換言之,淺復制僅僅復制所考慮的對象,而不復制他所引用的對象。
閱讀全文
posted @
2009-06-20 18:03 RoyPayne 閱讀(170) |
評論 (0) 編輯