re: 落網之后,太忙,暫停寫博[未登錄] redcoatjk 2016-07-18 17:48
呃. 停更4年了..
可以強制加載后 close session.
--------
此外直接用HibernateTemplate.getSessionFactory.getCurrentSession
應該是可以托管給spring管理的.
re: 提交Bug及功能建議 redcoatjk 2013-08-27 23:23
貌似博文無法設置為僅自己可見?
仔細看了下你貼出的系統狀態結果,發現你的并發并不大,只是操作比較頻繁罷啦
看不到具體的實際環境情況,你試下按如下方法優化下吧:
稍適當增大一點query_cache_size;
若你的這臺服務器是專給msyql用的,不會跑其他業務,那修改如下參數:
innodb_flush_log_at_trx_commit=0 (若你允許存在丟失最近部分事務的前提下)
innodb_log_buffer_size=8M
innodb_buffer_pool_size=2560M
innodb_log_file_size=512M
適當系統空閑時,對一些系統關鍵的大表執行:
analyze table tb_name;
optimize table tb_name;
若問題還沒得到解決:
則設置log_slow_queries、long_query_time啟動“慢查詢日志”抓取問題語句
用explain分析問題語句,確定索引是否正常利用上。
-----------------------------------------------
通過上面的一系列還得不到解決:
那檢查系統的可能存在瓶頸的業務處理邏輯是否還存在優化的余地;
考慮升級硬件(更快的硬盤、合理的raid方式、更快的cpu);
考慮系統架構的變更;
大概就先寫這么多吧。
re: ThreadLocal的幾種誤區 redcoatjk 2011-11-02 13:13
HibernateUtil工具類中一般都有寫closeSession的方法.
將線程對應的變量ThreadLocal中的session置為null.
這樣歸還線程池后又是干凈的了.
re: LOG4J 入門 redcoatjk 2010-08-22 20:20
如何在Java中應用final類 :
1 什么是final類
API中的某些類,如String,以及Math等,就是final類的典型例子。雖然在Java編程中并不經常使用final類和final方法,但它們有著與眾不同的特點,即final類不能被繼承,不能被覆蓋,以及final類在執行速度方面比一般類快。下面對final類和final方法的概念和編程技術分別加以討論,最后解釋為什么final類可以提高執行速度。
2 不能繼承final類
有時在程序需要對繼承加以限制。例如某些處理特殊運算和操作的類,為了安全理由,不允許被其他類所繼承。final類沒有子類,即它處于繼承鏈的尾部,或者除了自動繼承Object之外,它們是獨立存在的支持類,例如執行密碼管理的類,處理數據庫信息的管理類等等。
使用final類的另外一個理由是執行速度。由于它的方法不能夠被覆蓋,所以其地址引用和裝載在編譯期間完成,而不是在運行期間由JVM進行復雜的裝載,因而簡單和有效。所以如果沒有必要,或者不存在有繼承的可能性時,盡量使用final類。當然,在API類庫中不多使用final類是因為它們是標準程序,希望在實際軟件開發中得以廣泛使用。而具體的應用軟件開發則不同于標準庫程序開發。
注意final數據和final類的不同。final數據指常量,即其值一旦初始化,就不能改變。而final類則指不能被其他類所繼承的類。
3 定義final類
在類名前加以關鍵字final,這個類就被定義為final類,如:
public final class SomeClass {
...
}
或者,
public final class SomeClass extends SuperClass {
...
}
public final class SomeClass {<br/> ...<br/>}<br/> <br/>或者,<br/> <br/>public final class SomeClass extends SuperClass {<br/> ...<br/>}
當一個類被定義為final時,它的所有方法都自動成為final方法,但不影響對變量的定義。
4 不能覆蓋final方法
也可以在超類中定義某個方法為final方法。雖然這個類可以被繼承,但子類不能夠覆蓋final方法。API類中的許多方法,如print()和 println(),以及Math類中的所有方法都定義為final方法。在具體應用軟件開發中,一些執行特殊性運算和操作的方法,可以定義為final 方法。在方法的返回類型前加入關鍵字final,則定義該方法為final,如:
public final String printVersion() { //定義final方法
return version;
}
public final String printVersion() { //定義final方法<br/> return version;<br/>}
5 final參數
final參數的含義如同final變量一樣,是常數參數,即當方法接受了這個參數后,其值不能改變。如下代碼中定義方法的參數為final:
public void setVerison(final String version) { //定義常量參數
this.version = version;
}
在這個方法中使用如下語句產生語法錯誤:
version = "other version…"; //非法操作
public void setVerison(final String version) { //定義常量參數<br/> this.version = version;<br/>}<br/> <br/> 在這個方法中使用如下語句產生語法錯誤:<br/> <br/>version = "other version…"; //非法操作
6 提高執行速度
final類可以提高執行速度主要因為如下原因:
l 不涉及繼承和覆蓋。
l 其地址引用和裝載在編譯時完成。
l 在運行時不要求JVM執行因覆蓋而產生的動態地址引用而花費時間和空間。
l 與繼承鏈上的一般對象相比,垃圾回收器在收回final對象所占據的地址空間時也相對簡單快捷。
但在某些情況下使用final方法并不能取得提高執行速度的結果。因為并不是所有final方法其地址的裝載和引用在編譯時間完成。
假設類C繼承了B,B繼承了A,在類A中有final方法。對類C來講,調用A的final方法的確是inline編譯,即裝載在編譯時間完成;但對A和B 來講,可能沒有調用final方法。而在執行期間,JVM動態裝載的方法有可能并不是C所調用的final方法。這種情況下,則不能夠取得提高執行速度的結果。當然,如果final方法在編譯時間裝載到JVM,而且沒有在執行期間覆蓋的,可以取得inline效益,提高執行速度。
作者建議是:不能僅僅因為考慮追求提高執行速度而使用final類。在程序設計和代碼編寫時,應首先考慮這個類所執行的任務和安全因素,是否允許有子類。在這個前提下,盡量提高代碼的重復應用性是面向對象設計和編程的宗旨。然后考慮是否使用final類和final方法。
投票成功,感謝您的投票
re: Oracle查詢約束 redcoatjk 2010-05-27 10:36
蠻好的
re: [轉]程序員職業規劃 redcoatjk 2010-03-07 17:24
不如做別的
re: [轉]程序員職業規劃 redcoatjk 2009-10-16 17:57
感觸良多.
re: Oracle查詢約束[未登錄] redcoatjk 2009-08-18 18:45
..說了不如不說.
re: axis入門之代碼篇(1) redcoatjk 2009-05-21 10:34
很可惜這一段寫的有點亂了
re: [轉]JDK5新特性匯總(與1.4對照) redcoatjk 2009-05-19 09:00
COOL~
re: (原)spring學習筆記5.公共的屬性描述 redcoatjk 2009-05-10 16:03
動手 動腦 你會成為高手
好好讀書,不讀書,讓你以后去做程序員!
----這是最近我看到最心酸的話.
和之前javase寫的那個動態代理其實差不多.
一樣的啦~!
回頭看這個就很好理解了.
誒
java的東西一套一套的.
發現越來越多思維的局限了...
re: [原]spring學習筆記8.2動態代理基礎 redcoatjk 2009-02-20 11:02
代碼參見項目:dynamic-proxy
re: [原]spring學習筆記8.1靜態代理基礎 redcoatjk 2009-02-19 21:11
看了那么多網絡上的解釋.
還是感覺尚學堂的解釋最容易懂.
re: [轉]Java 靜態代理和動態代理 redcoatjk 2009-02-17 22:07
動態代理 沒接觸過.看起來有點puzzle
..多看幾次吧..
re: [原]spring學習筆記8.1靜態代理基礎 redcoatjk 2009-02-17 21:55
client的寫法
把實現UserManagerImpl的UserManager類的實例丟到代理中.
然后再調用代理中的方法.
好了..保存了實現類的貞操了.
T_T... 給我幾個不用代理產生悲劇的歷史小故事吧...
否則實在很想開罵使用代理的麻煩.
re: Struts2教程8:攔截器概述 redcoatjk 2008-12-28 22:48
struts2和webwork的攔截器好像有點不一樣
如你知道.麻煩介紹一些.THANKS
" WebWork還有一種很方便的不需要配置的別名語法,支持形為name!method.action的映射。如上面的例子中,users!edit.action就會被映射到edit()方法中。"
這句有點不太懂.麻煩解釋下~
wait.
re: WebWork標簽庫簡介[未登錄] redcoatjk 2008-12-01 09:40
果然是很簡單
re: ibatis學習(二)--ibatis使用介紹 redcoatjk 2008-11-18 10:07
寫的很好~
@一竿殘照.金棣 @ blogJava.net
說的不錯..