Java心路

          Java、Eclipse、Ajax......一個都不能少

           

          Eclipse快捷鍵-方便查找,呵呵,記性不好

          行注釋/銷注釋 Ctrl+/?
          塊注釋/銷注釋 Ctrl+Shift+/?? Ctrl+Shift+\
          查找 查找替換?Ctrl+H? Ctrl+F
          查找下一個/往回找 Ctrl+K?? Ctrl+Shift+K
          跳到某行 Ctrl+L,哈用慣了Editplus,不時會敲下Ctrl+G,
          查找當前元素的聲明 Ctrl+G
          查找當前元素的所有引用 Ctrl+Shift+G
          重新組織Import Ctrl+Shift+O,能幫你一次去掉所有未使用的Import聲明!
          快速修正 Ctrl+1
          引入某個類(接口)ctrl + shift + m
          加頭注釋 shift + alt + j
          ?

          ctrl ?+ ?shift ?+ ?g:查看引用 ?
          ctrl ?+ ?shift ?+ ?n:重命名 ?
          ctrl ?+ ?shift ?+ ?o:導入類 ?
          ctrl ?+ ?shift ?+ ?r:啟動上次運行 ?
          ctrl ?+ ?shift ?+ ?f:格式化代碼 ?
          ctrl ?+ ?c:復制 ?
          ctrl ?+ ?v:粘貼 ?
          ctrl ?+ ?x:切剪 ?
          ctrl ?+ ?a:全選 ?
          ctrl ?+ ?f:查找 ?
          ctrl ?+ ?z:撤銷 ?
          ctrl ?+ ?y:重做 ?
          ctrl ?+ ?s:保存 ?
          --------------------------------------------------------------- ?
          ?
          用的最多的應該就是CTRL+SHIFT+S ?
          還有格式化用的也挺多。 ?
          --------------------------------------------------------------- ?
          ?
          ctrl ?+ ?shift ?+ ?f ?格式化代碼 ?
          ctrl ?+ ?shift ?+ ?o ?組織導入 ?
          F3 ? ?打開聲明 ?
          Alt ?+ ?shift ?+ ?r ? ?重命名變量 ?
          ?
          --------------------------------------------------------------- ?
          ?
          up ?
          --------------------------------------------------------------- ?
          ?
          Alt+/ ? ? ? ?
          ?
          --------------------------------------------------------------- ?
          ?
          alt ?+ ?left ?
          alt ?+ ?right ?
          ctrl ?+ ?q ?
          --------------------------------------------------------------- ?
          ?
          ctrl ?+ ?shift ?+ ?g:查看引用 ?
          ctrl ?+ ?shift ?+ ?n:重命名 ?
          ctrl ?+ ?shift ?+ ?f:格式化代碼 ?
          ctrl ?+ ?c:復制 ?
          ctrl ?+ ?v:粘貼 ?
          ctrl ?+ ?a:全選 ?
          ctrl ?+ ?f:查找 ?
          ctrl ?+ ?z:撤銷 ?
          ctrl ?+ ?s:保存 ?
          Alt ? ?+ ?/ ?智能提示 ?
          --------------------------------------------------------------- ?
          ?
          ctrl ?+ ?shift ?+ ?g:查看引用 ?
          ctrl ?+ ?shift ?+ ?n:重命名 ?
          ctrl ?+ ?shift ?+ ?o:導入類 ?
          ctrl ?+ ?shift ?+ ?r:啟動上次運行 ?
          ctrl ?+ ?shift ?+ ?f:格式化代碼 ?
          ctrl ?+ ?c:復制 ?
          ctrl ?+ ?v:粘貼 ?
          ctrl ?+ ?x:切剪 ?
          ctrl ?+ ?a:全選 ?
          ctrl ?+ ?f:查找 ?
          ctrl ?+ ?z:撤銷 ?
          ctrl ?+ ?y:重做 ?
          ctrl ?+ ?s:保存 ?
          Alt ? ?+ ?/ ?智能提示 ?
          F3 ? ?打開聲明 ?
          Alt ?+ ?shift ?+ ?r ? ?重命名變量 ?
          其實最常用的就是下面幾個: ?
          ?
          ctrl ?+ ?shift ?+ ?o:導入類 ?
          ?
          ctrl ?+ ?shift ?+ ?f:格式化代碼 ?
          ctrl ?+ ?c:復制 ?
          ctrl ?+ ?v:粘貼 ?
          ctrl ?+ ?x:切剪 ?
          ctrl ?+ ?z:撤銷 ?
          ctrl ?+ ?s:保存 ?
          Alt ? ?+ ?/ ?智能提示 ?
          ?
          --------------------------------------------------------------- ?
          ?
          Ctrl+M: ?工作區最大化/最小化 ?
          Alt+/: ? ?智能提示 ?
          F3: ? ? ? ? ?察看聲明 ?
          Crtl+1: ?修正錯誤 ?
          ?
          Shift+Alt+T: ?重構 ?
          Shift+Alt+M: ?提取函數 ?
          Shift+Alt+R: ?重命名 ?
          Shift+Alt+C: ?更改函數標記 ?
          ?
          Ctrl+Shitf+F: ?格式化代碼 ?
          ?
          --------------------------------------------------------------- ?
          ?
          ctrl ?+ ?shift ?+ ?o:導入類 ?
          atl ?+ ?/:提示 ?
          ctrl ?+ ?shift ?+ ?t:查找相關信息 ?
          --------------------------------------------------------------- ?
          ?
          Eclipse快捷鍵指南 ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?
          編輯 ?
          作用域 ?? ?? ?? ??功能 ?? ?? ?? ??快捷鍵 ?
          全局 ?? ?? ?? ??查找并替換 ?? ?? ?? ??Ctrl+F ?
          文本編輯器 ?? ?? ?? ??查找上一個 ?? ?? ?? ??Ctrl+Shift+K ?
          文本編輯器 ?? ?? ?? ??查找下一個 ?? ?? ?? ??Ctrl+K ?
          全局 ?? ?? ?? ??撤銷 ?? ?? ?? ??Ctrl+Z ?
          全局 ?? ?? ?? ??復制 ?? ?? ?? ??Ctrl+C ?
          全局 ?? ?? ?? ??恢復上一個選擇 ?? ?? ?? ??Alt+Shift+↓ ?
          全局 ?? ?? ?? ??剪切 ?? ?? ?? ??Ctrl+X ?
          全局 ?? ?? ?? ??快速修正 ?? ?? ?? ??Ctrl1+1 ?
          全局 ?? ?? ?? ??內容輔助 ?? ?? ?? ??Alt+/ ?
          全局 ?? ?? ?? ??全部選中 ?? ?? ?? ??Ctrl+A ?
          全局 ?? ?? ?? ??刪除 ?? ?? ?? ??Delete ?
          全局 ?? ?? ?? ??上下文信息 ?? ?? ?? ??Alt+? ?
          Alt+Shift+? ?
          Ctrl+Shift+Space ?
          Java編輯器 ?? ?? ?? ??顯示工具提示描述 ?? ?? ?? ??F2 ?
          Java編輯器 ?? ?? ?? ??選擇封裝元素 ?? ?? ?? ??Alt+Shift+↑ ?
          Java編輯器 ?? ?? ?? ??選擇上一個元素 ?? ?? ?? ??Alt+Shift+← ?
          Java編輯器 ?? ?? ?? ??選擇下一個元素 ?? ?? ?? ??Alt+Shift+→ ?
          文本編輯器 ?? ?? ?? ??增量查找 ?? ?? ?? ??Ctrl+J ?
          文本編輯器 ?? ?? ?? ??增量逆向查找 ?? ?? ?? ??Ctrl+Shift+J ?
          全局 ?? ?? ?? ??粘貼 ?? ?? ?? ??Ctrl+V ?
          全局 ?? ?? ?? ??重做 ?? ?? ?? ??Ctrl+Y ?
          ? ?
          查看 ?
          作用域 ?? ?? ?? ??功能 ?? ?? ?? ??快捷鍵 ?
          全局 ?? ?? ?? ??放大 ?? ?? ?? ??Ctrl+= ?
          全局 ?? ?? ?? ??縮小 ?? ?? ?? ??Ctrl+- ?
          ? ?
          窗口 ?
          作用域 ?? ?? ?? ??功能 ?? ?? ?? ??快捷鍵 ?
          全局 ?? ?? ?? ??激活編輯器 ?? ?? ?? ??F12 ?
          全局 ?? ?? ?? ??切換編輯器 ?? ?? ?? ??Ctrl+Shift+W ?
          全局 ?? ?? ?? ??上一個編輯器 ?? ?? ?? ??Ctrl+Shift+F6 ?
          全局 ?? ?? ?? ??上一個視圖 ?? ?? ?? ??Ctrl+Shift+F7 ?
          全局 ?? ?? ?? ??上一個透視圖 ?? ?? ?? ??Ctrl+Shift+F8 ?
          全局 ?? ?? ?? ??下一個編輯器 ?? ?? ?? ??Ctrl+F6 ?
          全局 ?? ?? ?? ??下一個視圖 ?? ?? ?? ??Ctrl+F7 ?
          全局 ?? ?? ?? ??下一個透視圖 ?? ?? ?? ??Ctrl+F8 ?
          文本編輯器 ?? ?? ?? ??顯示標尺上下文菜單 ?? ?? ?? ??Ctrl+W ?
          全局 ?? ?? ?? ??顯示視圖菜單 ?? ?? ?? ??Ctrl+F10 ?
          全局 ?? ?? ?? ??顯示系統菜單 ?? ?? ?? ??Alt+- ?
          ? ?
          導航 ?
          作用域 ?? ?? ?? ??功能 ?? ?? ?? ??快捷鍵 ?
          Java編輯器 ?? ?? ?? ??打開結構 ?? ?? ?? ??Ctrl+F3 ?
          全局 ?? ?? ?? ??打開類型 ?? ?? ?? ??Ctrl+Shift+T ?
          全局 ?? ?? ?? ??打開類型層次結構 ?? ?? ?? ??F4 ?
          全局 ?? ?? ?? ??打開聲明 ?? ?? ?? ??F3 ?
          全局 ?? ?? ?? ??打開外部javadoc ?? ?? ?? ??Shift+F2 ?
          全局 ?? ?? ?? ??打開資源 ?? ?? ?? ??Ctrl+Shift+R ?
          全局 ?? ?? ?? ??后退歷史記錄 ?? ?? ?? ??Alt+← ?
          全局 ?? ?? ?? ??前進歷史記錄 ?? ?? ?? ??Alt+→ ?
          全局 ?? ?? ?? ??上一個 ?? ?? ?? ??Ctrl+, ?
          全局 ?? ?? ?? ??下一個 ?? ?? ?? ??Ctrl+. ?
          Java編輯器 ?? ?? ?? ??顯示大綱 ?? ?? ?? ??Ctrl+O ?
          全局 ?? ?? ?? ??在層次結構中打開類型 ?? ?? ?? ??Ctrl+Shift+H ?
          全局 ?? ?? ?? ??轉至匹配的括號 ?? ?? ?? ??Ctrl+Shift+P ?
          全局 ?? ?? ?? ??轉至上一個編輯位置 ?? ?? ?? ??Ctrl+Q ?
          Java編輯器 ?? ?? ?? ??轉至上一個成員 ?? ?? ?? ??Ctrl+Shift+↑ ?
          Java編輯器 ?? ?? ?? ??轉至下一個成員 ?? ?? ?? ??Ctrl+Shift+↓ ?
          文本編輯器 ?? ?? ?? ??轉至行 ?? ?? ?? ??Ctrl+L ?
          ? ?
          搜索 ?
          作用域 ?? ?? ?? ??功能 ?? ?? ?? ??快捷鍵 ?
          全局 ?? ?? ?? ??出現在文件中 ?? ?? ?? ??Ctrl+Shift+U ?
          全局 ?? ?? ?? ??打開搜索對話框 ?? ?? ?? ??Ctrl+H ?
          全局 ?? ?? ?? ??工作區中的聲明 ?? ?? ?? ??Ctrl+G ?
          全局 ?? ?? ?? ??工作區中的引用 ?? ?? ?? ??Ctrl+Shift+G ?
          ? ?
          文本編輯 ?
          作用域 ?? ?? ?? ??功能 ?? ?? ?? ??快捷鍵 ?
          文本編輯器 ?? ?? ?? ??改寫切換 ?? ?? ?? ??Insert ?
          文本編輯器 ?? ?? ?? ??上滾行 ?? ?? ?? ??Ctrl+↑ ?
          文本編輯器 ?? ?? ?? ??下滾行 ?? ?? ?? ??Ctrl+↓ ?
          ? ?
          文件 ?
          作用域 ?? ?? ?? ??功能 ?? ?? ?? ??快捷鍵 ?
          全局 ?? ?? ?? ??保存 ?? ?? ?? ??Ctrl+X ? ?
          Ctrl+S ?
          全局 ?? ?? ?? ??打印 ?? ?? ?? ??Ctrl+P ?
          全局 ?? ?? ?? ??關閉 ?? ?? ?? ??Ctrl+F4 ?
          全局 ?? ?? ?? ??全部保存 ?? ?? ?? ??Ctrl+Shift+S ?
          全局 ?? ?? ?? ??全部關閉 ?? ?? ?? ??Ctrl+Shift+F4 ?
          全局 ?? ?? ?? ??屬性 ?? ?? ?? ??Alt+Enter ?
          全局 ?? ?? ?? ??新建 ?? ?? ?? ??Ctrl+N ?
          ? ?
          項目 ?
          作用域 ?? ?? ?? ??功能 ?? ?? ?? ??快捷鍵 ?
          全局 ?? ?? ?? ??全部構建 ?? ?? ?? ??Ctrl+B ?
          ? ?
          源代碼 ?
          作用域 ?? ?? ?? ??功能 ?? ?? ?? ??快捷鍵 ?
          Java編輯器 ?? ?? ?? ??格式化 ?? ?? ?? ??Ctrl+Shift+F ?
          Java編輯器 ?? ?? ?? ??取消注釋 ?? ?? ?? ??Ctrl+ ?
          Java編輯器 ?? ?? ?? ??注釋 ?? ?? ?? ??Ctrl+/ ?
          Java編輯器 ?? ?? ?? ??添加導入 ?? ?? ?? ??Ctrl+Shift+M ?
          Java編輯器 ?? ?? ?? ??組織導入 ?? ?? ?? ??Ctrl+Shift+O ?
          Java編輯器 ?? ?? ?? ??使用try/catch塊來包圍 ?? ?? ?? ??未設置,太常用了,所以在這里列出,建議自己設置。 ?
          也可以使用Ctrl+1自動修正。 ?
          ? ?
          運行 ?
          作用域 ?? ?? ?? ??功能 ?? ?? ?? ??快捷鍵 ?
          全局 ?? ?? ?? ??單步返回 ?? ?? ?? ??F7 ?
          全局 ?? ?? ?? ??單步跳過 ?? ?? ?? ??F6 ?
          全局 ?? ?? ?? ??單步跳入 ?? ?? ?? ??F5 ?
          全局 ?? ?? ?? ??單步跳入選擇 ?? ?? ?? ??Ctrl+F5 ?
          全局 ?? ?? ?? ??調試上次啟動 ?? ?? ?? ??F11 ?
          全局 ?? ?? ?? ??繼續 ?? ?? ?? ??F8 ?
          全局 ?? ?? ?? ??使用過濾器單步執行 ?? ?? ?? ??Shift+F5 ?
          全局 ?? ?? ?? ??添加/去除斷點 ?? ?? ?? ??Ctrl+Shift+B ?
          全局 ?? ?? ?? ??顯示 ?? ?? ?? ??Ctrl+D ?
          全局 ?? ?? ?? ??運行上次啟動 ?? ?? ?? ??Ctrl+F11 ?
          全局 ?? ?? ?? ??運行至行 ?? ?? ?? ??Ctrl+R ?
          全局 ?? ?? ?? ??執行 ?? ?? ?? ??Ctrl+U ?
          ? ?
          重構 ?
          作用域 ?? ?? ?? ??功能 ?? ?? ?? ??快捷鍵 ?
          全局 ?? ?? ?? ??撤銷重構 ?? ?? ?? ??Alt+Shift+Z ?
          全局 ?? ?? ?? ??抽取方法 ?? ?? ?? ??Alt+Shift+M ?
          全局 ?? ?? ?? ??抽取局部變量 ?? ?? ?? ??Alt+Shift+L ?
          全局 ?? ?? ?? ??內聯 ?? ?? ?? ??Alt+Shift+I ?
          全局 ?? ?? ?? ??移動 ?? ?? ?? ??Alt+Shift+V ?
          全局 ?? ?? ?? ??重命名 ?? ?? ?? ??Alt+Shift+R ?
          全局 ?? ?? ?? ??重做 ?? ?? ?? ??Alt+Shift+Y?
          ?


          posted @ 2007-02-23 23:06 bisal 閱讀(37598) | 評論 (1)編輯 收藏

          OA系統開發的一些感想。。。

          ??? 前段時間一直在做北京市某個區政府文書科的一個公文接收的自動化系統,自己有一些感想,在這里寫出來。感覺政府中的這種OA與企業的OA確實存在著一些差 距,尤其是組織制度上,工作流的流程比較復雜,突出的一點就是顯示出領導之間級別的對待,一個公文來的時候,科長總會先審查,再由文書員進行處理,之后再 給更高級的領導審閱,而催辦的意見公文回來的時候又要讓相關的一些領導查看,但其中的某些環節中查看和填寫修改的權限又是對一些領導或人員是屏蔽的,這些 權限和功能的使用范圍與領導級別又是緊密相關的,還有就是當這個系統想要試用一下的時候,因為政府內各個部門之間的關系,所以不是太好地進行測試試用,總 之,針對不同的行業,開發這樣的系統都要“因地制宜”,確實存在著一些阻礙和困難。
          ?

          posted @ 2007-01-10 13:08 bisal 閱讀(623) | 評論 (1)編輯 收藏

          SCJP,新的起點

          ??? ??? 經過幾天的閉門修煉,今天早上懷揣著450元錢(準備重考的錢)踏上了去往中軟的路途。。。
          ??????? 八點半就到了,填了表單后,決定馬上就考。。。那個劉老師還挺好,一步一步指導我進行操作,正式考試開始了,前幾道題沒有見過,有些個題確實有些繞,從中間之后便見到了許多在參考資料中做過的題,有幾道題還是覺得答案有錯,親自運行過的,不過不知道正確不正確,總之是心里有些印象。。。身邊坐的前一個人考的是Oracle的,后一個人考的是IBM的認證,都是很快就交了,強人。。。我很快地做完了第一遍,看了下還剩1小時24分鐘。。。在家里做過幾個 Demo,結果大部分都是在52%左右,網上都是如果沒有達到60%的話就別去考。。。但是當做第三個開始的時候,就感覺做題速度明顯加快,能在1小時內做完第一遍。。。今天只用了30多分鐘,之后開始了檢查,一共檢查了三遍,檢查出了幾道題的錯,但仍有些拿不準的。。。最后下了決心,點了結束鍵。。。成績單出來了,85%通過,錯了9道題!其中集合類只對了66%,比較差。。。出了考場,回想了一下,心里又感覺不出一些的激動。。。也許是這段時間的忙碌讓自己已經不習慣這種感覺了,也許是因為還有許多的事,許多的考試等著我去做。。。但不管怎么樣,還是走過了一關,雖然有些遺憾,感覺這套題自己應該達到 90%,但畢竟還是對自己的一個考驗,這期間的心理變化也許只有我自己才能夠體會出來。。。在漫漫長路中,偶爾的一個驛站也許能夠讓你卸下一些包袱,但依舊不能太放松心情,就像現在,雖然通過了這個考試,但它只是一個基礎,并不代表你就能做什么,蔡學庸曾說過,一個人有認證,又有口才,在面試中能夠占有優勢,但時間一長,還是需要用其它方面的優勢來證明,的確是這樣,能力才是我們應該擁有的,認證無非就是一張紙,多了只是增加紙的厚度,自己能力上有沒有提高也許只有自己才知道。。。好了,現在又暫時少了一件事,馬上就要開始復習期末考試了,不過還是希望燃氣、通州那邊暫時沒有什么事,否則又該招架不住了。。。呵呵,加油吧!朝著又一個目標前進!???

          posted @ 2006-12-19 23:24 bisal 閱讀(250) | 評論 (1)編輯 收藏

          java開發代碼規范

          一、目的? ?
             對于代碼,首要要求是它必須正確,能夠按照程序員的真實思想去運行;第二個的要求是代碼必須清晰易懂,使別的程序員能夠容易理解代碼所進行的實際工作。 在軟件工程領域,源程序的風格統一標志著可維護性、可讀性,是軟件項目的一個重要組成部分。而目前還沒有成文的編碼風格文檔,以致于很多時候,程序員沒有 一個共同的標準可以遵守,編碼風格各異,程序可維護性差、可讀性也很差。通過建立代碼編寫規范,形成開發小組編碼約定,提高程序的可靠性、可讀性、可修改 性、可維護性、可繼承性和一致性,可以保證程序代碼的質量,繼承軟件開發成果,充分利用資源,使開發人員之間的工作成果可以共享。
          ? ?本文在參考業界已有的編碼風格的基礎上,描述了一個基于 JBuilder 的項目風格,力求一種統一的編程風格,并從整體編碼風格、代碼文件風格、函數編寫風格、變量風格、注釋風格等幾個方面進行闡述。(這些規范并不是一定要絕 對遵守,但是一定要讓程序有良好的可讀性)

          二、整體編碼風格
          1、縮進
          ? ?縮進建議以4個空格為單位。建議在 Tools/Editor Options 中設置 Editor 頁面的Block ident為4,Tab Size 為8。預處理語句、全局數據、標題、附加說明、函數說明、標號等均頂格書寫。語句塊的"{"、"}"配對對齊,并與其前一行對齊,語句塊類的語句縮進建議 每個"{"、"}"單獨占一行,便于匹對。JBuilder 中的默認方式是開始的"{"不是單獨一行,建議更改成上述格式(在 Project/Default Project Properties 中設置 Code Style 中選擇 Braces 為 Next line)。
          2、空格
          ? ?原則上變量、類、常量數據和函數在其類型,修飾名稱之間適當空格并據情況對齊。關鍵字原則上空一格,如:if ( ... ) 等。運算符的空格規定如下:"::"、"->"、"["、"]"、"++"、"--"、"~"、"!"、"+"、"-"(指正負號)、"& "(引用)等幾個運算符兩邊不加空格(其中單目運算符系指與操作數相連的一邊),其它運算符(包括大多數二目運算符和三目運算符"?:"兩邊均加一空格, 在作函數定義時還可據情況多空或不空格來對齊,但在函數實現時可以不用。","運算符只在其后空一格,需對齊時也可不空或多空格。不論是否有括號,對語句 行后加的注釋應用適當空格與語句隔開并盡可能對齊。個人認為此項可以依照個人習慣決定遵循與否。
          3、對齊
          ? ?原則上關系密切的行應對齊,對齊包括類型、修飾、名稱、參數等各部分對齊。另每一行的長度不應超過屏幕太多,必要時適當換行,換行時盡可能在","處或 運算符處,換行后最好以運算符打頭,并且以下各行均以該語句首行縮進,但該語句仍以首行的縮進為準,即如其下一行為“{”應與首行對齊。
          ? ?變量定義最好通過添加空格形成對齊,同一類型的變量最好放在一起。如下例所示:
          int? ?? ???Value;
          int? ?? ???Result;
          int? ?? ???Length;
          DWORD? ?? ?Size;
          DWORD? ?? ?BufSize;
          個人認為此項可以依照個人習慣決定遵循與否。
          4、空行
          不 得存在無規則的空行,比如說連續十個空行。程序文件結構各部分之間空兩行,若不必要也可只空一行,各函數實現之間一般空兩行,由于每個函數還要 有函數說 明注釋,故通常只需空一行或不空,但對于沒有函數說明的情況至少應再空一行。對自己寫的函數,建議也加上“//------”做分隔。函數內部數據與代碼 之間應空至少一行,代碼中適當處應以空行空開,建議在代碼中出現變量聲明時,在其前空一行。類中四個“p”之間至少空一行,在其中的數據與函數之間也應空 行。
          5、注釋
          注釋是軟件可讀性的具體體現。程序注釋量一般占程序編碼量的20%,軟件工程要求不少于20%。程序注釋不能用抽象 的語言,類似于"處理"、"循 環"這樣 的計算機抽象語言,要精確表達出程序的處理說明。例如:"計算凈需求"、"計算第一道工序的加工工時"等。避免每行程序都使用注釋,可以在一段程序的前面 加一段注釋,具有明確的處理邏輯。
          注釋必不可少,但也不應過多,不要被動的為寫注釋而寫注釋。以下是四種必要的注釋:
          A. 標題、附加說明。
          B. 函數、類等的說明。對幾乎每個函數都應有適當的說明,通常加在函數實現之前,在沒有函數實現部分的情況下則加在函數原型前,其內容主要是函數的功能、目 的、算法等說明,參數說明、返回值說明等,必要時還要有一些如特別的軟硬件要求等說明。公用函數、公用類的聲明必須由注解說明其使用方法和設計思路,當然 選擇恰當的命名格式能夠幫助你把事情解釋得更清楚。
          C. 在代碼不明晰或不可移植處必須有一定的說明。
          D. 及少量的其它注釋,如自定義變量的注釋、代碼書寫時間等。
          注釋有塊注釋和行注釋兩種,分別是指:"/**/"和"http://"建議對A用塊注釋,D用行注釋,B、C則視情況而定,但應統一,至少在一個單元中B類注釋形式應統一。具體對不同文件、結構的注釋會在后面詳細說明。
          6、代碼長度
          對 于每一個函數建議盡可能控制其代碼長度為53行左右,超過53行的代碼要重新考慮將其拆分為兩個或兩個以上的函數。函數拆分規則應該一不破壞原 有算法為 基礎,同時拆分出來的部分應該是可以重復利用的。對于在多個模塊或者窗體中都要用到的重復性代碼,完全可以將起獨立成為一個具備公用性質的函數,放置于一 個公用模塊中。
          7、頁寬
          頁寬應該設置為80字符。源代碼一般不會超過這個寬度, 并導致無法完整顯示, 但這一設置也可以靈活調整. 在任何情況下, 超長的語句應該在一個逗號或者一個操作符后折行. 一條語句折行后, 應該比原來的語句再縮進2個字符.
          8、行數
          一 般的集成編程環境下,每屏大概只能顯示不超過50行的程序,所以這個函數大概要5-6屏顯示,在某些環境下要8屏左右才能顯示完。這樣一來,無 論是讀程 序還是修改程序,都會有困難。因此建議把完成比較獨立功能的程序塊抽出,單獨成為一個函數。把完成相同或相近功能的程序塊抽出,獨立為一個子函數??梢园l 現,越是上層的函數越簡單,就是調用幾個子函數,越是底層的函數完成的越是具體的工作。這是好程序的一個標志。這樣,我們就可以在較上層函數里容易控制整 個程序的邏輯,而在底層的函數里專注于某方面的功能的實現了。

          三、代碼文件風格
          所有的 Java(*.java) 文件都必須遵守如下的樣式規則:
          . 文件生成
          對于規范的 JAVA 派生類,盡量用 JBuilder 的 Object Gallery 工具來生成文件格式,避免用手工制作的頭文件/實現文件。
          . package/import
          package 行要在 import 行之前,import 中標準的包名要在本地的包名之前,而且按照字母順序排列。如果 import 行中包含了同一個包中的不同子目錄,則應該用 * 來處理。
          package hotlava.net.stats;
          import java.io.*;
          import java.util.Observable;
          import hotlava.util.Application;??
          這里 java.io.* 使用來代替InputStream and OutputStream 的。
          . 文件頭部注釋
          文 件頭部注釋主要是表明該文件的一些信息,是程序的總體說明,可以增強程序的可讀性和可維護性。文件頭部注釋一般位于 package/imports 語句之后,Class 描述之前。要求至少寫出文件名、創建者、創建時間和內容描述。JBuilder 的 Object Gallery 工具生成的代碼中會在類、工程文件中等自動添加注釋,我們也要添加一些注釋,其格式應該盡量約束如下:
          /**
          * Title:??確定鼠標位置類
          * Description: 確定鼠標當前在哪個作業欄位中并返回作業號
          * @Copyright: Copyright (c) 2002
          * @Company: HIT
          * @author: rivershan
          * @version: 1.0
          * @time: 2002.10.30
          */
          . Class
          接下來的是類的注釋,一般是用來解釋類的。
          /**
          * A class representing a set of packet and byte counters
          * It is observable to allow it to be watched, but only
          * reports changes when the current set is complete
          */
          接下來是類定義,包含了在不同的行的 extends 和 implements
          public class CounterSet
          extends Observable
          implements Cloneable
          .Class Fields
          接下來是類的成員變量:
          /**
          * Packet counters
          */
          protected int[] packets;
          public 的成員變量必須生成文檔(JavaDoc)。proceted、private和 package 定義的成員變量如果名字含義明確的話,可以沒有注釋。
          . 存取方法
          接下來是類變量的存取的方法。它只是簡單的用來將類的變量賦值獲取值的話,可以簡單的寫在一行上。(個人認為盡量分行寫)
          /**
          * Get the counters
          * @return an array containing the statistical data.??This array has been
          * freshly allocated and can be modified by the caller.
          */
          public int[] getPackets()
          {
          return copyArray(packets, offset);
          }
          public int[] getBytes()
          {
          return copyArray(bytes, offset);
          }
          public int[] getPackets()
          {
          return packets;
          }
          public void setPackets(int[] packets)
          {
          this.packets = packets;
          }
          其它的方法不要寫在一行上
          . 構造函數
          接下來是構造函數,它應該用遞增的方式寫(比如:參數多的寫在后面)。
          訪問類型("public","private" 等.)和任何"static","final"或"synchronized"應該在一行中,并且方法和參數另寫一行,這樣可以使方法和參數更易讀。
          public
          CounterSet(int size)
          {
          ??this.size = size;
          }
          . 克隆方法
          如果這個類是可以被克隆的,那么下一步就是 clone 方法:
          public
          Object clone()
          {
          try
          ??{
          ? ? CounterSet obj = (CounterSet)super.clone();
          ? ? obj.packets = (int[])packets.clone();
          ? ? obj.size = size;
          ? ? return obj;
          ??}??
          ??catch(CloneNotSupportedException e)
          ??{
          ? ?throw new InternalError("Unexpected CloneNotSUpportedException: "
          ? ?? ?? ?+ e.getMessage());
          ??}
          }
          . 類方法
          下面開始寫類的方法:
          /**
          * Set the packet counters
          * (such as when restoring from a database)
          */
          protected final
          void setArray(int[] r1, int[] r2, int[] r3, int[] r4)
          throws IllegalArgumentException
          {
          //
          ??// Ensure the arrays are of equal size
          ??//
          ??if (r1.length != r2.length || r1.length != r3.length || r1.length != r4.length)
          throw new IllegalArgumentException("Arrays must be of the same size");
          ??System.arraycopy(r1, 0, r3, 0, r1.length);
          ??System.arraycopy(r2, 0, r4, 0, r1.length);
          }
          . toString 方法
          無論如何,每一個類都應該定義 toString 方法:
          public
          String toString()
          {
          String retval = "CounterSet: ";
          ? ?for (int i = 0; i < data.length(); i++)
          ? ?{
          ? ?? ?retval += data.bytes.toString();
          ? ?? ?retval += data.packets.toString();
          ? ?}
          ? ?return retval;
          }
          . main 方法
          如果main(String[]) 方法已經定義了, 那么它應該寫在類的底部.

          四、函數編寫風格
          . 函數的命名
          通 常,函數的命名也是以能表達函數的動作意義為原則的,一般是由動詞打頭,然后跟上表示動作對象的名詞,各單詞的首字母應該大寫。另外,還有一些函數命名的 通用規則。如取數,則用Get打頭,然后跟上要取的對象的名字;設置數,則用Set打頭,然后跟上要設的對象的名字;而對象中為了響應消息進行動作的函 數,可以命名為On打頭,然后是相應的消息的名稱;進行主動動作的函數,可以命名為Do打頭,然后是相應的動作名稱。類似的規則還有很多,需要程序員多讀 優秀的程序,逐漸積累經驗,才能作出好的函數命名。
          . 函數注釋
          系統自動生成的函數,如鼠標動作響應函數等,不必太多的注釋和解釋;
          對于自行編寫的函數,若是系統關鍵函數,則必須在函數實現部分的上方標明該函數的信息,格式如下:
          /**
          * 函數名:
          * 編寫者:
          * 參考資料:
          * 功??能:
          * 輸入參數:
          * 輸出參數:
          * 備??注:
          */
          希望盡量遵循以上格式。

          五、符號風格
          . 總體要求
          對于各種符號的定義,都有一個共通點,就是應該使用有實際意義的英文單詞或英文單詞的縮寫,不要使用簡單但沒有意義的字串,盡可能不使用阿拉伯數字,更切忌使用中文拼音的首字母。如這樣的名稱是不提倡的:Value1,Value2,Value3,Value4 …。
          例如:
          file(文件),code(編號),data(數據),pagepoint(頁面指針), faxcode(傳真號) ,address(地址),bank(開戶銀行),……
          . 變量名稱
          變 量命名由(前綴+修飾語)構成。現在比較流行的是一套由微軟的一個匈牙利軟件工程師首先使用,并且在微軟推廣開來,現在被稱之為匈牙利命名法的命名規則。 匈牙利命名法規定,使用表示標識符所對應的變量類型的英文小寫縮寫作為標識符的前綴,后面在使用表示變量意義的英文單詞或縮寫進行命名。下面是匈牙利命名 法中的一些命名方式:
          (1)生存期修飾:用l(local)表示局域變量,p(public)表示全局變量,s(send)表示參數變量
          (2)類型修飾:用s(AnsiString)表示字符串,c(char)表示字符,n(number)數值,i(intger)表示整數,d(double)表示雙精度,f(float)浮點型,b(bool)布爾型,d(date)表示日期型.
          例如:
          li_length表示整形的局域變量,是用來標識長度的.ls_code表示字符型的局域變量,用來標識代碼.
          . 控件名稱
          控件命名由(前綴+修飾語)構成。前綴即為控件的名稱。
          按鈕變量??Button+Xxxxxxx? ? 例如:ButtonSave,ButtonExit,ButtonPrint等
          題標變量??Label+Xxxxxxxx? ? 例如:LabelName,LabelSex等
          數據表變量 Table+Xxxxxx? ?? ?例如:TableFile,TableCount等
          查詢變量??Query+Xxxxxx? ?? ?例如:QueryFile,QueryCeneter等
          數據源變量 DataSource+Xxx? ?? ?例如:DataSourceFile,DataSourceCenter等
          。。。。。。。。。。。。。。。。
          (注:對于與表有關的控件“修飾語”部分最好直接用表名。)
          . Package 的命名
          Package 的名字應該都是由一個小寫單詞組成。
          . Class 的命名
          Class 的名字必須由一個或數個能表達該類的意思的大寫字母開頭而其它字母都小寫的單詞或縮寫組成,這樣能使這個 Class 的名稱能更容易被理解。
          . Class 變量的命名
          變量的名字必須用一個小寫字母開頭。后面的單詞用大寫字母開頭。對于類的成員變量,在對其標識符命名時,要加上代表member(成員)的前綴m_。例如一個標識符為m_dwFlag,則它表示的變量是一個類型為雙字的成員變量,它是代表一個標志。
          . Static Final 變量的命名
          Static Final 變量的名字應該都大寫,并且指出完整含義。
          . 參數的命名
          參數的名字必須和變量的命名規范一致。
          . 數組的命名
          數組應該總是用下面的方式來命名:
          byte[] buffer;??
          而不是:
          byte buffer[];
          . 方法的參數
          使用有意義的參數命名,如果可能的話,使用和要賦值的字段一樣的名字:
          SetCounter(int size)
          {
          this.size = size;
          }
          . 神秘的數
          首 先要說什么是神秘的數。我們在程序里經常會用到一些量,它是有特定的含義的。例如,現在我們寫一個薪金統計程序,公司員工有50人,我們在程序里就會用 50這個數去進行各種各樣的運算。在這里,50就是"神秘的數"。為什么稱它為神秘呢?因為別的程序員在程序里看到50這個數,不知道它的含義,只能靠猜 了。
          在程序里出現"神秘的數"會降低程序的可讀性,應該盡量避免。避免的方法是把神秘的數定義為一個常量。注意這個常量的命名應該能表達該 數的意義,并且應該全部大寫,以與對應于變量的標識符區別開來。例如上面50這個數,我們可以定義為一個名為NUMOFEMPLOYEES的常量來代替。 這樣,別的程序員在讀程序的時候就可以容易理解了。
          六、程序編寫風格
          . exit()
          exit 除了在 main 中可以被調用外,其他的地方不應該調用。因為這樣做不給任何代碼代碼機會來截獲退出。一個類似后臺服務地程序不應該因為某一個庫模塊決定了要退出就退出。
          . 異常
          申明的錯誤應該拋出一個RuntimeException或者派生的異常。
          頂層的main()函數應該截獲所有的異常,并且打印(或者記錄在日志中)在屏幕上。
          . 垃圾收集
          JAVA使用成熟的后臺垃圾收集技術來代替引用計數。但是這樣會導致一個問題:你必須在使用完對象的實例以后進行清場工作。比如一個prel的程序員可能這么寫:
          ...
          {
          FileOutputStream fos = new FileOutputStream(projectFile);
          project.save(fos, "IDE Project File");
          }
          ...
          除非輸出流一出作用域就關閉,非引用計數的程序語言,比如JAVA,是不能自動完成變量的清場工作的。必須象下面一樣寫:
          FileOutputStream fos = new FileOutputStream(projectFile);
          project.save(fos, "IDE Project File");
          fos.close();
          . Clone
          下面是一種有用的方法:
          implements Cloneable
          public
          Object clone()
          {
          try
          {
          ThisClass obj = (ThisClass)super.clone();
          obj.field1 = (int[])field1.clone();
          obj.field2 = field2;
          return obj;
          }
          catch(CloneNotSupportedException e)
          {
          throw new InternalError("Unexpected CloneNotSUpportedException: " + e.getMessage());
          }
          }
          . final 類
          絕對不要因為性能的原因將類定義為 final 的(除非程序的框架要求)
          如果一個類還沒有準備好被繼承,最好在類文檔中注明,而不要將她定義為 final 的。這是因為沒有人可以保證會不會由于什么原因需要繼承她。
          . 訪問類的成員變量
          大部分的類成員變量應該定義為 protected 的來防止繼承類使用他們。
          注意,要用"int[] packets",而不是"int packets[]",后一種永遠也不要用。
          public void setPackets(int[] packets)
          {
          this.packets = packets;
          }
          CounterSet(int size)
          {
          this.size = size;
          }
          . byte 數組轉換到 characters
          為了將 byte 數組轉換到 characters,你可以這么做:
          "Hello world!".getBytes();
          . Utility 類
          Utility 類(僅僅提供方法的類)應該被申明為抽象的來防止被繼承或被初始化。
          . 初始化
          下面的代碼是一種很好的初始化數組的方法:
          objectArguments = new Object[]
          {
          arguments
          };
          . 枚舉類型
          JAVA 對枚舉的支持不好,但是下面的代碼是一種很有用的模板:
          class Colour
          {
          ??public static final Colour BLACK = new Colour(0, 0, 0);
          ??public static final Colour RED = new Colour(0xFF, 0, 0);
          ??public static final Colour GREEN = new Colour(0, 0xFF, 0);
          ??public static final Colour BLUE = new Colour(0, 0, 0xFF);
          ??public static final Colour WHITE = new Colour(0xFF, 0xFF, 0xFF);
          }
          這種技術實現了RED, GREEN, BLUE 等可以象其他語言的枚舉類型一樣使用的常量。 他們可以用 ''=='' 操作符來比較。
          但是這樣使用有一個缺陷:如果一個用戶用這樣的方法來創建顏色 BLACK
          new Colour(0,0,0)
          那么這就是另外一個對象,''==''操作符就會產生錯誤。她的 equal() 方法仍然有效。由于這個原因,這個技術的缺陷最好注明在文檔中,或者只在自己的包中使用。
          . 混合使用 AWT 和 Swing 組件
          如果要將 AWT 組件和 Swing 組件混合起來使用的話,請小心使用。實際上,盡量不要將他們混合起來使用。
          . 滾動的 AWT 組件
          AWT 組件絕對不要用 JscrollPane 類來實現滾動。滾動 AWT 組件的時候一定要用 AWT ScrollPane 組件來實現。
          . 避免在 InternalFrame 組件中使用 AWT 組件
          盡量不要這么做,要不然會出現不可預料的后果。
          . Z-Order 問題
          AWT 組件總是顯示在 Swing 組件之上。當使用包含 AWT 組件的 POP-UP 菜單的時候要小心,盡量不要這樣使用。

          八、性能
          在寫代碼的時候,從頭至尾都應該考慮性能問題。這不是說時間都應該浪費在優化代碼上,而是我們時刻應該提醒自己要注意代碼的效率。比如:如果沒有時間來實現一個高效的算法,那么我們應該在文檔中記錄下來,以便在以后有空的時候再來實現她。
          不是所有的人都同意在寫代碼的時候應該優化性能這個觀點的,他們認為性能優化的問題應該在項目的后期再去考慮,也就是在程序的輪廓已經實現了以后。
          . 不必要的對象構造
          不要在循環中構造和釋放對象
          . 使用 StringBuffer 對象
          在 處理 String 的時候要盡量使用 StringBuffer 類,StringBuffer 類是構成 String 類的基礎。String 類將 StringBuffer 類封裝了起來,(以花費更多時間為代價)為開發人員提供了一個安全的接口。當我們在構造字符串的時候,我們應該用 StringBuffer 來實現大部分的工作,當工作完成后將 StringBuffer 對象再轉換為需要的 String 對象。比如:如果有一個字符串必須不斷地在其后添加許多字符來完成構造,那么我們應該使用 StringBuffer 對象和她的 append() 方法。如果我們用 String 對象代替 StringBuffer 對象的話,會花費許多不必要的創建和釋放對象的 CPU 時間。
          . 避免太多的使用 synchronized 關鍵字
          避免不必要的使用關鍵字 synchronized,應該在必要的時候再使用她,這是一個避免死鎖的好方法。

          posted @ 2006-12-12 23:00 bisal 閱讀(565) | 評論 (0)編輯 收藏

          Flexsim

          ??????? 今天培訓了一下Flexsim這個仿真軟件,以前只學過GPSS,連Arena也沒有接觸過,感覺Flexsim給人的第一感覺就是比較直觀,動態效果比較強,不過它的許多功能還不了解,一天的培訓可能僅僅接觸到了皮毛,而且關于它的一些教材也比較少,只有聯機幫助,據說是許多公司都是用這個仿真軟件進行仿真決策,它的功能還有待進一步地探索與開發。。。

          posted @ 2006-11-18 14:18 bisal 閱讀(5260) | 評論 (36)編輯 收藏

          SCJP備考復習。。。

          ?? 今天終于報了SCJP,交錢的時候想都沒有想。。。雖然是個挑戰,但畢竟還是有許多的不利因素,盡管如此,也要全力以赴,即使沒有好的結果,也不能枉費這一段特殊的經歷。。。加油!為了一個夢想!

          posted @ 2006-10-30 21:43 bisal 閱讀(265) | 評論 (1)編輯 收藏

          JSP連接數據庫大全

          JSP連接數據庫大全


          一、jsp連接Oracle8/8i/9i數據庫(用thin模式)

          testoracle.jsp如下:

          <%@ page contentType="text/html;charset=gb2312"%>

          <%@ page import="java.sql.*"%>

          <html>

          <body>

          <%Class.forName("oracle.jdbc.driver.OracleDriver").newInstance();

          String url="jdbc:oracle:thin:@localhost:1521:orcl";

          //orcl為你的數據庫的SID

          String user="scott";

          String password="tiger";

          Connection conn= DriverManager.getConnection(url,user,password);

          Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);

          String sql="select * from test";

          ResultSet rs=stmt.executeQuery(sql);

          while(rs.next()) {%>

          您的第一個字段內容為:<%=rs.getString(1)%>

          您的第二個字段內容為:<%=rs.getString(2)%>

          <%}%>

          <%out.print("數據庫操作成功,恭喜你");%>

          <%rs.close();

          stmt.close();

          conn.close();

          %>

          </body>

          </html>


          二、jsp連接Sql Server7.0/2000數據庫

          testsqlserver.jsp如下:

          <%@ page contentType="text/html;charset=gb2312"%>

          <%@ page import="java.sql.*"%>

          <html>

          <body>

          <%Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance();

          String url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=pubs";

          //pubs為你的數據庫的

          String user="sa";

          String password="";

          Connection conn= DriverManager.getConnection(url,user,password);

          Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);

          String sql="select * from test";

          ResultSet rs=stmt.executeQuery(sql);

          while(rs.next()) {%>

          您的第一個字段內容為:<%=rs.getString(1)%>

          您的第二個字段內容為:<%=rs.getString(2)%>

          <%}%>

          <%out.print("數據庫操作成功,恭喜你");%>

          <%rs.close();

          stmt.close();

          conn.close();

          %>

          </body>

          </html>


          三、jsp連接DB2數據庫

          testdb2.jsp如下:

          <%@ page contentType="text/html;charset=gb2312"%>

          <%@ page import="java.sql.*"%>

          <html>

          <body>

          <%Class.forName("com.ibm.db2.jdbc.app.DB2Driver ").newInstance();

          String url="jdbc:db2://localhost:5000/sample";

          //sample為你的數據庫名

          String user="admin";

          String password="";

          Connection conn= DriverManager.getConnection(url,user,password);

          Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);

          String sql="select * from test";

          ResultSet rs=stmt.executeQuery(sql);

          while(rs.next()) {%>

          您的第一個字段內容為:<%=rs.getString(1)%>

          您的第二個字段內容為:<%=rs.getString(2)%>

          <%}%>

          <%out.print("數據庫操作成功,恭喜你");%>

          <%rs.close();

          stmt.close();

          conn.close();

          %>

          </body>

          </html>


          四、jsp連接Informix數據庫

          testinformix.jsp如下:

          <%@ page contentType="text/html;charset=gb2312"%>

          <%@ page import="java.sql.*"%>

          <html>

          <body>

          <%Class.forName("com.informix.jdbc.IfxDriver").newInstance();

          String url =

          "jdbc:informix-sqli://123.45.67.89:1533/testDB:INFORMIXSERVER=myserver;

          user=testuser;password=testpassword";

          //testDB為你的數據庫名

          Connection conn= DriverManager.getConnection(url);

          Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);

          String sql="select * from test";

          ResultSet rs=stmt.executeQuery(sql);

          while(rs.next()) {%>

          您的第一個字段內容為:<%=rs.getString(1)%>

          您的第二個字段內容為:<%=rs.getString(2)%>

          <%}%>

          <%out.print("數據庫操作成功,恭喜你");%>

          <%rs.close();

          stmt.close();

          conn.close();

          %>

          </body>

          </html>


          五、jsp連接Sybase數據庫

          testmysql.jsp如下:

          <%@ page contentType="text/html;charset=gb2312"%>

          <%@ page import="java.sql.*"%>

          <html>

          <body>

          <%Class.forName("com.sybase.jdbc.SybDriver").newInstance();

          String url =" jdbc:sybase:Tds:localhost:5007/tsdata";

          //tsdata為你的數據庫名

          Properties sysProps = System.getProperties();

          SysProps.put("user","userid");

          SysProps.put("password","user_password");

          Connection conn= DriverManager.getConnection(url, SysProps);

          Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);

          String sql="select * from test";

          ResultSet rs=stmt.executeQuery(sql);

          while(rs.next()) {%>

          您的第一個字段內容為:<%=rs.getString(1)%>

          您的第二個字段內容為:<%=rs.getString(2)%>

          <%}%>

          <%out.print("數據庫操作成功,恭喜你");%>

          <%rs.close();

          stmt.close();

          conn.close();

          %>

          </body>

          </html>


          六、jsp連接MySQL數據庫

          testmysql.jsp如下:

          <%@ page contentType="text/html;charset=gb2312"%>

          <%@ page import="java.sql.*"%>

          <html>

          <body>

          <%Class.forName("org.gjt.mm.mysql.Driver").newInstance();

          String url ="jdbc:mysql://localhost/softforum?user=soft&password=soft1234&useUnicode=true&characterEncoding=gb2312"

          //testDB為你的數據庫名

          Connection conn= DriverManager.getConnection(url);

          Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);

          String sql="select * from test";

          ResultSet rs=stmt.executeQuery(sql);

          while(rs.next()) {%>

          您的第一個字段內容為:<%=rs.getString(1)%>

          您的第二個字段內容為:<%=rs.getString(2)%>

          <%}%>

          <%out.print("數據庫操作成功,恭喜你");%>

          <%rs.close();

          stmt.close();

          conn.close();

          %>

          </body>

          </html>


          七、jsp連接PostgreSQL數據庫

          testmysql.jsp如下:

          <%@ page contentType="text/html;charset=gb2312"%>

          <%@ page import="java.sql.*"%>

          <html>

          <body>

          <%Class.forName("org.postgresql.Driver").newInstance();

          String url ="jdbc:postgresql://localhost/soft"

          //soft為你的數據庫名

          String user="myuser";

          String password="mypassword";

          Connection conn= DriverManager.getConnection(url,user,password);

          Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);

          String sql="select * from test";

          ResultSet rs=stmt.executeQuery(sql);

          while(rs.next()) {%>

          您的第一個字段內容為:<%=rs.getString(1)%>

          您的第二個字段內容為:<%=rs.getString(2)%>

          <%}%>

          <%out.print("數據庫操作成功,恭喜你");%>

          <%rs.close();

          stmt.close();

          conn.close();

          %>

          </body>

          </html>




          posted @ 2006-10-29 10:40 bisal 閱讀(2163) | 評論 (1)編輯 收藏

          ASP.NET

          ??? 開始接觸ASP.NET。。。

          posted @ 2006-10-29 10:32 bisal 閱讀(172) | 評論 (0)編輯 收藏

          在WinMe中安裝java環境

            因為家里的臺式機只能裝到WinMe,所以剛開始的時候不能像在Win2000,WinXP中填寫環境變量那樣設置java環境,查了資料說需要在C盤中在autoexec.bat文件中添加環境變量的方式設置,但是用了半天,結果都沒有能夠成功編譯運行java文件,一直不知道為什么。有一次突然當在運行中打入msconfig后看到其中有一項是“環境變量”,試了一下,結果竟然可以編譯運行java文件了!真實太神奇了!后來通過查找資料發現也可以通過“幫助”程序進入msconfig設置窗口,操作的過程基本與此相同,呵呵,有時真是需要自己的實踐才能讓自己有比較深的體會,掌握一些東西,我覺得應用到任何一個領域都是行得通的。

          posted @ 2006-10-21 21:35 bisal 閱讀(228) | 評論 (0)編輯 收藏

          程序員修煉之道

          ??? 看到了一篇文章,感覺頗為有道理,希望可以隨時以此警示自己。要想成為一名優秀的程序員,而不是一個普通的代碼藍領的話,我覺得應該做到以下文章中談到的幾點:

          1.從一門語言開始
          初學編程,最忌諱就是貪多。其實編程的道理都是相同的,通一則知百,但是知百卻不一定能夠通一!所以切記要"專心使用一門語言",把它學透,以后自然通一則知百!通過實踐證明,VB和Delphi是使用者最多的語言。

          2.規范的代碼
          程序員與程序員之間的交流主要還是靠源程序,所以代碼一定要規范(命名規范,注釋規范,編寫規范等等)。這樣不僅便于你程序的改進,也便于向他人請教!"編程易精"的程序代碼就是采用了規范的寫作方式。

          3.學why不記how
          學編程,重要的是學會why(程序為什么這樣做),而不是學習how(怎樣編程)。最重要的是樹立"編程的思路",而不是編程的步驟。"編程易精"就是教你思考如何做好程序。

          4.學而時習之
          每天學的東西多了,總要找個時間來復習一下,做好時每天晚上空下來時,一邊看代碼一邊看實例,參照學習:想想都學了什么,還有哪些需要學習和掌握。這樣不僅溫習了當天的內容,還可以定下來第二天的學習計劃。

          5.簡單最好
          程序代碼的編寫不講究華麗,最好的代碼是最實用最簡短的。這樣不僅可以減少出錯的機會,并且還使得整個程序顯得小巧。

          6.三人行必有我師
          不管你的編程水平多高,都有不懂的地方,所以時刻都要向他人學習來提高自己。連孔子都可以拜小孩為師,我們還有什么面子放不下的呢?

            潘愛民也說過:“高超的技術水準加上良好的編程習慣,等于優秀程序員中的佼佼者”,希望可以真正做到這些。。。

          posted @ 2006-10-14 17:41 bisal 閱讀(238) | 評論 (0)編輯 收藏

          僅列出標題
          共5頁: 上一頁 1 2 3 4 5 下一頁 

          導航

          統計

          常用鏈接

          留言簿(4)

          隨筆檔案

          文章檔案

          相冊

          Java戰友兄弟

          常用技術交流平臺

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 婺源县| 阿坝| 酒泉市| 济阳县| 永寿县| 左云县| 柳林县| 湾仔区| 新疆| 自治县| 静宁县| 会泽县| 罗源县| 磐石市| 峨眉山市| 孝昌县| 长阳| 漳州市| 黄大仙区| 德清县| 石棉县| 紫云| 吴江市| 涡阳县| 雅江县| 梁河县| 太仆寺旗| 嘉禾县| 长垣县| 揭东县| 那坡县| 阿合奇县| 九龙城区| 侯马市| 中宁县| 黄梅县| 讷河市| 格尔木市| 紫阳县| 嘉鱼县| 宁德市|