posts - 495,  comments - 11,  trackbacks - 0
           
          蔬菜及糧食是營養物質的“綠色寶庫”,是人們維持生命的主要滋養來源。人們要掌握吃的學問,對癥進食,擇優而食,方可充分利用蔬菜、糧食的藥用價值。特別介紹以下18種食品的對癥吃法,希望對大家有所幫助。
          ■心臟病與蘋果汁
          蘋果在所有的水果中是“口碑”最好的,而且適合不同年齡、不同體格的人。最近,美國加利福尼亞大學的研究又發現了蘋果的另外一個優點:常喝蘋果汁會降低心臟病的患病率。這是因為蘋果汁中的抗氧化劑有利于心臟的健康運轉。科學家在對25名男女進行的試驗中發現:膽固醇也分“好”和“壞”兩種,多喝蘋果汁可以讓“壞”膽固醇阻塞血管的時間比正常情況下晚一些,而“壞”膽固醇阻塞血管的時間越長就說明患心臟病的幾率越大。
          ■感冒和大蒜
          當你開始感到嗓子不舒服,鼻涕開始不受控制時,就是感冒的前兆。為了不讓感冒病毒大規模地襲擊你的身體,趕緊吃一些大蒜會幫助你將沒有完全發作的病毒扼殺在搖籃里。這是因為大蒜中含有豐富的抗病毒成分,會增強身體的免疫力。所以,在換季的時候,多吃一些大蒜會幫你應付感冒。
          ■牙痛和茶
          和好友聚會品茶時你也許沒有想到:茶不僅對身體健康有益處,而且最近科學家還發現了茶葉的另外一個優點,即:茶葉有保護牙齒的作用。茶水中含有豐富的氟和茶多酚等成分,可以達到防齲固齒的功效。因此,飯后用茶水漱口可以保持口腔衛生。另外,茶葉中的糖、果膠等成分與唾液發生化學反應滋潤了口腔的同時,還增強了口腔的自潔能力。
          ■脫發和牛排
          如果說吃牛排可以治療禿頭,相信大部分人一定會大吃一驚。但經過科學研究發現:牛排確有此功效。所以,每次吃飯時千萬別忘了吃點兒瘦牛肉。科學證明:經常吃瘦牛肉的人即使不能完全解決脫發問題,至少可以延緩這一天的到來。
          ■牙出血和葡萄柚
          牙齦發炎是讓人煩惱的事,不過一旦遇到這種情況也不必擔心,因為牙齦發炎其實是體內缺乏維生素C的癥狀,是你的身體向你發出的求救信號,提醒你該補充維生素了。這時吃一些葡萄柚、檸檬、獼猴桃等含維生素C豐富的水果都會很有幫助,尤其是葡萄柚,效果更是立竿見影。所以,只要養成每天堅持吃一只葡萄柚的習慣,就會幫你解決牙齦發炎的問題。
          ■口氣渾濁多喝水
          對于經常需要社交應酬的人來說,口氣渾濁可是最大的忌諱。中醫認為,口臭與胃火有很大關系,因此,治療口臭除了注意每天早晚刷牙外,還要合理安排你的食譜。另外一種簡單易行的方法也能讓你擺脫這個讓人尷尬的煩惱,就是每天盡可能地多喝清水。這個方法在治療口臭的同時,還補充了身體每天所需水分,可謂一舉兩得。科學研究發現:口氣不清新的原因是嘴里有一種叫硫磺的物質,要讓它盡快消失,每天多多喝水就解決了。
          ■四肢乏力與香蕉
          熱愛運動是件好事,但也要注意“度”的把握,因為運動過量會導致渾身乏力。運動時身體排出大量汗液,水分流失的同時,身體中很多礦物質也隨著汗水排出體外,主要是鉀和鈉兩種元素。身體中鈉的“庫存”量相對較大,而且鈉也比較容易從食物中得到補充;但鉀元素在體內的含量比較少,因此運動后更要注意選擇含有豐富鉀元素的食品及時補充。補充鉀最理想的選擇就是香蕉,因為香蕉中含有豐富的鉀元素。在去健身房前,千萬別忘了給自己帶一兩根香蕉。
          ■醉酒與西紅柿
          喝醉了酒確實是件麻煩事。喝醉后的嘔吐不僅很失態,而且會造成體內的鉀、鈣、鈉等元素的大量流失,醉酒嘔吐后一定要及時補充鉀、鈣、鈉等養分。最簡單易行的辦法就是喝些西紅柿汁,因為西紅柿汁中豐富的鉀、鈣、鈉成分剛好補充了體內流失元素的不足。
          ■打嗝和糖
          對于治療打嗝,人們一直有很多偏方,目前最有效的方法就是出其不意時嚇唬他一下,但如果這樣還是不能止住打嗝的話,這里有一個有效的方法:試試在舌頭下面放一勺糖。這種做法的科學解釋還不很清楚,有的醫生解釋說,糖可以刺激喉嚨后側的神經,而一旦神經受到刺激,它會中斷體內的神經信號,其中也包括引起打嗝的那條神經。
          ■心臟病和啤酒
          啤酒可以美容已經不再是什么新聞了,但啤酒還有另外一種功效就是:可以減少患心臟病的可能性。實驗證明,如果保持一天喝一杯啤酒,就會使患心臟病的可能性減到最小。有趣的是,啤酒的保健功能要嚴格控制在一天一杯才會有效,一天兩杯或兩杯以上都不會防治心臟病。看來,啤酒雖好同樣需要節制。
          ■高血壓和橘子汁
          愛喝橘子汁是個好習慣,尤其是對于那些患高血壓的人或是有高血壓家族病史的人來說尤為如此。橘子汁不僅味美,而且可以治病。因為如果飲食中鉀和鈣的含量增加,血壓就會自然降低。而橘子汁里恰恰含有豐富的鈣、鉀和維生素C。有試驗表明,血液中含充足維生素C的人,死于心臟病的可能性要小得多。
          ■魚治療哮喘
          最新的研究發現,多吃魚類可以潤肺、補肺,從而緩解哮喘病的癥狀。這是因為魚肉中含有豐富的鎂元素,難怪急診室的醫生都用含鎂類藥物來治療哮喘病人。對于患嚴重哮喘的病人,醫生建議:最好每日三餐中保證吃至少一頓的魚類或其他海鮮類食物。另外,在綠色蔬菜中,菠菜也有同樣的功效。
          ■前列腺癌和香草冰激凌
          前列腺癌一直是男人的最大殺手,據說多吃西紅柿會有所幫助,因為西紅柿里面有西紅柿素。如果你不愛吃西紅柿的話,另外一個既能治病又能解饞的方法就是吃香草冰激凌。這是因為香草冰激凌里有一種叫做硼的元素,體內的硼越多,前列腺癌的發病機會就越小。
          ■記憶力和咖啡
          咖啡除了可以在早上幫你盡快消除困意,還有很多其他的功用。荷蘭的科學家曾做過一個試驗:試驗前,被測試者喝下含32毫克咖啡因的咖啡后,不但記憶力加強,閱讀速度提高,而且頭腦也變得更加清醒。所以,想要刺激大腦內存速度,提高工作效率的話,最好提前半個小時喝上一杯咖啡。但是,需要提醒你注意的是:咖啡也不能喝得太多。否則會產生依賴反應,久而久之還會上癮。如果一旦上癮,想戒可就難了。
          總而言之,日常生活中,人們“對癥進食”,就會有益于健康長壽。如果想“吃”好,每個人應該根據自己的年齡、疾病、體質來“對癥進食”。
          ■蔬菜和關節炎
          希臘的科學家最近做的實驗表明:綠色蔬菜吃得越多,患關節炎的可能性就越小。這是科學家針對330人進行的試驗中得出的結論。而且,愛吃蔬菜的人,老年患關節炎的可能性是不愛吃蔬菜人的1/4。因此,為了健康的骨骼,千萬不要忘記在餐桌上多增些綠色。
          ■視線模糊和綠色蔬菜
          眼睛只要睜著,就隨時有被感染的可能。綠色蔬菜可以補充足夠的抗氧化素,因此可以保護眼睛的健康,讓眼睛免受外界的侵害。所以不妨在每日的飯桌上多一點綠色蔬菜,例如芹菜、黃瓜等等都對健康大有益處。
          ■皮膚青紫與花椰菜
          有些人的皮膚一旦受到小小的碰撞和傷害就會變得青一塊紫一塊的,這是因為體內缺乏維生素(尤其是維生素K)的緣故。補充維生素K的最佳途徑就是多吃花椰菜,據調查顯示,每周吃幾次花椰菜會使血管壁加厚、加強,而且不容易破裂。
          ■男性不育與五谷雜糧
          葉酸是女人在做母親前必須補充的一種維生素,因為它有利于嬰兒神經系統的健康。男性其實也需要補充葉酸,因為最新的調查結果顯示:男性精子含量低也與體內葉酸缺乏有關,因為葉酸可以幫助DNA的合成。讓人沒有想到的是,補充葉酸最簡單直接的途徑就是多吃粗糧。因為在五谷雜糧中葉酸含量是很高的。因此,對于想做父母的夫婦來說,補充葉酸是夫妻兩個人的事。
          總而言之,日常生活中,人們“對癥進食”,就會有益于健康長壽。如果想“吃”好,每個人應該根據自己的年齡、疾病、體質來“對癥進食”。
          posted @ 2007-08-21 18:51 jadmin 閱讀(63) | 評論 (0)編輯 收藏

          //轉載請注明出處:http://hi.baidu.com/jadmin/blog/item/163ed2f8a8e88b0dd8f9fd46.html
          /**
          * @(#)MatrixMultiply.java
          *
          *
          * @author JAdmin
          * @version 1.00 2007/8/21
          */

          import java.util.Scanner;

          public class MatrixMultiply
          {
          public static void main(String[] args)
          {
          ??? int m,n,p;
          ??? System.out.println("請輸入3個矩陣參數m,n,p.示例a[m][n]*b[n][p]=c[m][p]");
          ??? Scanner sr = new Scanner(System.in);
          ??? System.out.print("m=");
          ??? m = sr.nextInt();
          ??? System.out.print("n=");
          ??? n = sr.nextInt();
          ??? System.out.print("p=");
          ??? p = sr.nextInt();

          ??? int[][] a = new int[m][n];
          ??? int[][] b = new int[n][p];
          ??? int[][] c = new int[m][p];

          ??? System.out.println("請輸入數組a[" + m + "][" + n + "]");
          ??? input(a);
          ??? System.out.println("請輸入數組b[" + n + "][" + p + "]");
          ??? input(b);

          ??? //以下開始計算c[][]
          ??? for(int i = 0;i < c.length;i++)
          ???? for(int j = 0;j < c[0].length;j++)
          ????? c[i][j] = getMultiItem(a,b,i,j);

          ??? System.out.println("************The matrix a[][]************");
          ??? display(a);
          ??? System.out.println("************The matrix b[][]************");
          ??? display(b);
          ??? System.out.println("************The matrix c[][]************");
          ??? display(c);
          }

          private static void input(int[][] arr)
          {
          ??? Scanner sr = new Scanner(System.in);
          ??? for(int i = 0;i < arr.length;i++)
          ???? for(int j = 0;j < arr[0].length;j++)
          ?????? arr[i][j] = sr.nextInt();
          }

          private static void display(int[][] arr)
          {
          ??? for(int i = 0;i < arr.length;i++)
          ??? {
          ???? for(int j = 0;j < arr[0].length;j++)
          ????? System.out.print(arr[i][j]+" ");
          ???? System.out.println();
          ??? }
          }

          private static int getMultiItem(int[][] a,int[][] b,int p,int q)
          {
          ??? //計算元素c[p][q]
          ??? int tmp = 0;

          ??? for(int i = 0;i < a[0].length;i++)
          ???? tmp += a[p][i]*b[i][q];
          ??? return tmp;
          }
          }

          posted @ 2007-08-21 18:38 jadmin 閱讀(65) | 評論 (0)編輯 收藏
          生活在現在
          ????? 我們大部分的煩惱來自于對過去的惦念與懊悔,過去的輝煌與暗淡占據了我們很多的回憶空間,我們經常為昨天的洋相與錯誤而長久地悔恨,其實也只有自己才會很在意自己過去的表現,對別人而言,你過去的表現很快就過眼云煙,因此我們不需要沉醉于過去的輝煌,也不需要沉淪于過去的不幸,我們要將精神集中在今天要做什么以及如何去做才最好,尤其像我們程序員這個職業,技術革新太快,稍微停留我們就會變得過時,昨天你所開發的產品或許不錯,但明天可能很快就變得陳舊不堪,你需要在今天不斷地吸取新技術,不斷地創新,不斷地完善,才能保持產品以及自身的競爭力,生活在現在是一種積極進取的人生態度,記住:過去的已過去,未來還不可靠,只有今天才是真實可靠的。
          生活在這里
          ???? 搞IT的似乎注定要“飄來飄去”,人員流動性應是所有行業中最高的,畢業七年,服務過4家公司,算是比較穩定的人了,在有些公司工作一年多就成了老員工了,應該說有時是不太守職業道德的,當我發現所在的公司并非自己的理想時,我的心就開始先飄了,人在心不在,這種狀況導致工作的效果與效率都不理想,離開只是時間問題,我相信很多朋友也有過這種情況,這是不負責的,對公司與自己都不好,我們盡力做到在那里工作一天就盡責盡力一天, 打工也好創業也好,都要不斷提高自己,凡事盡力做到問心無愧,我們要記住,我們現在就生活在此處此地,而不是遙遠的其他地方。
          停止猜想,面向實際
          ?????? 我們很多心理上的障礙,往往是沒有實際根據的“想當然”造成的。面對問題,有些人喜歡猜想,而不是去調查事實與解決問題,比如項目經理早上因進度緩慢問題將你罵了一頓,然后你就因此而聯想下去,心里在嘀咕,項目經理是不是對你有意見?是不是不看重你?這個項目如果做不好就完了等等諸如此類的猜想,其實項目經理只是就事論事,并不針對你個人,他是希望你去想方設法將進度跟上來,或加加班,或與同事一起互相幫助一下,而你卻活在自己的猜測里久久不能擺脫,結果會越來越嚴重,所以無論面對任何困難或責備,你需要做的是面對實際,尋找問題所在,并設法解決問題,而不要去胡亂猜想。
          暫停思考,多去感受
          ?????? 我對這一點的理解就是要勞逸結合,我們這個職業屬于重型腦力勞動,我們經常長時間地思考,經常長時間地coding,有時因為一個BUG,我們日日夜夜冥思苦想,有時為了能讓項目按進度完成,日以繼夜地加班,都快變成了一臺沒有情感的機器,我建議朋友們偶爾暫停一下思考,花一些時間去觀賞美景或美女,多聆聽悅耳美妙的音樂,多去感受大自然的花草樹木,休假時出趟遠門旅游,如果身體允許,下雨天去踢場足球,我們應盡力讓生活變得豐富多彩。
          接受不愉快的情感
          ???? 矛盾無處不在,再樂觀的人也會有不愉快的時候,一個優秀的程序員應會處理各種各樣的關系,工作上有與客戶的關系,與市場人員的關系,與測試人員的關系,與客服人員的關系,與上司的關系,與同事的關系,生活中有與家人的關系,與朋友的關系,與陌生人的關系,我們無法要求所接觸的每個人都是我們所想象的,在相處的過程中一定會產生不愉快的情緒,其實愉快與不愉快是相對而言的,同時也是相互存在的,恰當地處理便會相互轉化,程序BUG出現了,你一時解決不了,測試人員會追著要你趕快搞定,你變得煩躁與惱火,不停地思索,不斷地調試,終于結束了,這時你會有一種如釋重負的感覺,心情也會變得愉快起來。
          不要隨意下判斷
          ????? 我們往往容易在別人稍有差錯或失敗之時,就馬上下結論,這種方式容易與別人產生摩擦與沖突,結果自己也會煩惱與苦悶。對他人的態度和處理人際關系的正確做法應是:先不要對人或事下判斷,先要說出你是如何認為的。這樣對方會容易接受,往往你說完自己的看法后,對方也自然而然地知道你的結論。
          不要盲目地崇拜偶像和權威
          ???? 大多人都需要一個精神寄托的對象,這個對象的成就以及影響力也往往成為我們的追求目標,比如我曾崇拜周恩來,因為他的個人魅力,我曾崇拜張學友,因為他的歌唱得出神入化,我曾崇拜溫伯格,因為他的書寫得好,可見崇拜或喜歡一個人,總是有一個理由的,我們不能因為這個理由而全部肯定或接受這個對象的一言一語一舉一動,那樣會禁錮我們的頭腦束縛我們的手腳,使我們失去獨立思考的習性。
          我就是我
          ???????? 我聽過余世維博士的講座,在他的觀點中有一點是強調以我或我們為主,不要去看他們做什么,不要總說別人怎么樣,而要關注我們能做什么,我們怎么樣,出錯了要敢于承認是我或我們的錯,而不要將責任推到別人的身上。余博士的這個觀點以及所引用的例子讓阿蒙受益無窮,決心從我做起,從現在做起,不再怨天尤人,充分發揮自己的潛能與優勢,竭盡全力做好自己能做的事情。
          對自己負責
          ????? 高考的成績并不好,可以說與我要求的目標差得太遠,大一的時候總活在不斷地為自己辯護的狀態之中,我有時認為失敗的原因在家境不好,經濟壓力太大,使我不能專心學習,有時又將原因歸于身體不好,影響學習……這是在逃避責任和現實,將自已的過錯與失敗都推到客觀原因上,失敗或錯誤的原因總是說也說不完,項目沒有正常完成,是誰的錯,是什么錯?需求不明,設計不好,管理不佳,還是程序員的水平不高?有誰能站出來承擔自己的那份責任?
          正確地自我估計
          ????? 無論在工作中還是社會上,我們每個人都占據著一個特定的位置,所以我們需要按這個位置的要求,去履行我們的權利與義務。在一個項目中,如果你是一個系統設計工程師,那么你就全心全力地去完成系統的概要設計與詳細設計,并處理好與項目經理、系統分析員、軟件開發人員之間的關系,把自己擺在準確的位置上,如果你不按照項目一致規定和大家公認的規范去做,那你將會受到項目其他人員的譴責和反對,也會使項目的管理變得混亂。所以正確地自我評估是很重要的,它可以讓我們始終保持冷靜,不再好高騖遠,也不會驕傲自滿或過分自卑,它讓我們腳踏實地做事,認認真真做人。
          ????? 十大終于寫完了,感覺有一絲成就感,盡管有點教條主義的味道,但出發點應是好的,未來的程序員不應是只會埋頭苦干的機器,我們需要生動有趣的生活來保持我們的創新能力。在此時拋出十大原則,目的是:當程序員朋友們從遠方回來,從瘋狂歸來之時,能看到一些理性的思維與觀點,并好好地自我評估,從我做起,從現在做起,去一步一個腳印地實現自己的夢想。
          http://www.uml.org.cn/success/200512123.htm
          posted @ 2007-08-20 21:25 jadmin 閱讀(62) | 評論 (0)編輯 收藏

            文檔對象模型 (DOM) 是一個文檔標準,對于完備的文檔和復雜的應用程序,DOM 提供了大量靈活性。DOM標準是標準的。它很強壯且完整,并且有許多實現。這是許多大型安裝的決定因素--特別是對產品應用程序,以避免在API發生改變時進行大量的改寫。

            以上是我在選擇處理XML數據時之所以沒有選擇JDOM或者dom4j等其它面向對象的標準的原因,不過也由于DOM從一開始就是一種與語言無關的模型,而且它更趨向用于像C或Perl這類語言,沒有利用Java的面向對象的性能,所以在使用的過程中也遇到了不少的麻煩,今天這里做一個小結。另外,我目前使用XML主要是作為數據傳輸的統一格式,并統一用戶界面展示的接口,應用的面并不是很廣,所以使用到的DOM的內容其實不多。

            在準備使用它的時候,是做了充足的準備的,也有遇到困難的準備,所以一開始就有了一個簡單的工具類來封裝DOM對象使用時必要的公共方法,實際證明這樣做是很明智的,一個簡單的創建Document對象的操作,要是每次都需要寫上5行以上代碼,并且還要處理那些煩人的Exception,實在是會打擊大家的積極性,所以在最初,做了一個XMLTool類,專門封裝了如下的公共方法:

            1、 Document對象創建(包括空的Document對象創建,以一個給定Node節點作為根節點創建。

            2、 將一個規范的XML字符串轉換成一個Document對象。

            3、 從物理硬盤讀取一個XML文件并返回一個Document對象。

            4、 將一個Node對象轉換成字符串。

            其中每個方法都截獲相關的DOM操作所拋出的異常,轉換成一個RuntimeException拋出,這些異常在實際使用過程中,一般狀況下其實都不會拋出,特別是象生成一個Document對象時的ParserConfigurationException、轉換Node節點成字符串時要生成一個Transformer對象時的TransformerConfigurationException等等,沒有必要在它們身上花時間精力。而且真就出了相關的異常的話,其實根本沒有辦法處理,這樣的狀況通常是系統環境配置有問題(比如必要的DOM實現解析器等包沒有加入環境),所以包裝該異常時只是很簡要的獲取其Message拋出。

            代碼如下:

          /**
          * 初始化一個空Document對象返回。
          * @return a Document
          */
          public static Document newXMLDocument() {
           try {
            return newDocumentBuilder().newDocument();
           } catch (ParserConfigurationException e) {
             throw new RuntimeException(e.getMessage());
           }
          }
          /**
          * 初始化一個DocumentBuilder
          * @return a DocumentBuilder
          * @throws ParserConfigurationException
          */
          public static DocumentBuilder newDocumentBuilder()
          throws ParserConfigurationException {
          return newDocumentBuilderFactory().newDocumentBuilder();
          }
          /**
          * 初始化一個DocumentBuilderFactory
          * @return a DocumentBuilderFactory
          */
          public static DocumentBuilderFactory newDocumentBuilderFactory() {
           DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
           dbf.setNamespaceAware(true);
           return dbf;
          }
          /**
          * 將傳入的一個XML String轉換成一個org.w3c.dom.Document對象返回。
          * @param xmlString 一個符合XML規范的字符串表達。
          * @return a Document
          */
          public static Document parseXMLDocument(String xmlString) {
           if (xmlString == null) {
            throw new IllegalArgumentException();
           }
           try {
            return newDocumentBuilder().parse(
             new InputSource(new StringReader(xmlString)));
           } catch (Exception e) {
            throw new RuntimeException(e.getMessage());
           }
          }
          /**
          * 給定一個輸入流,解析為一個org.w3c.dom.Document對象返回。
          * @param input
          * @return a org.w3c.dom.Document
          */
          public static Document parseXMLDocument(InputStream input) {
           if (input == null) {
            throw new IllegalArgumentException("參數為null!");
           }
           try {
            return newDocumentBuilder().parse(input);
           } catch (Exception e) {
            throw new RuntimeException(e.getMessage());
           }
          }
          /**
          * 給定一個文件名,獲取該文件并解析為一個org.w3c.dom.Document對象返回。
          * @param fileName 待解析文件的文件名
          * @return a org.w3c.dom.Document
          */
          public static Document loadXMLDocumentFromFile(String fileName) {
           if (fileName == null) {
            throw new IllegalArgumentException("未指定文件名及其物理路徑!");
           }
           try {
            return newDocumentBuilder().parse(new File(fileName));
           } catch (SAXException e) {
            throw new IllegalArgumentException("目標文件(" + fileName + ")不能被正確解析為XML!
          " + e.getMessage());
           } catch (IOException e) {
            throw new IllegalArgumentException("不能獲取目標文件(" + fileName + ")!
          " + e.getMessage());
           } catch (ParserConfigurationException e) {
            throw new RuntimeException(e.getMessage());
           }
          }
          /**
          * 給定一個節點,將該節點加入新構造的Document中。
          * @param node a Document node
          * @return a new Document
          */
          public static Document newXMLDocument(Node node) {
           Document doc = newXMLDocument();
           doc.appendChild(doc.importNode(node, true));
           return doc;
          }
          /**
          * 將傳入的一個DOM Node對象輸出成字符串。如果失敗則返回一個空字符串""。
          * @param node DOM Node 對象。
          * @return a XML String from node
          */
          public static String toString(Node node) {
           if (node == null) {
            throw new IllegalArgumentException();
           }
           Transformer transformer = newTransformer();
           if (transformer != null) {
            try {
             StringWriter sw = new StringWriter();
             transformer.transform(new DOMSource(node),
              new StreamResult(sw));
              return sw.toString();
            } catch (TransformerException te) {
             throw new RuntimeException(te.getMessage());
            }
           }
           return errXMLString("不能生成XML信息!");
          }
          /**
          * 將傳入的一個DOM Node對象輸出成字符串。如果失敗則返回一個空字符串""。
          * @param node DOM Node 對象。
          * @return a XML String from node
          */
          public static String toString(Node node) {
           if (node == null) {
            throw new IllegalArgumentException();
           }
           Transformer transformer = newTransformer();
           if (transformer != null) {
            try {
             StringWriter sw = new StringWriter();
             transformer.transform(new DOMSource(node),new StreamResult(sw));
             return sw.toString();
            } catch (TransformerException te) {
              throw new RuntimeException(te.getMessage());
            }
           }
           return errXMLString("不能生成XML信息!");
          }
          /**
          * 獲取一個Transformer對象,由于使用時都做相同的初始化,所以提取出來作為公共方法。
          * @return a Transformer encoding gb2312
          */
          public static Transformer newTransformer() {
           try {
            Transformer transformer =TransformerFactory.newInstance().newTransformer();
            Properties properties = transformer.getOutputProperties();
            properties.setProperty(OutputKeys.ENCODING, "gb2312");
            properties.setProperty(OutputKeys.METHOD, "xml");
            properties.setProperty(OutputKeys.VERSION, "1.0");
            properties.setProperty(OutputKeys.INDENT, "no");
            transformer.setOutputProperties(properties);
            return transformer;
           } catch (TransformerConfigurationException tce) {
            throw new RuntimeException(tce.getMessage());
           }
          }
          /**
          * 返回一段XML表述的錯誤信息。提示信息的TITLE為:系統錯誤。之所以使用字符串拼裝,主要是這樣做一般
          * 不會有異常出現。
          * @param errMsg 提示錯誤信息
          * @return a XML String show err msg
          */
          public static String errXMLString(String errMsg) {
           StringBuffer msg = new StringBuffer(100);
           msg.append("<?xml version="1.0" encoding="gb2312" ?>");
           msg.append("<errNode title="系統錯誤" errMsg="" + errMsg + ""/>");
           return msg.toString();
          }
          /**
          * 返回一段XML表述的錯誤信息。提示信息的TITLE為:系統錯誤
          * @param errMsg 提示錯誤信息
          * @param errClass 拋出該錯誤的類,用于提取錯誤來源信息。
          * @return a XML String show err msg
          */
          public static String errXMLString(String errMsg, Class errClass) {
           StringBuffer msg = new StringBuffer(100);
           msg.append("<?xml version="1.0" encoding="gb2312" ?>");
           msg.append("<errNode title="系統錯誤" errMsg=""+ errMsg
            + "" errSource=""
            + errClass.getName()
            + ""/>");
           return msg.toString();
          }
          /**
          * 返回一段XML表述的錯誤信息。
          * @param title 提示的title
          * @param errMsg 提示錯誤信息
          * @param errClass 拋出該錯誤的類,用于提取錯誤來源信息。
          * @return a XML String show err msg
          */
          public static String errXMLString(
           String title,
           String errMsg,
           Class errClass) {
            StringBuffer msg = new StringBuffer(100);
            msg.append("<?xml version="1.0" encoding="gb2312" ?>");
            msg.append("<errNode title=""
             + title
             + "" errMsg=""
             + errMsg
             + "" errSource=""
             + errClass.getName()
             + ""/>");
            return msg.toString();
           }

          posted @ 2007-08-20 02:22 jadmin 閱讀(90) | 評論 (0)編輯 收藏

          前幾天裝了個Firefox2.0.6瀏覽器,感覺性能確實不錯,但就是太耗內存了,最后決定還是用IE+GB,卸掉!

          誰知卸了Firefox后,硬盤上所有的htm和html文件的圖標都關聯失敗了,上網查了下,原來裝Firefox的時候,注冊表被強行修改了,解決如下:

          進入注冊表,依次找到HKEY_LOCAL_MACHINE\SOFTWARE\Classes\.htm和HKEY_LOCAL_MACHINE\SOFTWARE\Classes\.html

          把他們默認值改成htmlfile,再重啟下機器就OK了.

          posted @ 2007-08-20 02:13 jadmin 閱讀(77) | 評論 (0)編輯 收藏

          Imagine life as a game in which you are juggling some five balls in the air. You name them: Work, Family, Health, Friends, Spirit. And you're keeping all these in the air. You will soon understand that work is a rubber ball. If you drop it, it will bounce back. But the other four balls-family, health, friends and spirit are made of glass. If you drop one of these, it will be irrevocably scuffed, marked, nicked, damaged or even shattered. They will never be the same. You must understand that and strive for balance in your life.

          How?

          Don't undermine your worth by comparing yourself to others. It is because we are different that each of us is special.

          Don't set your goals by what other people deem important. Only you know what is best for you.

          Don't take for granted the things closest to your heart. Cling to them as you would to your life, for without them, life is meaningless.

          Don't let your life slip through your fingers by living in the past or for the future. By living your life one day at a time, you live all the days of your life.

          Don't give up when you still have something to give. Nothing is really over until the moment you stop trying.

          Don't be afraid to admit that you are less than perfect. It is this fragile thread that binds us each together.

          Don't be afraid to encounter risks. It is by taking chances that we learn how to be brave.

          Don't shut love out of your life by saying it's impossible to find. The quickest way to receive love is to give; the fastest way to lose love is hold it too tightly; and the best way to keep love is to give it wings.

          Don't run though life so fast that you forget not only where you've been, but also where you are going.

          Don't forget, a person's greatest emotional need is to feel appreciated.

          Don't be afraid to learn. Knowledge is weightless, a treasure you can always carry easily.

          Don't use time or words carelessly. Neither can be retrieved.

          Life is not a race, but a journey to be savored each step of the way.

          Yesterday is history. Tomorrow is mystery and Today is a gift: that's why we call it "The Present".

          posted @ 2007-08-19 05:27 jadmin 閱讀(55) | 評論 (0)編輯 收藏

          記住,從現在開始,多想想你擁有的,而不是你想要的。如果這樣做,你的生活會比以前更美好,那種感受或許將是你生命中的第一次,你將會懂得心滿意足的含義。

          One of the more pervasive and destructive mental tendencies I've seen is that of focusing on what we want instead of what we have. It doesn't seem to make my difference how much we have, we just keep expanding our list of desires, which guarantees we will remain dissatisfied. The mind-set that says "I'll be happy" when this desire is fulfilled is the same mind-set that will repeat itself once that desire is met.

          We want this or that. If we don't get what we want, we keep thinking about all that we don't have and we remain dissatisfied. If we do get what we want, we simply recreate the same thinking in our new circumstances. So, despite getting what we want, we still remain unhappy. Happiness can't be found when we are yearning for new desires.

          Luckily, there is a way to be happy. It involves changing the emphasis of our thinking from what we want to what we have. Rather than wishing you were able to take a vacation to Hawaii, think of how much fun you have had close to home. The list of possibilities is endless! Each time you notice yourself falling into the "I wish life were different" trap, back off and start over. Take a breath and remember all that you have to be grateful. When you focus not on what you want, but on what you have, you end up getting more of what you want anyway. If you focus on the good qualities of your spouse, she'll be more loving. If you are grateful for your job rather than complaining about it, you'll do a better job, be more productive, and probably end up getting a raise any-way. If you focus on ways to enjoy yourself around home rather than waiting to enjoy yourself in Hawaii, you'll end up having more fun. If you ever do get to Hawaii, you'll be in the habit of enjoying yourself. And, if by some chance you don't, you have a great life anyway.

          Make a note of yourself to start thinking more about what you have than what you want. If you do, your life will start appearing much better than before. For perhaps the first time in your life, you'll know what it means to feel satisfied.

          posted @ 2007-08-19 05:24 jadmin 閱讀(68) | 評論 (0)編輯 收藏

          Windows自推出以來一直以其快捷的操作,簡單的界面,實用的功能,強大的多媒體功能等諸多特性為買點長期占據著操作系統的王座。并且我們使用Windows也已經有數個春秋了,但我們真的對Windows操作了如執掌了嗎?真的知道如何操作嗎?以下列出一些比較實用的快捷鍵:

          CTRL+A:選中活動窗口的所有內容
          CTRL+C:把選中的東西復制到粘貼板
          CTRL+F:顯示“查找和替換”對話框
          CTRL+G:顯示定位對話框
          CTRL+N:顯示新建對話框
          CTRL+O:顯示打開對話框
          CTRL+P:顯示打印對話框
          CTRL+S:保存當前文檔
          CTRL+V:粘貼
          CTRL+X:剪切
          CTRL+Z:撤銷
          ALT+F4:關閉當前活動窗口
          CTRL+拖放文件:復制拖放的文件
          CTRL+ESC:顯示開始菜單
          CTRL+F6:打開活動應用程序的下一個文檔窗口
          ALT+ENTER:顯示選中對象的屬性
          ALT+F4:關閉活動項目或者退出活動的程序
          ALT+空格:打開當前活動窗口的快捷菜單
          ALT+TAB:在打開窗口間切換
          ALT+ESC:以打開的順序切換窗口
          F1:提供當前窗口或者選中項目的幫助文件
          F2:重命名選中的項目
          F3:搜索文件或文件夾
          F4:顯示我的電腦或Windows Explorer中的地址欄
          F5:刷新活動窗口
          F6:在當前窗口中的元素間切換,與TAB鍵功能一樣
          F10:激活當前窗口的菜單欄
          Win:顯示或隱藏開始菜單
          Win+BREAK:顯示系統屬性對話框
          Win+D:顯示桌面
          Win+M:最小化所有窗口
          Win+SHIFT+M:恢復最小化窗口
          Win+E:打開我的電腦
          Win+F:搜索文件或文件夾
          CTRL+Win+F:搜索計算機
          Win+F1:顯示Windows幫助文件
          Win+L:鎖住鍵盤
          Win+R:打開運行窗口
          Win+U:打開輔助工具管理器
          TAB:在選項間切換
          SHIFT+TAB:在選項間切換,順序與TAB相反
          CTRL+TAB:在標簽間進行切換
          CTRL+SHIFT+TAB:在標簽間反向切換
          CTRL+SHIFT+ESC:打開Windows任務管理器
          ALT+帶下劃線的字母:運行相應的命令或選擇相應的選項
          空格鍵:如果焦點選中復選框,選擇或反選復選框
          Win→U→U:快速關機(→表示連續分開執行)

          以下的快捷鍵用于與Windows資源管理器類型的程序:
          NUM LOCK+星號(*):顯示選中文件夾的所有子文件夾(如果系統里的文件很多,反映會很慢哦~)
          NUM LOCK+加號(+):顯示選中文件夾的內容
          NUM LOCK+減號(—):折疊選中文件夾

          posted @ 2007-08-19 05:12 jadmin 閱讀(76) | 評論 (0)編輯 收藏

          String的創建

          ?? String s = "hello";
          ?? JVM先根據內容"hello"查找對象,如果沒有找到,則在heap上創建新對象,并將其賦予s1,否則使用已經存在的對象

          ?? String s = new String("hello");
          ?? JVM直接在heap上創建新的對象,所以在heap中會出現內容相同,地址不同的String對象


          String的比較

          ?? "=="???????? 比較地址
          ?? "equals"???? 比較內容

          ?? 舉例:
          ?? String s1 = "hello";
          ?? String s2 = "hello";
          ?? String s3 = new String("hello");

          ?? s1 == s2;??????????????? // true???????? 地址相同
          ?? s1 == s3;??????????????? // false??????? 地址不同
          ?? s1.equals(s2);?????????? // true???????? 內容相同
          ?? s1.equals(s3);?????????? // true???????? 內容相同


          intern() 方法

          ??? 查找內容相同(equals())的字符串

          ??? String s1 = "hello";???????????????? // hello不存在,jvm創建新對象 (1)
          ??? String s2 = new String("hello");???? // 創舉新對象 (2),這時heap中存在兩個內容為hello的對象
          ??? s1 == s2;??????????? // false???????? // 地址不同
          ??? s1.equals(s2);?????? // true????????? // 內容相同
          ??? s2 = s2.intern();??? // true????????? // 找到對象(1) 并賦予s2
          ??? s1 == s2;??????????? // true !!?????? // 注意:此時s1,s2同指向(1)


          效率:String 與 StringBuffer

          ???? 情景1:
          ???? (1) String result = "hello" + " world";
          ???? (2) StringBuffer result = new String().append("hello").append(" world");

          ???????? (1) 的效率好于 (2),不要奇怪,這是因為JVM會做如下處理
          ???????? 編譯前??? String result = "hello" + " world";
          ???????? 編譯后??? String result = "hello world";


          ???? 情景2:
          ???? (1) public String getString(String s1, String s2) {
          ???????????? return s1 + s2;
          ???????? }
          ???? (2) public String getString(String s1, String s2) {
          ???????????? return new StringBuffer().append(s1).append(s2);
          ???????? }

          ???????? (1) 的效率與 (2) 一樣,這是因為JVM會做如下處理
          ???????? 編譯前??? return s1 + s2;
          ???????? 編譯后??? return new StringBuffer().append(s1).append(s2);


          ???? 情景3:
          ???? (1) String s = "s1";
          ?????????????? s += "s2";
          ?????????????? s += "s3";
          ???? (2) StringBuffer s = new StringBuffer().append("s1").append("s2").append("s3");

          ???????? (2) 的效率好于(1),因為String是不可變對象,每次"+="操作都會造成構造新的String對象


          ???? 情景4:
          ???? (1) StringBuffer s = new StringBuffer();
          ???????? for (int i = 0; i < 50000; i ++) {
          ???????????? s.append("hello");
          ???????? }
          ???? (2) StringBuffer s = new StringBuffer(250000);
          ???????? for (int i = 0; i < 50000; i ++) {
          ???????????? s.append("hello");
          ???????? }
          ???????
          ???????? (2) 的效率好于 (1),因為StringBuffer內部實現是char數組,默認初始化長度為16,每當字符串長度大于char
          ???????? 數組長度的時候,JVM會構造更大的新數組,并將原先的數組內容復制到新數組,(2)避免了復制數組的開銷
          ????????

          關鍵點
          ???? 1). 簡單的認為 .append() 效率好于 "+" 是錯誤的!
          ???? 2). 不要使用 new 創建 String
          ???? 3). 注意 .intern() 的使用
          ???? 4). 在編譯期能夠確定字符串值的情況下,使用"+"效率最高
          ???? 5). 避免使用 "+=" 來構造字符串
          ???? 6). 在聲明StringBuffer對象的時候,指定合適的capacity,不要使用默認值(18)
          ???? 7). 注意以下二者的區別不一樣
          ???????? - String s = "a" + "b";
          ???????? - String s = "a";
          ?????????? s += "b";

          posted @ 2007-08-19 04:43 jadmin 閱讀(46) | 評論 (0)編輯 收藏
          Enter password: ******
          Welcome to the MySQL monitor. Commands end with ; or \g.
          Your MySQL connection id is 2 to server version: 4.1.10-nt
          Type 'help;' or '\h' for help. Type '\c' to clear the buffer.


          mysql> show databases
          -> ;
          +----------+
          | Database |
          +----------+
          | mysql |
          | test |
          +----------+
          2 rows in set (0.00 sec)
          mysql> create database soft;
          Query OK, 1 row affected (0.00 sec)
          mysql> show databases
          -> ;
          +----------+
          | Database |
          +----------+
          | mysql |
          | soft |
          | test |
          +----------+
          3 rows in set (0.00 sec)
          mysql> source info_web.sql
          ERROR 1046 (3D000): No database selected
          mysql> use soft;
          Database changed
          mysql> source info_web.sql
          Query OK, 0 rows affected (0.11 sec)
          mysql> source 2.sql;
          Query OK, 0 rows affected (0.08 sec)
          mysql> source 1.sql;
          Query OK, 0 rows affected (0.09 sec)
          mysql> show tables
          -> ;
          +----------------+
          | Tables_in_soft |
          +----------------+
          | info_web |
          | mainclass |
          | subclass |
          +----------------+
          3 rows in set (0.00 sec)
          mysql> show table info_web;
          ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that
          corresponds to your MySQL server version for the right syntax to use near 'info_
          web' at line 1
          mysql>
          mysql> describe info_web;
          +------------+-------------+------+-----+---------------------+-------+
          | Field | Type | Null | Key | Default | Extra |
          +------------+-------------+------+-----+---------------------+-------+
          | id | varchar(32) | | PRI | | |
          | number | int(11) | YES | | NULL | |
          | iswarn | int(11) | YES | | NULL | |
          | title | text | YES | | NULL | |
          | power | int(11) | YES | | NULL | |
          | limit | int(11) | YES | | NULL | |
          | content | text | YES | | NULL | |
          | date | datetime | YES | | 0000-00-00 00:00:00 | |
          | persion_id | varchar(32) | YES | | NULL | |
          | visit_num | int(11) | YES | | NULL | |
          | pic_in | int(11) | YES | | NULL | |
          +------------+-------------+------+-----+---------------------+-------+
          11 rows in set (0.03 sec)
          mysql> describe mainclass
          -> ;
          +------------+--------------+------+-----+---------+----------------+
          | Field | Type | Null | Key | Default | Extra |
          +------------+--------------+------+-----+---------+----------------+
          | main_num | int(11) | | PRI | NULL | auto_increment |
          | main_name | varchar(32) | YES | | NULL | |
          | main_order | int(11) | YES | MUL | 0 | |
          | href | varchar(128) | YES | | NULL | |
          +------------+--------------+------+-----+---------+----------------+
          4 rows in set (0.00 sec)
          mysql> describe subclass;
          +----------+--------------+------+-----+---------+----------------+
          | Field | Type | Null | Key | Default | Extra |
          +----------+--------------+------+-----+---------+----------------+
          | sub_num | int(11) | | PRI | NULL | auto_increment |
          | main_num | int(11) | YES | MUL | NULL | |
          | sub_name | varchar(64) | YES | | NULL | |
          | href | varchar(128) | YES | | NULL | |
          | isuse | int(11) | YES | | NULL | |
          +----------+--------------+------+-----+---------+----------------+
          5 rows in set (0.00 sec)
          mysql>
          posted @ 2007-08-19 04:29 jadmin 閱讀(45) | 評論 (0)編輯 收藏
          僅列出標題
          共50頁: First 上一頁 30 31 32 33 34 35 36 37 38 下一頁 Last 
          主站蜘蛛池模板: 扎鲁特旗| 肃南| 黄浦区| 靖远县| 元朗区| 水富县| 南汇区| 德兴市| 兴山县| 纳雍县| 镇安县| 南木林县| 东乌珠穆沁旗| 百色市| 合江县| 色达县| 禹州市| 高青县| 廊坊市| 开远市| 朝阳县| 和平区| 元阳县| 阿鲁科尔沁旗| 昭觉县| 饶阳县| SHOW| 衡阳市| 高雄县| 广宁县| 桃园市| 安丘市| 蓬安县| 玉门市| 安泽县| 茌平县| 嘉禾县| 安阳市| 万源市| 沧源| 宁城县|