摘要: ClassLoader一個(gè)經(jīng)常出現(xiàn)又讓很多人望而卻步的詞,本文將試圖以最淺顯易懂的方式來(lái)講ClassLoader,希望能對(duì)不了解該機(jī)制的朋友起到一點(diǎn)點(diǎn)作用.
要深入了解ClassLoader,首先就要知道ClassLoader是用來(lái)干什么的,顧名思義,它就是用來(lái)加載Class文件到JVM,以供程序使用的。我們知道,java程序可以動(dòng)態(tài)加載類定義,而這個(gè)動(dòng)態(tài)加載的機(jī)制就是通過(guò)ClassLoader來(lái)實(shí)現(xiàn)的,所以可想而知ClassLoader的重要性如何。
閱讀全文
posted @
2009-06-26 22:38 RoyPayne 閱讀(262) |
評(píng)論 (0) |
編輯 收藏
摘要: request.getParameter
是用來(lái)接受來(lái)自get方法或post方法的參數(shù)
只能接受java.lang.String
也就是說(shuō)String hotel_id = request.getParameter("hotel_id");
request.getAttribute
是用來(lái)接受來(lái)自servlet的變量或Action(其實(shí)Action就是特殊的Servlet)
在Action中,request.setAttribute("ret",ret);
只能接受java.lang.Object
也就是說(shuō)List ret = (List)request.getAttribute("ret");
一個(gè)是變量類型,一個(gè)對(duì)象類型
閱讀全文
posted @
2009-06-25 22:01 RoyPayne 閱讀(1165) |
評(píng)論 (0) |
編輯 收藏
摘要: 概述
我們知道Spring通過(guò)各種DAO模板類降低了開發(fā)者使用各種數(shù)據(jù)持久技術(shù)的難度。這些模板類都是線程安全的,也就是說(shuō),多個(gè)DAO可以復(fù)用同一個(gè)模板實(shí)例而不會(huì)發(fā)生沖突。
我們使用模板類訪問底層數(shù)據(jù),根據(jù)持久化技術(shù)的不同,模板類需要綁定數(shù)據(jù)連接或會(huì)話的資源。但這些資源本身是非線程安全的,也就是說(shuō)它們不能在同一時(shí)刻被多個(gè)線程共享。
雖然模板類通過(guò)資源池獲取數(shù)據(jù)連接或會(huì)話,但資源池本身解決的是數(shù)據(jù)連接或會(huì)話的緩存問題,并非數(shù)據(jù)連接或會(huì)話的線程安全問題。
按照傳統(tǒng)經(jīng)驗(yàn),如果某個(gè)對(duì)象是非線程安全的,在多線程環(huán)境下,對(duì)對(duì)象的訪問必須采用synchronized進(jìn)行線程同步。但Spring的DAO模板類并未采用線程同步機(jī)制,因?yàn)榫€程同步限制了并發(fā)訪問,會(huì)帶來(lái)很大的性能損失。
閱讀全文
posted @
2009-06-23 09:30 RoyPayne 閱讀(451) |
評(píng)論 (0) |
編輯 收藏
摘要: 1.淺復(fù)制和深復(fù)制概念
⑴淺復(fù)制(淺克隆)
被復(fù)制對(duì)象的任何變量都含有和原來(lái)的對(duì)象相同的值,而任何的對(duì)其他對(duì)象的引用仍然指向原來(lái)的對(duì)象。換言之,淺復(fù)制僅僅復(fù)制所考慮的對(duì)象,而不復(fù)制他所引用的對(duì)象。
閱讀全文
posted @
2009-06-20 18:03 RoyPayne 閱讀(171) |
評(píng)論 (0) |
編輯 收藏
西風(fēng)烈,
長(zhǎng)空雁叫霜晨月。
霜晨月,
馬蹄聲碎,
喇叭聲咽。
雄關(guān)漫道真如鐵,
而今邁步從頭越。
從頭越,
蒼山如海,
殘陽(yáng)如血。
posted @
2009-06-16 22:55 RoyPayne 閱讀(149) |
評(píng)論 (0) |
編輯 收藏
摘要:
一、安裝JDK
首先下載JDK 5.0(JDK 5.0的下載頁(yè)面為:http://java.sun.com/j2se/1.5.0/download.jsp); 然后運(yùn)行JDK 5.0安裝程序jdk-1_5_0_06-windows-i586-p.exe,安裝過(guò)程中所有選項(xiàng)保持默認(rèn);最后配置JDK的環(huán)境變量:在“我的電腦”上點(diǎn)右鍵—>“屬性”—>“高級(jí)”—> “環(huán)境變量(N)”。
閱讀全文
posted @
2007-03-05 16:16 RoyPayne 閱讀(251) |
評(píng)論 (0) |
編輯 收藏
摘要:
我是從學(xué)習(xí)Java編程開始接觸OOP(面向?qū)ο缶幊?,剛開始使用Java編寫程序的時(shí)候感覺很別扭,因?yàn)槲以缫粤?xí)慣用C來(lái)編寫程序,很欣賞C的簡(jiǎn)潔性和高效性,喜歡C簡(jiǎn)練而表達(dá)能力豐富的風(fēng)格,特別忍受不了 Java運(yùn)行起來(lái)慢吞吞的速度,相對(duì)冗長(zhǎng)的代碼,而且一個(gè)很簡(jiǎn)單的事情,要寫好多類,一個(gè)類調(diào)用一個(gè)類,心里的抵觸情緒很強(qiáng)。 閱讀全文
posted @
2007-03-05 15:42 RoyPayne 閱讀(187) |
評(píng)論 (0) |
編輯 收藏
摘要: abstract class和interface是Java語(yǔ)言中對(duì)于抽象類定義進(jìn)行支持的兩種機(jī)制,正是由于這兩種機(jī)制的存在,才賦予了Java強(qiáng)大的面向?qū)ο竽芰Α?abstract class和interface之間在對(duì)于抽象類定義的支持方面具有很大的相似性,甚至可以相互替換,因此很多開發(fā)者在進(jìn)行抽象類定義時(shí)對(duì)于 abstract class和interface的選擇顯得比較隨意。 閱讀全文
posted @
2007-03-05 14:59 RoyPayne 閱讀(205) |
評(píng)論 (0) |
編輯 收藏
這個(gè)故事發(fā)生在古希臘。開學(xué)第一天,大哲學(xué)家蘇格拉底對(duì)學(xué)生說(shuō):“今天咱們只學(xué)一件最簡(jiǎn)單也是最容易做的事。每人把胳膊盡量往前甩。”說(shuō)著,蘇格拉底示范了一遍,“從今天開始,每天做300下,大家能做到嗎?”學(xué)生們都笑了,這么簡(jiǎn)單的事,有什么做不到的!過(guò)了一個(gè)月,蘇格拉底問學(xué)生們:“每天甩300下,哪些同學(xué)堅(jiān)持了?”有90%的同學(xué)驕傲地舉起了手。又過(guò)了一個(gè)月,蘇格拉底又問,這回,堅(jiān)持下來(lái)的學(xué)生只剩下八成。一年后,蘇格拉底再一次問大家:“請(qǐng)告訴我,最簡(jiǎn)單的甩手運(yùn)動(dòng),還有哪幾位同學(xué)堅(jiān)持了?”這時(shí),整個(gè)教室里,只有一人舉起了手。這個(gè)學(xué)生就是后來(lái)成為古希臘另一位大哲學(xué)家的柏拉圖。
一天,蘇格拉底帶 領(lǐng)幾個(gè)弟子來(lái)到一塊長(zhǎng)滿麥穗的田地邊,對(duì)弟子們說(shuō):"你們?nèi)湹乩镎粋€(gè)最大的麥穗,只許進(jìn),不許退."弟子們走進(jìn)麥地,看看這一株,搖了搖頭;看看那一 株,又搖了搖頭.雖然弟子們也試著摘了幾穗,但并不滿意,便隨手扔掉了.他們總認(rèn)為最大的麥穗還在前面呢.他們總以為機(jī)會(huì)還很多,完全沒有必要過(guò)早地定 奪.直到蘇格拉底大喝一聲:"你們已經(jīng)到頭了!"弟子們才如夢(mèng)初醒. 蘇格拉底說(shuō):"究竟地里有沒有一穗 是最大的呢 "弟子們說(shuō):"肯定有."蘇格拉底點(diǎn)了點(diǎn)頭:"是的,但你們未必能碰到它.即使碰到了,也未必能作出準(zhǔn)確的判斷.""那么究竟怎樣才能找到最大的一穗 ""最大的一穗 就是你們剛剛摘下的." 弟子們聽了老師的話,若有所悟:人的一生不也是在麥地里行走嗎 有的人見到了顆粒滿的麥穗,就不失時(shí)機(jī)地摘下它; 有的人則東張西望,一再地錯(cuò)失良機(jī).當(dāng)然,追求應(yīng)該是最大的,但把眼前的稻穗拿在手中,這才是實(shí)實(shí)在在的呀.
posted @
2007-03-05 14:48 RoyPayne 閱讀(549) |
評(píng)論 (0) |
編輯 收藏