<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    夢想飛翔

    自強不息
    posts - 111, comments - 30, trackbacks - 0, articles - 0
      BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

    2007年2月6日

    大數據是用scala語言,和java有些不同又比java強大,省去了很多繁瑣的東西,scala中的的接口用trait來定義,不同于java的接口,trait中可以有抽象方法也可以有不抽象方法。scala中的方法中還可以定義方法,這在java中是從來沒有的。
    大數據未來幾年發展的重點方向,大數據戰略已經在十八屆五中全會上作為重點戰略方向,中國在大數據方面才剛剛起步,但是在美國已經產生了上千億的市場價值。舉個例子,美國通用公司是一個生產飛機發動機的一個公司,這家公司在飛機發動機的每一個零部件上都安裝了傳感器,這些傳感器在飛機發動機運作的同時不斷的把發動機狀態的數據傳到通用公司的云平臺上,通用公司又有很多數據分析中心專門接受這些數據,根據大數據的分析可以隨時掌握每一家航空公司發動機的飛行狀況,可以告知這些航空公司發動機的哪些部件需要檢修或保養,避免飛機事故,通過這種服務通用公司就產生了幾百億美元的產值。
    現在正是學習大數據的最好機遇,不花一分錢就可以成為大數據高手,實現年薪50萬的夢想。
    王家林的第一個中國夢:免費為全社會培養100萬名優秀的大數據從業人員!
    您可以通過王家林老師的微信號18610086859發紅包捐助大數據、互聯網+、O2O、工業4.0、微營銷、移動互聯網等系列免費實戰課程, 目前已經發布的王家林免費視頻全集如下:
    1,《大數據不眠夜:Spark內核天機解密(共100講)》:http://pan.baidu.com/s/1eQsHZAq 
    2,《Hadoop深入淺出實戰經典》http://pan.baidu.com/s/1mgpfRPu 
    3,《Spark純實戰公益大講壇》http://pan.baidu.com/s/1jGpNGwu 
    4,《Scala深入淺出實戰經典》http://pan.baidu.com/s/1sjDWG25 
    5,《Docker公益大講壇》http://pan.baidu.com/s/1kTpL8UF 
    6,《Spark亞太研究院Spark公益大講堂》http://pan.baidu.com/s/1i30Ewsd 
    7,DT大數據夢工廠Spark、Scala、Hadoop的所有視頻、PPT和代碼在百度云網盤的鏈接:
    http://pan.baidu.com/share/home?uk=4013289088#category/type=0&qq-pf-to=pcqq.group 
    王家林免費在51CTO發布的1000集合大數據spark、hadoop、scala、docker視頻: 
    1,《Scala深入淺出實戰初級入門經典視頻課程》http://edu.51cto.com/lesson/id-66538.html 
    2,《Scala深入淺出實戰中級進階經典視頻課程》http://edu.51cto.com/lesson/id-67139.html 
    3,《Akka深入淺出實戰經典視頻課程》http://edu.51cto.com/lesson/id-77672.html 
    4,《Spark亞太研究院決勝大數據時代公益大講堂》http://edu.51cto.com/lesson/id-30815.html 
    5,《云計算Docker虛擬化公益大講壇 》http://edu.51cto.com/lesson/id-61776.html 
    6,《Spark 大講堂(純實戰手動操作)》http://edu.51cto.com/lesson/id-78653.html 
    7,《Hadoop深入淺出實戰經典視頻課程-集群、HDFS、Yarn、MapReduce》http://edu.51cto.com/lesson/id-77141.html 
    8,《從技術角度思考Hadoop到底是什么》http://edu.51cto.com/course/course_id-1151.html 

    “DT大數據夢工廠”團隊第一個中國夢:免費為社會培養100萬名優秀的大數據從業人員。每天早上4點起持續分享大數據、互聯網+、O2O、工業4.0、微營銷、移動互聯網等領域的
    精華內容,幫助您和公司在DT時代打造智慧大腦,將生產力提高百倍以上!
    DT大數據夢工廠微信公眾號:DT_Spark,二維碼如下,期待大家加入!

    posted @ 2015-12-22 11:23 love1563 閱讀(106) | 評論 (0)編輯 收藏

    大數據是用scala語言,和java有些不同又比java強大,省去了很多繁瑣的東西,scala中的的接口用trait來定義,不同于java的接口,trait中可以有抽象方法也可以有不抽象方法。scala中的方法中還可以定義方法,這在java中是從來沒有的。
    大數據未來幾年發展的重點方向,大數據戰略已經在十八屆五中全會上作為重點戰略方向,中國在大數據方面才剛剛起步,但是在美國已經產生了上千億的市場價值。舉個例子,美國通用公司是一個生產飛機發動機的一個公司,這家公司在飛機發動機的每一個零部件上都安裝了傳感器,這些傳感器在飛機發動機運作的同時不斷的把發動機狀態的數據傳到通用公司的云平臺上,通用公司又有很多數據分析中心專門接受這些數據,根據大數據的分析可以隨時掌握每一家航空公司發動機的飛行狀況,可以告知這些航空公司發動機的哪些部件需要檢修或保養,避免飛機事故,通過這種服務通用公司就產生了幾百億美元的產值。
    現在正是學習大數據的最好機遇,不花一分錢就可以成為大數據高手,實現年薪50萬的夢想。
    王家林的第一個中國夢:免費為全社會培養100萬名優秀的大數據從業人員!
    您可以通過王家林老師的微信號18610086859發紅包捐助大數據、互聯網+、O2O、工業4.0、微營銷、移動互聯網等系列免費實戰課程, 目前已經發布的王家林免費視頻全集如下:
    1,《大數據不眠夜:Spark內核天機解密(共100講)》:http://pan.baidu.com/s/1eQsHZAq 
    2,《Hadoop深入淺出實戰經典》http://pan.baidu.com/s/1mgpfRPu 
    3,《Spark純實戰公益大講壇》http://pan.baidu.com/s/1jGpNGwu 
    4,《Scala深入淺出實戰經典》http://pan.baidu.com/s/1sjDWG25 
    5,《Docker公益大講壇》http://pan.baidu.com/s/1kTpL8UF 
    6,《Spark亞太研究院Spark公益大講堂》http://pan.baidu.com/s/1i30Ewsd 
    7,DT大數據夢工廠Spark、Scala、Hadoop的所有視頻、PPT和代碼在百度云網盤的鏈接:
    http://pan.baidu.com/share/home?uk=4013289088#category/type=0&qq-pf-to=pcqq.group 
    王家林免費在51CTO發布的1000集合大數據spark、hadoop、scala、docker視頻: 
    1,《Scala深入淺出實戰初級入門經典視頻課程》http://edu.51cto.com/lesson/id-66538.html 
    2,《Scala深入淺出實戰中級進階經典視頻課程》http://edu.51cto.com/lesson/id-67139.html 
    3,《Akka深入淺出實戰經典視頻課程》http://edu.51cto.com/lesson/id-77672.html 
    4,《Spark亞太研究院決勝大數據時代公益大講堂》http://edu.51cto.com/lesson/id-30815.html 
    5,《云計算Docker虛擬化公益大講壇 》http://edu.51cto.com/lesson/id-61776.html 
    6,《Spark 大講堂(純實戰手動操作)》http://edu.51cto.com/lesson/id-78653.html 
    7,《Hadoop深入淺出實戰經典視頻課程-集群、HDFS、Yarn、MapReduce》http://edu.51cto.com/lesson/id-77141.html 
    8,《從技術角度思考Hadoop到底是什么》http://edu.51cto.com/course/course_id-1151.html 

    “DT大數據夢工廠”團隊第一個中國夢:免費為社會培養100萬名優秀的大數據從業人員。每天早上4點起持續分享大數據、互聯網+、O2O、工業4.0、微營銷、移動互聯網等領域的
    精華內容,幫助您和公司在DT時代打造智慧大腦,將生產力提高百倍以上!
    DT大數據夢工廠微信公眾號:DT_Spark,二維碼如下,期待大家加入!

    posted @ 2015-12-22 11:22 love1563 閱讀(92) | 評論 (0)編輯 收藏

         摘要:   閱讀全文

    posted @ 2015-02-27 19:30 love1563 閱讀(1412) | 評論 (0)編輯 收藏

         摘要:   閱讀全文

    posted @ 2014-02-18 16:45 love1563 閱讀(4095) | 評論 (3)編輯 收藏

         摘要:   閱讀全文

    posted @ 2013-12-28 10:34 love1563 閱讀(2318) | 評論 (0)編輯 收藏

         摘要:     JessMA(原名:Portal-Basic)是一套功能完備的高性能 Full-Stack Web 應用開發框架,內置可擴展的 MVC Web 基礎架構和 DAO 數據庫訪問組件(內部已提供了 Hibernate、MyBatis 與 JDBC...  閱讀全文

    posted @ 2013-11-24 07:49 love1563 閱讀(3447) | 評論 (0)編輯 收藏

         摘要: ITPUB索引樹  閱讀全文

    posted @ 2013-09-30 11:42 love1563 閱讀(3352) | 評論 (0)編輯 收藏

    apache svn:http://svn.apache.org/repos/asf

    posted @ 2013-09-03 14:21 love1563 閱讀(2226) | 評論 (0)編輯 收藏

    開發軟件時,我的主要目標之一是:要么防止將缺陷引入代碼庫,要么限制缺陷的生存期;換言之,要盡早找到缺陷。很顯然,越是了解如何編寫更好的代碼以及如何有效測試軟件,就越能及早地捕捉到缺陷。我也很想要一張能發現潛在缺陷的安全之網。

    在本系列 八月份 的那期文章中,我得出了這樣的結論:將檢驗工具集成到構建過程(例如,使用 Ant 或 Maven)中,能夠建立起一種尋找潛在缺陷的方法。盡管這種方法使一致性成為可能并超越了 IDE,但它也有一點反作用。必須在本地構建軟件或等待 Continuous Integration 構建的運行。如果使用 Eclipse 插件,就可以在通過 Continuous Integration 構建或集成 發現一些這樣的沖突。這就促成了我稱為漸進編程 的編程方式,在這種方式下,允許在編碼過程中進行一定程度的質量檢驗 ——再也不能比這個更早了!

    本文涵蓋了我所認為的 “五大” 代碼分析領域:

    • 編碼標準
    • 代碼重復
    • 代碼覆蓋率
    • 依賴項分析
    • 復雜度監控

    可以用接下來的幾個靈活的 Eclipse 插件來揭示這些分析領域:

    • CheckStyle:用于編碼標準
    • PMD 的 CPD:幫助發現代碼重復
    • Coverlipse:測量代碼覆蓋率
    • JDepend:提供依賴項分析
    • Eclipse Metric 插件:有效地查出復雜度

    Eclipse 不是您的構建系統

      使用 Eclipse 插件與您將這些檢驗工具用于構建過程并不矛盾。事實上,您想要確保的是:下列使用 Eclipse 插件的規則就是應用到構建過程中的規則。

    安裝 Eclipse 插件

    安裝 Eclipse 插件再簡單不過了,只需要幾個步驟。在開始之前,最好把該插件下載站點的 URL 準備好。表 1 是本文用到的插件的列表:


    表 1. 代碼改進插件和相應的下載站點 URL
    工具目的Eclipse 插件的 URL
    CheckStyle編碼標準分析http://eclipse-cs.sourceforge.net/update/
    Coverlipse測試代碼覆蓋率http://coverlipse.sf.net/update
    CPD復制/粘貼檢驗http://pmd.sourceforge.net/eclipse/
    JDepend包依賴項分析http://andrei.gmxhome.de/eclipse/
    Metrics復雜度監控http://metrics.sourceforge.net/update

    知道了這些有用插件的下載地址后,安裝插件就是一個極簡單的過程。啟動 Eclipse,然后遵循下列步驟:

    1. 選擇 Help | Software Updates | Find and Install,如圖 1 所示:



      圖 1. 尋找并安裝 Eclipse 插件
      尋找并安裝 Eclipse 插件



    2. 選擇 Search for new features to install 單選按鈕,單擊 Next

    3. 單擊 New Remote Site,輸入要安裝的插件名和 URL(參見圖 2),單擊 OK,然后單擊 Finish 來顯示 Eclipse 更新管理器。



      圖 2. 配置新的遠程站點
      配置新的遠程站點



    4. 在 Eclipse 更新管理器中,有一個查看插件各方面特性的選項。我通常選擇頂級項,如圖 3 所示。選擇您需要的選項并單擊 Finish。Eclipse 現在安裝該插件。您需要重啟 Eclipse 實例。



      圖 3. 安裝 Eclipse 插件
      安裝 Eclipse 插件

    請遵循上述這些步驟來安裝其他的 Eclipse 插件;只需改變插件名和相應的下載位置即可。


    用 CheckStyle 校正標準

    代碼庫的可維護性直接影響著軟件的整個成本。另外,不佳的可維護性還會讓開發人員十分頭痛(進而導致開發人員的缺乏)—— 代碼越容易修改,就越容易添加新的產品特性。像 CheckStyle 這樣的工具可以協助尋找那些可影響到可維護性、與編碼標準相沖突的地方,比方說,過大的類、太長的方法和未使用的變量等等。

    有關 PMD

    另一個叫做 PMD 的開源工具提供的功能和 CheckStyle 類似。我偏愛 CheckStyle,但 PMD 也有很多執著的追隨者,所以我建議您了解一下這個工具,畢竟它也頗受一些人的青睞。

    使用 Eclipse 的 CheckStyle 插件的好處是能夠在編碼過程中了解到源代碼上下文的各種編碼沖突,讓開發人員更可能在簽入該代碼前真正處理好這些沖突。您也幾乎可以把 CheckStyle 插件視作一個連續的代碼復查工具!

    安裝 CheckStyle 插件并做如下配置(參見圖 4):

    1. 選擇 Project,然后選擇 Eclipse 菜單中的 Properties 菜單項。

    2. 選擇 CheckStyle active for this project 復選框,單擊 OK



      圖 4. 在 Eclipse 中配置 CheckStyle 插件
      在 Eclipse 中配置 CheckStyle 插件

    Eclipse 重新構建工作空間,并在 Eclipse 控制臺中列示已發現的編碼沖突,如圖 5 所示:


    圖 5. Eclipse 中 CheckStyle 的代碼沖突列表
    Eclipse 中 CheckStyle 的代碼沖突列表

    使用 CheckStyle 插件在 Eclipse 內嵌入編碼標準檢驗是一種很棒的方法,用這種方法可以在編碼時 積極地改進代碼,從而在開發周期的早期發現源代碼中潛在的缺陷。這么做還有更多的好處,如節省時間、減少失敗,也因此會減少項目的成本。沒錯,這就是一種積極主動的方式!


    用 Coverlipse 確認覆蓋率

    Coverlipse 是一個用于 Cobertura 的 Eclipse 插件,Cobertura 是一個代碼覆蓋率工具,可以用它來評估具有相應測試的源代碼的比率。Cobertura 也提供一個 Ant 任務和 Maven 插件,但用 Cobertura,您可以在編寫代碼時 評估代碼覆蓋率。您見過這樣的模式嗎?

    通過選擇 Eclipse 菜單項 Run 安裝 Coverlipse 插件并將其和 JUnit 關聯起來,該操作會顯示一系列運行配置選項,例如 JUnit、SWT 應用程序和 Java™ 應用程序。右鍵單擊它并選擇 JUnit w/Coverlipse 節點中的 New。在這里,需要確定 JUnit 測試的位置,如圖 6 所示:


    圖 6. 配置 Coverlipse 以獲取代碼覆蓋率
    配置 Coverlipse 以獲取代碼覆蓋率

    一旦單擊了 Run,Eclipse 會運行 Coverlipse 并在源代碼(如圖 7 所示)中嵌入標記,該標記顯示了具有相關 JUnit 測試的代碼部分:


    圖 7. Coverlipse 生成的具有嵌入類標記的報告
    Coverlipse 生成的具有嵌入類標記的報告

    正如您所見,使用 Coverlipse Eclipse 插件可以更快地確定代碼覆蓋率。例如,這種實時數據功能有助于在將代碼簽入 CM 系統 更好地進行測試。這對漸進編程來說意味著什么呢?


    用 CPD 捕捉代碼重復

    Eclipse 的 PMD 插件提供了一項叫做 CPD(或復制粘貼探測器)的功能,用于尋找重復的代碼。為在 Eclipse 中使用這項便利的工具,需要安裝具有 PMD 的 Eclipse 插件,該插件具有 CPD 功能。

    為尋找重復的代碼,請用右鍵單擊一個 Eclipse 項目并選擇 PMD | Find Suspect Cut and Paste,如圖 8 所示:


    圖 8. 使用 CPD 插件運行復制粘貼檢驗
    使用 PMD/CPD 插件運行復制粘貼檢驗

    一旦運行了 CPD,您的 Eclipse 根目錄下就會創建出一個 report 文件夾,其中包含一個叫做 cpd.txt 的文件,文件中列示了所有重復的代碼。圖 9 中是一個 cpd.txt 文件的例子:


    圖 9. Eclipse 插件生成的 CPD 文本文件
    Eclipse 插件生成的 CPD 文本文件

    靠人工來尋找重復的代碼是一項挑戰,但使用像 CPD 這樣的插件卻能在編碼時輕松地發現重復的代碼。


    使用 JDepend 進行依賴項檢查

    JDepend 是個可免費獲取的開源工具,它為包依賴項提供面向對象的度量值,以此指明代碼庫的彈性。換句話說,JDepend 可有效測量一個架構的健壯性(反之,脆弱性)。

    除了 Eclipse 插件,JDepend 還提供一個 Ant 任務、Maven 插件和一個 Java 應用程序,用以獲取這些度量值。對于相同的信息,它們有著不同的傳遞機制;但 Eclipse 插件的特別之處和相應優點是:它能以更接近源代碼(即,編碼時)的方式傳遞這條信息。

    圖 10 演示了使用 Eclipse JDepend 插件的方法:通過右鍵單擊源文件夾并選擇 Run JDepend Analysis。一定要選擇一個含源代碼的源文件夾;否則看不到此菜單項。


    圖 10. 使用 JDepend Analysis 分析代碼
    使用 JDepend Analysis 分析代碼

    圖 11 顯示了運行 JDepend Analysis 時生成的報告。左邊顯示包,右邊顯示針對每個包的依賴項度量值。


    圖 11. Eclipse 項目中的包依賴項
    Eclipse 項目中的包依賴項

    正如您所見,JDepend 插件提供了有助于不斷觀察架構可維護性變化的大量信息 —— 這其中最大的好處是您可以在編碼時看到這些數據。


    用 Metrics 測量復雜度

    “五大”代碼分析最后的一項是測量復雜度。Eclipse 提供一種叫做 Metrics 的插件,使用該插件可以進行許多有用的代碼度量,包括圈復雜度度量,它用于測量方法中惟一路徑的數目。

    安裝 Metrics 插件并重啟 Eclipse;然后遵循下列步驟:

    1. 右鍵單擊您的項目并選擇 Properties 菜單。在結果窗口中,選擇 Enable Metrics plugin 復選框并單擊 OK,如圖 12 所示:



      圖 12. 為項目配置 Metrics
      為項目配置 Metrics



    2. 從 Eclipse 中選擇 Window 菜單打開 Metrics 視圖,然后選擇 Show View | Other...

    3. 選擇 Metrics | Metrics View 打開如圖 13 中顯示的窗口。您需要使用 Java 透視圖并重新構建項目,從而顯示這些度量值。



      圖 13. 打開 Eclipse 中的 Metrics View
      打開 Eclipse 中的 Metrics View



    4. 單擊 OK 來顯示如圖 14 中的窗口。

      在此例中,我正在查看一個單獨方法的圈復雜度。真正妙的是您可以雙擊 Metrics 列表中的方法,該插件會在 Eclipse 編輯器中為此方法打開源代碼。這就讓修正變得超級簡單(如果需要的話)!



      圖 14. 查看方法的圈復雜度
      查看方法的圈復雜度

    正如我之前提到過的,Eclipse Metrics 插件還提供了許多功能強大的度量值,有助于您在開發軟件的過程中改進代碼 —— 可見,它是一個漸進編程意義上的插件!


    合適的才是最好的

    正如您從本文中看到的那樣,將“五大”測量方法,即編碼標準、代碼重復、代碼覆蓋率、依賴項分析和復雜度監控,用于改進代碼質量十分重要。但適合您的才是好的。請記住還有其他許多可用的 Eclipse 插件(比如 PMD 和 FindBugs)能夠幫助您在開發周期的早期改進代碼質量。不管您想要的工具或偏愛的方法是什么,重要的是:行動起來去積極改進代碼質量并讓手工代碼檢驗的過程變得更加有效。我估計您使用這些插件一段時間后,就再也離不開它們了。


    參考資料

    學習

    • 您可以參閱本文在 developerWorks 全球站點上的 英文原文

    • 讓開發自動化(Paul Duvall,developerWorks):閱讀完整的系列。

    • Improving Code Quality with PMD and Eclipse” (Levent Gurses,Jacoozi,2005 年 1 月):這篇文章將 PMD 視為 Eclipse 插件,介紹了使用 PMD 改進代碼質量并縮短代碼檢驗過程的方法。

    • 用 Cobertura 測量測試覆蓋率” (Elliotte Rusty Harold,developerWorks,2005 年 5 月):Elliotte Rusty Harold 分享了他的經驗,即如何使用代碼覆蓋率的最佳實踐來利用 Cobertura。

    • 不要被覆蓋報告所迷惑” (Andrew Glover,developerWorks,2006 年 1 月):這篇文章進一步揭示了覆蓋率報告中的數字所代表的真正含義,也給出了這些數字所不能代表的含義。

    • Managing Your Dependencies with JDepend” (Glen Wilcox,OnJava,2004 年 1 月):在這篇文章中,Glen Wilcox 介紹了 JDepend,這是一個可以免費獲取的工具,它能洞悉軟件架構中的許多質量問題。

    • 軟件架構的代碼質量” (Andrew Glover,developerWorks,2006 年 4 月):Andrew Glover 介紹了如何持續監控以及如何改正能夠影響軟件架構長期存續性的代碼質量問題。

    • 讓開發自動化: 持續檢查” (Paul Duvall,developerWorks,2006 年 8 月):Paul Duvall 介紹了自動化的檢查工具(如 CheckStyle、JavaNCSS 和 CPD )是如何增強開發過程的以及何時應該使用這些工具。

    • Detecting Duplicate Code with PMD's CPD” (Tom Copeland,OnJava,2003 年 3 月):Tom Copeland 介紹了一種叫做 CPD(復制/粘貼檢測器)的開源工具,該工具用于尋找重復的 Java 代碼。

    • Maintain organizational standards with code audits” (testearly.com):編碼標準有利于廣大開發人員對代碼庫達成共識。

    • developerWorks Java 技術專區:數百篇關于 Java 編程各方面的文章。

    獲得產品和技術

    討論

    • 提高代碼質量論壇:developerWorks 的積極貢獻者 Andrew Glover 是一名專注于改進代碼質量的顧問,他為這個由他主持的論壇帶來了很多相當專業的知識。

    關于作者

    Paul Duvall

    Paul Duvall 是 Stelligent Incorporated 的 CTO,該公司利用有效的開發人員測試策略,以及能夠讓團隊盡早盡多地監視和提高代碼質量的持續集成技術,幫助其他企業解決軟件的質量問題。他還是 UML™ 2 Toolkit 一書的作者之一,目前正在與他人合作撰寫 Continuous Integration: Improving Software Quality and Reducing Risk (Addison-Wesley) 一書。

    posted @ 2013-06-19 17:27 love1563 閱讀(2174) | 評論 (1)編輯 收藏

    http://www.open-open.com/bbs/view/1320934157953/


      1. ctrl+shift+r:打開資源

        這可能是所有快捷鍵組合中最省時間的了。這組快捷鍵可以讓你打開你的工作區中任何一個文件,而你只需要按下文件名或mask名中的前幾個字母,比如applic*.xml。美中不足的是這組快捷鍵并非在所有視圖下都能用。


    【轉】eclipse快捷鍵 10個最有用的快捷鍵

    2. ctrl+o:快速outline

        如果想要查看當前類的方法或某個特定方法,但又不想把代碼拉上拉下,也不想使用查找功能的話,就用ctrl+o吧。它可以列出當前類中的所有方法及屬性,你只需輸入你想要查詢的方法名,點擊enter就能夠直接跳轉至你想去的位置。


    【轉】eclipse快捷鍵 10個最有用的快捷鍵

    3. ctrl+e:快速轉換編輯器

        這組快捷鍵將幫助你在打開的編輯器之間瀏覽。使用ctrl+page down或ctrl+page up可以瀏覽前后的選項卡,但是在很多文件打開的狀態下,ctrl+e會更加有效率。


    eclipse快捷鍵 10個最有用的快捷鍵

    4. ctrl+2,L:為本地變量賦值

        開發過程中,我常常先編寫方法,如Calendar.getInstance(),然后通過ctrl+2快捷鍵將方法的計算結果賦值于一個本地變量之上。 這樣我節省了輸入類名,變量名以及導入聲明的時間。Ctrl+F的效果類似,不過效果是把方法的計算結果賦值于類中的域。

        5. alt+shift+r:重命名

        重命名屬性及方法在幾年前還是個很麻煩的事,需要大量使用搜索及替換,以至于代碼變得零零散散的。今天的Java IDE提供源碼處理功能,Eclipse也是一樣。現在,變量和方法的重命名變得十分簡單,你會習慣于在每次出現更好替代名稱的時候都做一次重命名。要使 用這個功能,將鼠標移動至屬性名或方法名上,按下alt+shift+r,輸入新名稱并點擊回車。就此完成。如果你重命名的是類中的一個屬性,你可以點擊alt+shift+r兩次,這會呼叫出源碼處理對話框,可以實現get及set方法的自動重命名。

        6. alt+shift+l以及alt+shift+m:提取本地變量及方法

        源碼處理還包括從大塊的代碼中提取變量和方法的功能。比如,要從一個string創建一個常量,那么就選定文本并按下alt+shift+l即可。如果同 一個string在同一類中的別處出現,它會被自動替換。方法提取也是個非常方便的功能。將大方法分解成較小的、充分定義的方法會極大的減少復雜度,并提 升代碼的可測試性。

        7. shift+enter及ctrl+shift+enter

        Shift+enter在當前行之下創建一個空白行,與光標是否在行末無關。Ctrl+shift+enter則在當前行之前插入空白行。

        8. Alt+方向鍵

        這也是個節省時間的法寶。這個組合將當前行的內容往上或下移動。在try/catch部分,這個快捷方式尤其好使。

        9. ctrl+m

        大顯示屏幕能夠提高工作效率是大家都知道的。Ctrl+m是編輯器窗口最大化的快捷鍵。

        10. ctrl+.及ctrl+1:下一個錯誤及快速修改

        ctrl+.將光標移動至當前文件中的下一個報錯處或警告處。這組快捷鍵我一般與ctrl+1一并使用,即修改建議的快捷鍵。新版Eclipse的修改建 議做的很不錯,可以幫你解決很多問題,如方法中的缺失參數,throw/catch exception,未執行的方法等等。


    eclipse快捷鍵 10個最有用的快捷鍵

    更多快捷鍵組合可在Eclipse按下ctrl+shift+L查看。

    posted @ 2013-06-11 15:28 love1563 閱讀(1435) | 評論 (0)編輯 收藏

    查閱了一下網絡和博客園,發現還沒有一個明確地指導源碼管理提交準則的相關文章,因此斗膽整理了一部分自己平時開發管理的心得,加上查閱了部分英文資料寫了一個不算很完善的SVN提交準則。

     

    負責而謹慎地提交自己的代碼

    SVN更新的原則是要隨時更新,隨時提交。當完成了一個小功能,能夠通過編譯并且并且自己測試之后,謹慎地提交。

    如果提交過程中產生了沖突,則需要同之前的開發人員聯系,兩個人一起協商解決沖突,解決沖突之后,需要兩人一起測試保證解決沖突之后,程序不會影響其他功能。

    如果提交過程中產生了更新,則也是需要重新編譯并且完成自己的一些必要測試,再進行提交。

     

    保持原子性的提交

    每次提交的間歇盡可能地短,以一個小時,兩個小時的開發工作為宜。如在更改UI界面的時候,可以每完成一個UI界面的修改或者設計,就提交一次。在開發功能模塊的時候,可以每完成一個小細節功能的測試,就提交一次,在修改bug的時候,每修改掉一個bug并且確認修改了這個bug,也就提交一次。我們提倡多提交,也就能多為代碼添加上保險。

     

    不要提交自動生成的文件

    Visual Studio在生成過程中會產生很多自動文件,如.suo等配置文件,Debug,Release,Obj等編譯文件,以及其他的一些自動生成,同編譯代碼無關的文件,這些文件在提交的時候不應該簽入,如果不小心簽入了,需要使用Delete命令從倉庫中刪除。

     

    不要提交不能通過編譯的代碼

    代碼在提交之前,首先要確認自己能夠在本地編譯。如果在代碼中使用了第三方類庫,要考慮到項目組成員中有些成員可能沒有安裝相應的第三方類庫或者沒有放入GAC(針對.Net Framework)中,項目經理在準備項目工作區域的時候,需要考慮到這樣的情況,確保開發小組成員在簽出代碼之后能夠在統一的環境中進行編譯。

     

    不要提交自己不明白的代碼

    代碼在提交入SVN之后,你的代碼將被項目成員所分享。如果提交了你不明白的代碼,你看不懂,別人也看不懂,如果在以后出現了問題將會成為項目質量的隱患。因此在引入任何第三方代碼之前,確保你對這個代碼有一個很清晰的了解。

     

    提前宣布自己的工作計劃

    在自己準備開始進行某項功能的修改之前,先給工作小組的成員談談自己的修改計劃,讓大家都能了解你的思想,了解你即將對軟件作出的修改,這樣能盡可能的減少在開發過程中可能出現的沖突,提高開發效率。同時你也能夠在和成員的交流中發現自己之前設計的不足,完善你的設計。

     

    對提交的信息采用明晰的標注

    +) 表示增加了功能

    *) 表示對某些功能進行了更改

    -) 表示刪除了文件,或者對某些功能進行了裁剪,刪除,屏蔽。

    b) 表示修正了具體的某個bug

    posted @ 2013-02-14 19:43 love1563 閱讀(5189) | 評論 (9)編輯 收藏

         摘要: J2EE層次設計架構實例的分析詳解
      閱讀全文

    posted @ 2012-10-09 08:52 love1563 閱讀(2707) | 評論 (1)編輯 收藏

         摘要: 大型網站的架構
      閱讀全文

    posted @ 2012-10-09 08:49 love1563 閱讀(2180) | 評論 (0)編輯 收藏

         摘要: 系統、軟件版本號大全  閱讀全文

    posted @ 2012-10-04 21:00 love1563 閱讀(236) | 評論 (0)編輯 收藏

         摘要: 基于XMPP協議的手機多方多端即時通訊方案
      閱讀全文

    posted @ 2012-10-04 18:26 love1563 閱讀(1576) | 評論 (0)編輯 收藏

         摘要:   閱讀全文

    posted @ 2011-05-29 23:50 love1563 閱讀(2545) | 評論 (0)編輯 收藏

         摘要:   閱讀全文

    posted @ 2011-05-29 23:47 love1563 閱讀(2652) | 評論 (0)編輯 收藏

         摘要:   閱讀全文

    posted @ 2011-02-25 10:54 love1563 閱讀(273) | 評論 (0)編輯 收藏

         摘要:   閱讀全文

    posted @ 2010-08-19 01:48 love1563 閱讀(168) | 評論 (0)編輯 收藏

    http://www.jollen.org/blog/android_os/

    posted @ 2010-07-16 09:28 love1563 閱讀(253) | 評論 (0)編輯 收藏

    http://www.chengyunfeng.com/page/1

    posted @ 2010-07-15 11:23 love1563 閱讀(182) | 評論 (0)編輯 收藏

    http://hi.baidu.com/lfcaolibin/blog/category/Android/index/2

    posted @ 2010-07-14 09:34 love1563 閱讀(159) | 評論 (0)編輯 收藏

         摘要:   閱讀全文

    posted @ 2009-09-24 14:29 love1563 閱讀(1289) | 評論 (0)編輯 收藏

         摘要:   閱讀全文

    posted @ 2009-09-24 14:25 love1563 閱讀(1855) | 評論 (0)編輯 收藏

         摘要:   閱讀全文

    posted @ 2009-09-24 14:23 love1563 閱讀(1396) | 評論 (0)編輯 收藏

         摘要:   閱讀全文

    posted @ 2009-09-10 20:56 love1563 閱讀(133) | 評論 (0)編輯 收藏

         摘要:   閱讀全文

    posted @ 2009-09-10 20:52 love1563 閱讀(487) | 評論 (0)編輯 收藏

         摘要:   閱讀全文

    posted @ 2009-09-10 20:34 love1563 閱讀(1004) | 評論 (0)編輯 收藏

         摘要:   閱讀全文

    posted @ 2009-09-09 16:33 love1563 閱讀(182) | 評論 (0)編輯 收藏

         摘要:   閱讀全文

    posted @ 2009-09-09 16:28 love1563 閱讀(364) | 評論 (0)編輯 收藏

         摘要:   閱讀全文

    posted @ 2009-05-07 15:18 love1563 閱讀(248) | 評論 (0)編輯 收藏

         摘要:   閱讀全文

    posted @ 2009-04-30 15:27 love1563 閱讀(473) | 評論 (0)編輯 收藏

         摘要:   閱讀全文

    posted @ 2009-04-30 11:53 love1563 閱讀(12383) | 評論 (11)編輯 收藏

         摘要:   閱讀全文

    posted @ 2009-04-30 11:39 love1563 閱讀(1316) | 評論 (0)編輯 收藏

         摘要:   閱讀全文

    posted @ 2009-04-29 15:23 love1563 閱讀(387) | 評論 (0)編輯 收藏

         摘要:   閱讀全文

    posted @ 2009-04-29 14:25 love1563 閱讀(210) | 評論 (0)編輯 收藏

         摘要:   閱讀全文

    posted @ 2009-04-29 14:22 love1563 閱讀(250) | 評論 (0)編輯 收藏

         摘要:   閱讀全文

    posted @ 2009-04-29 13:35 love1563 閱讀(849) | 評論 (0)編輯 收藏

         摘要:   閱讀全文

    posted @ 2009-04-20 13:33 love1563 閱讀(192) | 評論 (0)編輯 收藏

         摘要:   閱讀全文

    posted @ 2009-04-16 09:59 love1563 閱讀(179) | 評論 (0)編輯 收藏

         摘要:   閱讀全文

    posted @ 2009-04-15 10:39 love1563 閱讀(163) | 評論 (0)編輯 收藏

         摘要:   閱讀全文

    posted @ 2009-04-13 09:35 love1563 閱讀(187) | 評論 (0)編輯 收藏

         摘要:   閱讀全文

    posted @ 2009-04-08 21:53 love1563 閱讀(208) | 評論 (0)編輯 收藏

         摘要:   閱讀全文

    posted @ 2009-04-07 10:24 love1563 閱讀(196) | 評論 (0)編輯 收藏

         摘要:   閱讀全文

    posted @ 2009-03-30 14:59 love1563 閱讀(1968) | 評論 (0)編輯 收藏

         摘要:   閱讀全文

    posted @ 2009-03-30 14:05 love1563 閱讀(199) | 評論 (0)編輯 收藏

         摘要:   閱讀全文

    posted @ 2009-03-26 10:48 love1563 閱讀(231) | 評論 (0)編輯 收藏

         摘要:   閱讀全文

    posted @ 2009-03-24 09:11 love1563 閱讀(253) | 評論 (0)編輯 收藏

         摘要:   閱讀全文

    posted @ 2009-03-12 09:57 love1563 閱讀(199) | 評論 (0)編輯 收藏

    http://blog.csdn.net/xymyeah/archive/2009/02/26/3940807.aspx

    posted @ 2009-03-11 12:30 love1563 閱讀(190) | 評論 (0)編輯 收藏

         摘要:   閱讀全文

    posted @ 2009-03-10 17:30 love1563 閱讀(959) | 評論 (0)編輯 收藏

         摘要:   閱讀全文

    posted @ 2009-03-06 16:18 love1563 閱讀(143) | 評論 (0)編輯 收藏

         摘要:   閱讀全文

    posted @ 2009-03-05 15:18 love1563 閱讀(286) | 評論 (0)編輯 收藏

         摘要:   閱讀全文

    posted @ 2009-03-05 14:27 love1563 閱讀(255) | 評論 (0)編輯 收藏

         摘要:   閱讀全文

    posted @ 2009-03-05 14:18 love1563 閱讀(195) | 評論 (0)編輯 收藏

         摘要:   閱讀全文

    posted @ 2009-03-05 09:37 love1563 閱讀(353) | 評論 (0)編輯 收藏

         摘要:   閱讀全文

    posted @ 2009-03-05 09:02 love1563 閱讀(487) | 評論 (0)編輯 收藏

         摘要:   閱讀全文

    posted @ 2009-03-05 08:59 love1563 閱讀(312) | 評論 (0)編輯 收藏

         摘要:   閱讀全文

    posted @ 2009-03-04 14:18 love1563 閱讀(262) | 評論 (0)編輯 收藏

         摘要:   閱讀全文

    posted @ 2009-02-25 17:17 love1563 閱讀(310) | 評論 (0)編輯 收藏

         摘要:   閱讀全文

    posted @ 2009-02-25 14:29 love1563 閱讀(210) | 評論 (0)編輯 收藏

         摘要:   閱讀全文

    posted @ 2009-02-25 11:09 love1563 閱讀(1707) | 評論 (0)編輯 收藏

         摘要:   閱讀全文

    posted @ 2009-02-24 17:50 love1563 閱讀(296) | 評論 (0)編輯 收藏

         摘要:   閱讀全文

    posted @ 2009-02-24 16:33 love1563 閱讀(190) | 評論 (0)編輯 收藏

         摘要:   閱讀全文

    posted @ 2009-02-24 16:30 love1563 閱讀(182) | 評論 (0)編輯 收藏

         摘要:   閱讀全文

    posted @ 2009-02-24 15:50 love1563 閱讀(172) | 評論 (0)編輯 收藏

         摘要:   閱讀全文

    posted @ 2009-02-24 15:00 love1563 閱讀(191) | 評論 (0)編輯 收藏

         摘要:   閱讀全文

    posted @ 2009-02-23 16:41 love1563 閱讀(538) | 評論 (0)編輯 收藏

         摘要:   閱讀全文

    posted @ 2007-08-23 14:30 love1563 閱讀(158) | 評論 (0)編輯 收藏

         摘要:   閱讀全文

    posted @ 2007-08-14 17:14 love1563 閱讀(415) | 評論 (0)編輯 收藏

         摘要:   閱讀全文

    posted @ 2007-08-14 13:47 love1563 閱讀(242) | 評論 (0)編輯 收藏

         摘要:   閱讀全文

    posted @ 2007-08-14 13:29 love1563 閱讀(273) | 評論 (0)編輯 收藏

         摘要:   閱讀全文

    posted @ 2007-08-10 15:38 love1563 閱讀(246) | 評論 (0)編輯 收藏

         摘要:   閱讀全文

    posted @ 2007-08-10 14:05 love1563 閱讀(284) | 評論 (0)編輯 收藏

         摘要:   閱讀全文

    posted @ 2007-08-09 10:52 love1563 閱讀(372) | 評論 (0)編輯 收藏

    KzStepCounter.exe
    UltraSnap.exe

    posted @ 2007-08-09 09:36 love1563 閱讀(423) | 評論 (1)編輯 收藏

         摘要:   閱讀全文

    posted @ 2007-08-08 15:31 love1563 閱讀(405) | 評論 (0)編輯 收藏

         摘要:   閱讀全文

    posted @ 2007-08-08 14:21 love1563 閱讀(628) | 評論 (0)編輯 收藏

         摘要:   閱讀全文

    posted @ 2007-08-08 09:49 love1563 閱讀(504) | 評論 (1)編輯 收藏

         摘要:   閱讀全文

    posted @ 2007-08-07 13:08 love1563 閱讀(1129) | 評論 (0)編輯 收藏

         摘要:   閱讀全文

    posted @ 2007-08-07 10:44 love1563 閱讀(1844) | 評論 (0)編輯 收藏

         摘要:   閱讀全文

    posted @ 2007-08-06 16:46 love1563 閱讀(289) | 評論 (0)編輯 收藏

    http://www.jint.cn/

    posted @ 2007-08-06 10:31 love1563 閱讀(142) | 評論 (0)編輯 收藏

         摘要:   閱讀全文

    posted @ 2007-08-03 17:35 love1563 閱讀(207) | 評論 (0)編輯 收藏

         摘要:   閱讀全文

    posted @ 2007-08-03 17:14 love1563 閱讀(854) | 評論 (0)編輯 收藏

         摘要:   閱讀全文

    posted @ 2007-08-03 16:36 love1563 閱讀(266) | 評論 (0)編輯 收藏

         摘要:   閱讀全文

    posted @ 2007-08-03 16:01 love1563 閱讀(221) | 評論 (0)編輯 收藏

         摘要:   閱讀全文

    posted @ 2007-08-03 15:59 love1563 閱讀(1424) | 評論 (3)編輯 收藏

         摘要:   閱讀全文

    posted @ 2007-08-03 10:59 love1563 閱讀(330) | 評論 (0)編輯 收藏

         摘要:   閱讀全文

    posted @ 2007-08-03 10:17 love1563 閱讀(900) | 評論 (0)編輯 收藏

         摘要:   閱讀全文

    posted @ 2007-08-01 14:01 love1563 閱讀(201) | 評論 (0)編輯 收藏

         摘要:   閱讀全文

    posted @ 2007-08-01 14:01 love1563 閱讀(241) | 評論 (0)編輯 收藏

         摘要:   閱讀全文

    posted @ 2007-08-01 12:58 love1563 閱讀(441) | 評論 (0)編輯 收藏

         摘要: 149 、 JAVA 代碼查錯 1.abstract?class?Name?{???private?String?name;???public?abstract?boolean?isStupidName(String?name)?{}} 大俠們,這有何錯誤 ? 答案 :? ...  閱讀全文

    posted @ 2007-05-21 11:55 love1563 閱讀(121) | 評論 (0)編輯 收藏

         摘要: 138 、 Java 的通信編程,編程題 ( 或問答 ) ,用 JAVA SOCKET ...  閱讀全文

    posted @ 2007-05-21 11:54 love1563 閱讀(175) | 評論 (0)編輯 收藏

         摘要:   閱讀全文

    posted @ 2007-05-21 11:52 love1563 閱讀(492) | 評論 (0)編輯 收藏

    148 將一個鍵盤輸入的數字轉化成中文輸出
    (例如:輸入:1234567?????輸出:一百二拾三萬四千五百六拾七)
    java語言實現,,請編一段程序實現!
    ?public?class?Reader?{
    ??private?String?strNum;
    ??private?String?strNumChFormat;
    ??private?String?strNumTemp;
    ??private?int?intNumLen;
    ??private?String?strBegin;
    ??public?Reader(String?strNum)?{
    ????this.strNum?=?strNum;
    ??}
    ??public?boolean?check(String?strNum)?{
    ????boolean?valid?=?false;
    ????
    ????if?(strNum.substring(0,1).equals("0")){
    ?????this.strNum?=?strNum.substring(1);
    ????}
    ????try?{
    ??????new?Double(strNum);
    ??????valid?=?true;
    ????}
    ????catch?(NumberFormatException?ex)?{
    ??????System.out.println("Bad?number?format!");
    ????}
    ????return?valid;
    ??}
    ??public?void?init()?{
    ????strNumChFormat?=?"";
    ????intNumLen?=?strNum.length();
    ????strNumTemp?=?strNum;
    ????strNumTemp?=?strNumTemp.replace('1',?'');
    ????strNumTemp?=?strNumTemp.replace('2',?'');
    ????strNumTemp?=?strNumTemp.replace('3',?'');
    ????strNumTemp?=?strNumTemp.replace('4',?'');
    ????strNumTemp?=?strNumTemp.replace('5',?'');
    ????strNumTemp?=?strNumTemp.replace('6',?'');
    ????strNumTemp?=?strNumTemp.replace('7',?'');
    ????strNumTemp?=?strNumTemp.replace('8',?'');
    ????strNumTemp?=?strNumTemp.replace('9',?'');
    ????strNumTemp?=?strNumTemp.replace('0',?'');
    ????strNumTemp?=?strNumTemp.replace('.',?'');
    ????strBegin?=?strNumTemp.substring(0,?1);
    ??}
    ??public?String?readNum()?{
    ????if?(check(strNum))?{
    ??????init();
    ??????try?{
    ????????for?(int?i?=?1,?j?=?1,?k?=?1;?i?<?intNumLen;?i++)?{
    ??????????if?(strNumTemp.charAt(intNumLen?-?1)?==?''?&&?i?==?1)?{
    ????????????strNumChFormat?=?"";
    ??????????}
    ??????????else?if?(strNumTemp.charAt(intNumLen?-?i)?==?''?&&?j?==?1)?{
    ????????????strNumChFormat?=?""?+?strNumChFormat;
    ??????????}
    ??????????else?if?(strNumTemp.charAt(intNumLen?-?i)?==?'')?{
    ????????????j?=?1;
    ????????????k?=?1;
    ????????????strNumChFormat?=?strNumTemp.charAt(intNumLen?-?i)?+?strNumChFormat;
    ????????????continue;
    ??????????}
    ??????????else?{
    ????????????strNumChFormat?=?strNumTemp.charAt(intNumLen?-?i)?+?strNumChFormat;
    ??????????}
    ??????????if?(strNumTemp.charAt(intNumLen?-?i?-?1)?!=?''?&&
    ??????????????strNumTemp.charAt(intNumLen?-?i?-?1)?!=?'')?{
    ????????????if?(j?==?1?&&?i?<?intNumLen)?{
    ??????????????strNumChFormat?=?''?+?strNumChFormat;
    ????????????}
    ????????????else?if?(j?==?2?&&?i?<?intNumLen)?{
    ??????????????strNumChFormat?=?''?+?strNumChFormat;
    ????????????}
    ????????????else?if?(j?==?3?&&?i?<?intNumLen)?{
    ??????????????strNumChFormat?=?''?+?strNumChFormat;
    ????????????}
    ??????????}
    ??????????if?(j?==?4?&&?i?<?intNumLen)?{
    ????????????j?=?0;
    ??????????}
    ??????????if?(k?==?4?&&?i?<?intNumLen)?{
    ????????????strNumChFormat?=?''?+?strNumChFormat;
    ??????????}
    ??????????else?if?(k?==?8?&&?i?<?intNumLen)?{
    ????????????k?=?0;
    ????????????strNumChFormat?=?''?+?strNumChFormat;
    ??????????}
    ??????????j++;
    ??????????k++;
    ????????}
    ????????while?(strNumChFormat.indexOf("")?!=?-1)?{
    ??????????strNumChFormat?=?strNumChFormat.replaceAll("",?"?");
    ????????}
    ????????if?(strNumChFormat.substring(0,?2)?==?"一拾")?{
    ??????????strNumChFormat?=?strNumChFormat.substring(1,?strNumChFormat.length());
    ????????}
    ????????if?(strNumChFormat.indexOf("")?>=?0)?{
    ??????????String?rebegin?=?strNumChFormat.substring(0,
    ??????????????strNumChFormat.indexOf(""));
    ??????????String?relast?=?strNumChFormat.substring(strNumChFormat.indexOf(""),
    ??????????????strNumChFormat.length());
    ??????????for?(int?i?=?1;?i?<=?relast.length();?i++)?{
    ????????????relast?=?relast.replaceAll("",?"");
    ????????????relast?=?relast.replaceAll("",?"");
    ????????????relast?=?relast.replaceAll("",?"");
    ????????????relast?=?relast.replaceAll("",?"");
    ????????????relast?=?relast.replaceAll("",?"");
    ??????????}
    ??????????strNumChFormat?=?rebegin?+?relast;
    ????????}
    ??????}
    ??????catch?(ArrayIndexOutOfBoundsException?ex)?{
    ????????ex.printStackTrace();
    ??????}
    ??????catch?(Exception?ex)?{
    ????????ex.printStackTrace();
    ??????}
    ??????int?off?=?strNumChFormat.indexOf("");
    ??????strNumChFormat?=?strBegin?+?strNumChFormat.substring(0);
    ????}
    ????else?{
    ??????strNumChFormat?=?"";
    ????}
    ????return?strNumChFormat;
    ??}
    ??public?static?void?main(String?args[])?{
    ????try?{
    ??????String?number?=?args[0].toString();
    ??????System.out.println("The?number?is:?"?+?number);
    ??????Reader?reader?=?new?Reader(number);
    ??????System.out.println("Output?String:?"?+?reader.readNum());
    ????}
    ????catch?(Exception?ex)?{
    ??????System.out.println("Please?input?like?that:?javac?Reader?<number>");
    ????}
    ??}
    }

    posted @ 2007-05-21 11:36 love1563 閱讀(800) | 評論 (0)編輯 收藏

    ?

    提綱:
    1、版權聲明
    2、前言
    3、正文
    4、結論
    5、附注
    6、參考資料

    =======================================================

    1、版權聲明:
    ??本文作者:little,原始出處:用"堆棧區數據復制"理解Java賦值和參數傳遞機制的心得?([link]http://java.learndiary.com/disDiaryContentAction.do?goalID=2716[/link]),郵件:mdx-xx@tom.com。如有任何反饋意見請聯系作者,作者會在本文原始出處隨時更新此文。轉載及引用請保留此版權聲明,謝謝。

    2、前言:
    ??關于Java的賦值和參數傳遞是按值(by?value)進行的還是按引用(by?reference)進行的,這個問題曾經迷惑了很多人,包括我。而且,我想,這個問題還將繼續迷惑一些人,包括那些C++的高手。
    ??在這里,我不準備用“按值(by?value)”和“按引用(by?value)”這樣的術語來闡述這個問題。因為,從字面的理解來看,這樣的術語在不同的人頭腦里有不同的含義。我試圖從Java數據(包括原始類型(primitive?type)和對象(ojbect))在內存中的存儲這個角度,用一個自創的“術語”來闡述我對這個問題的理解。這個術語就是:“堆棧區數據復制(Stack?Data?Copy,簡稱SDC)”。詳細一點就是:在Java中,不管是賦值操作還是參數傳遞操作--針對原始類型(primitive?type),是對堆棧區的原始類型的值進行復制;針對對象,是對儲存在堆棧區的,對象的引用中所儲存的對象的值的地址進行復制。
    ??像上面摳字眼的句子讀起來比較費力,我在后面將用兩個例子并結合一些示意圖來闡述我對這個問題的理解。希望各位朋友幫助糾正錯誤。

    3、正文:
    1)、賦值操作:
    例子源碼:(Assign.java)

    1. public ?class?Assign{
    2. ??public?static?void?main(String[]?args){
    3. ????int?i?=?1;
    4. ????Object?o?=?new?Object();
    5. ????System.out.println("i?=?"?+?i?+?"?;?o?=?"?+?o?);?//?Step?1?(示意圖:3-1-1)
    6. ????int?j?=?i;???
    7. ????Object?p?=?o;
    8. ????System.out.println("i?=?"?+?i?+?"?;?j?=?"?+?j?+?"?;?o?=?"?+?o?+?"?;?p?=?"?+?p);?//Step?2?(示意圖:3-1-2)
    9. ????j++;
    10. ????p?=?new?Object();
    11. ????System.out.println("i?=?"?+?i?+?"?;?j?=?"?+?j?+?"?;?o?=?"?+?o?+?"?;?p?=?"?+?p);?//Step?3?(示意圖:3-1-3)
    12. ??}
    13. }


    對上面例子的說明:
    (1),Step?1中,整數i和對象o得到賦值。

    示意圖3-1-1

    ?
    chart3-1-1.bmp
    從示意圖3-1-1中可以看出:整數i存儲在堆棧區(Stack);對象o的引用存儲在了堆棧區,但是對象o的值卻存儲在了內存堆中(Heap),對象o的引用存儲了對象o的地址。
    Step?1在我的機器上的一次輸出結果:
    1. i?=?1?;?o?=?java.lang.Object@a90653

    至于對象o的值輸出來怎么會是那個樣子,我只能告訴您:在java程序的一次運行過程中,每個Object對象輸出這樣的值是唯一的,因此可以借此來判斷對象的引用指向的對象是否發生了改變。詳情請參考Java?API?文檔(下同,這里給出的是:J2SE?1.5.0?API?中文版):
    [link]http://gceclub.sun.com.cn/Java_Docs/html/zh_CN/api/java/io/PrintStream.html#println(java.lang.Object)[/link]
    [link]http://gceclub.sun.com.cn/Java_Docs/html/zh_CN/api/java/lang/Object.html#toString()[/link]
    (2),Step?2中,把整數i賦值給了整數j,把對象o賦值給了對象p。

    示意圖3-1-2

    chart3-1-2.bmp

    從示意圖3-1-2中可以看出:整數i的值復制給了整數j,整數j同樣存儲在堆棧區;存儲在堆棧區的對象o的引用中存儲的對象o的地址C復制給了對象p的引用,對象p的引用同樣在堆棧區中。因為對象p的引用得到了對象o的引用復制過來的對象o的值的存儲地址C,所以對象p的引用和對象o的引用都指向了在堆(heap)中的同一個對象,并且,這個對象的地址是地址C。
    Step?2在我的機器上的一次輸出結果:
    1. i?=?1?;?j?=?1?;?o?=?java.lang.Object@a90653?;?p?=?java.lang.Object@a90653

    (3),Step?3中,整數j的值加1,賦給了對象p新的對象值。

    示意圖3-1-3

    chart3-1-3.bmp

    從示意圖3-1-3中可以看出:整數i的值不變,整數j的值加1變為2,整數在堆棧區中;新生成的對象的值存儲在了堆(Heap)中,地址為F。新生成對象的地址F存儲在了堆棧區p的引用中,替換了原來存儲在其中的地址C。于是,p的引用就指向了新生成的對象,這個新生成的對象的地址是地址F。而整數i和對象o的?(包括對象o的引用)沒有改變也不曾有任何改變(除了初次賦值)。
    Step?3在我的機器上的一次輸出結果:
    1. i?=?1?;?j?=?2?;?o?=?java.lang.Object@a90653?;?p?=?java.lang.Object@de6ced


    至此,通過上面的例子及其示意圖和說明,我得到一個結論:
    在Java賦值操作中,針對原始類型(primitive?type),是對堆棧區的原始類型的值進行復制;針對對象,是對儲存在堆棧區的,對象的引用中所儲存的對象的值的地址進行復制。這就是術語:“堆棧區數據復制(Stack?Data?Copy,簡稱SDC)”在Java賦值操作中的闡述。

    2)、方法中的參數傳遞操作:
    例子源碼:(PassParameter.java)
    1. public?class?PassParameter{
    2. ??static?void?showMe(int?pi,?Object?po){
    3. ????System.out.println("pi?=?"?+?pi?+?"?;?po?=?"?+?po);?//?Step?2?(示意圖:3-2-2)
    4. ????pi++;
    5. ????po?=?new?Object();
    6. ????System.out.println("pi?=?"?+?pi?+?"?;?po?=?"?+?po);?//?Step?3?(示意圖:3-2-3)
    7. ??}
    8. ??public?static?void?main(String[]?args){
    9. ????int?i?=?1;
    10. ????Object?o?=?new?Object();
    11. ????System.out.println("i?=?"?+?i?+?"?;?o?=?"?+?o);?//?Step?1?(示意圖:3-1-1)
    12. ????showMe(i,?o);
    13. ????System.out.println("i?=?"?+?i?+?"?;?o?=?"?+?o);?//?Step?4?(示意圖:3-2-3)
    14. ??}
    15. }


    對上面例子的說明:
    (1),Step?1中,與上面Assign.java中的Step?1相同,略,下面重復其示意圖3-1-1。

    示意圖3-1-1

    chart3-1-1.bmp
    ?

    Step?1在我的機器上的一次輸出結果:
    1. i?=?1?;?o?=?java.lang.Object@a90653

    (2),Step?2中,與上面Assign.java中的Step?2類似,只是Assign.java中的整數j和對象p變成了這里的方法showMe()中的參數:整數pi和對象po。并且,由于這里是參數傳遞,把Assign.java示意圖3-1-2中的“=”替換成PassParameter.java示意圖3-2-2中的“<--”,以此表示是參數傳遞。據我的理解,它們是一回事。

    示意圖3-2-2

    chart3-2-2.bmp

    Step?2在我的機器上的一次輸出結果:
    1. pi?=?1?;?po?=?java.lang.Object@a90653

    (3),Step?3和Step?4合并起來,見示意圖3-2-3同樣,與上面Assign.java中的Step?3類似。

    示意圖3-2-3

    ?chart3-2-3.bmp

    Step?3和Step?4在我的機器上的一次輸出結果:
    1. pi?=?2?;?po?=?java.lang.Object@de6ced
    2. i?=?1?;?o?=?java.lang.Object@a90653


    至此,通過上面的例子及其示意圖和說明,我得到一個結論:
    在Java方法參數傳遞操作中,針對原始類型(primitive?type),是對堆棧區的原始類型的值進行復制;針對對象,是對儲存在堆棧區的,對象的引用中所儲存的對象的地址的值進行復制。這就是術語:“堆棧區數據復制(Stack?Data?Copy,簡稱SDC)”在Java方法參數傳遞操作中的闡述。

    4,結論
    綜上所述:在Java中,不管是賦值操作還是方法的參數傳遞操作--針對原始類型(primitive?type),是對堆棧區的原始類型的值進行復制;針對對象,是對儲存在堆棧區的,對象的引用中所儲存的對象的值的地址進行復制。
    所以,據我的理解,術語:“堆棧區數據復制(Stack?Data?Copy,簡稱SDC)”能夠有助于理解在Java中進行賦值和傳遞參數的機制,能夠有助于在一定程度上消除“傳值”、“傳引用”等語義上的多變性的負面影響,可以提出來供大家交流。

    5,附注:
    由于本人水平有限,上面的一切全是基于實踐進行的帶有一些推測成分在內的個人心得總結。我也以上面的自創術語去成功解釋過一些文章中的有關問題(如下面參考資料中的例程)。謹希望在能為部分Java初學者提供一個理解Java賦值和參數傳遞的手段的同時,更能得到各位朋友的斧正,以便能夠對這個問題形成更加正確和準確的認識。在我提高認識的同時,我會在本文原始出處:用"堆棧區數據復制"理解Java賦值和參數傳遞機制的心得?([link]http://java.learndiary.com/disDiaryContentAction.do?goalID=2716[/link])中隨時更新此文。再次貼出我的郵件:mdx-xx@tom.com。謝謝。

    6,參考資料:

    1),Java參數傳遞方式?([link]http://www.jiehoo.com/java-pass-parameter.htm[/link])
    2),破除java神話之二:參數是傳址的?([link]http://www.javaresearch.org/article/showarticle.jsp?column=544&thread=443[/link])
    3),Java?應用程序中的按值傳遞語義?([link]http://www.javaresearch.org/article/showarticle.jsp?column=1&thread=706[/link])
    4),我對《Java?應用程序中的按值傳遞語義》的理解?([link]http://www.javaresearch.org/article/showarticle.jsp?column=1&thread=3156[/link])
    5),Thinking?in?Java,?3rd?Edition?in?Java?([download]http://www.mindviewinc.com/downloads/TIJ-3rd-edition4.0.zip[/download])

    ??????????????????????????????????????????????????????????????全文完
    ??????????????????????????????????????????????????????????????2006年11月22日午????

    posted @ 2007-05-19 17:30 love1563 閱讀(369) | 評論 (0)編輯 收藏

    在項目開發中經常會用到生成指定格式的excel報表的問題.
    示例代碼如下:
    Code:
    //首先創建一個文件輸出流
     FileOutputStream fop = new FileOutputStream("D:\\test.xls");
             
             HSSFWorkbook hsfwb = new HSSFWorkbook();
             HSSFSheet hs = hsfwb.createSheet();
             HSSFCellStyle cs = hsfwb.createCellStyle();
             //設置背景的style
             cs.setFillPattern(HSSFCellStyle.ALIGN_LEFT);
             cs.setFillForegroundColor(HSSFColor.BRIGHT_GREEN.index);
     
             //創建一個名字為test的sheet
             hsfwb.setSheetName(0,"test");
             hsfwb.setSheetName(1,"sorunxian");
             HSSFRow row = hs.createRow(0);
             
             //設置cell的背景顏色
             HSSFCellStyle hfcs = hsfwb.createCellStyle();
             hfcs.setFillForegroundColor(HSSFColor.BLUE.index);
             
             HSSFCell cell = row.createCell((short) 0);
             
             //給excel的單元格設值
             cell.setCellValue("My name is du juan~~~");
             //給excel的單元格設置樣式(這個程序里面的背景色)
             cell.setCellStyle(cs);
             row.createCell((short) 1).setCellValue("sorunxian");
                   
             //將數據寫入文件中
             hsfwb.write(fop);
             //關閉流,釋放相關資源
             fop.close();


    相關類介紹:
    HSSF提供給用戶使用的對象在org.apache.poi.hssf.usermodel包中,主要部分包括Excell對象,樣式和格式,還有輔助操作。有以下幾種對象:
    HSSFWorkbook excell的文檔對象
    HSSFSheet excell的表單
    HSSFRow excell的行
    HSSFCell excell的格子單元
    HSSFFont excell字體
    HSSFName 名稱
    HSSFDataFormat 日期格式
    在poi1.7中才有以下2項:
    HSSFHeader sheet頭
    HSSFFooter sheet尾
    和這個樣式
    HSSFCellStyle cell樣式
    輔助操作包括
    HSSFDateUtil 日期
    HSSFPrintSetup 打印
    HSSFErrorConstants 錯誤信息表
    poi HSSF的實現也遵循MVC模型.

    posted @ 2007-05-12 17:01 love1563 閱讀(604) | 評論 (0)編輯 收藏

    データベース設計

    紹介:
    詳細設計のもう 一つ重要な作業はデータベース設計である。
    データベース設計の目的は永続的なオブジェクトをどういうふうに
    データベースに格納したり、アクセスしたりするかを決定することである。
    そのため、データベースのスキーマ、あるいはテーブルおよび項目や
    タイプの定義、テーブル間の関係、テーブルの正規化、および検証ルール
    などを検討しなければならない。

    単語:
    データベース設計 database design 數據庫設計
    永続的 えいぞくてき 持久性的
    格納する かくのうする 存放
    スキーマ schema 定義,格式,格局
    タイプ type 類型
    正規化 せいきか 規范化,范式
    検証ルール けんしょうルール 驗證規則
    後回し あとまわし 滯后,回頭再作
    不可欠な ふかけつな 不可缺少的
    性格 せいかく 性質,性格
    帳票 ちょうひょう 表單
    入力 にゅうりょく 輸入
    照會 しょうかい 查詢
    先行する せんこうする 先執行
    ビジネス.ロジック business logic 業務邏輯
    クラス設計 類的設計
    改訂する かいていする 修改,修訂
    候補 こうほ 候補,候選
    構成屬性 こうせいぞくせい 合成的屬性
    屬性 ぞくせい  構成 こうせい
    矛盾 むじゅん 矛盾,與...不符合
    ゴール goal 目標,目的
    外部キー foreign key 外鍵
    主キー  primary key 主鍵
    方法論 ほうほうろん 方法論
    定める さだめる 確定
    ORM 對象關系映射
    生産性 せいさんせい 生產率
    別々 べつべつ 各自,分別
    わざわざ 特地,刻意
    汎化関係 はんかかんけい 一般化關系
    用意する よういする 準備,預備
    役立つ やくだつ 起作用,有效
    作業もの さぎょうもの 工作的成果

    posted @ 2007-05-12 16:57 love1563 閱讀(320) | 評論 (0)編輯 收藏

    一般情況下,對日軟件開發的流程如下:
    SA 系統分析
    RD 要件定義
    UR User要件
    SR 系統要件定義
    BD 基本設計
    FD 功能設計
    PD 程序設計
    UT 單體測試
    CT 結合測試
    ST 系統測試
    OT 機能測試
    DV 產品出荷

    OK,以上です。

    posted @ 2007-05-12 16:46 love1563 閱讀(1171) | 評論 (0)編輯 收藏

    一、Servlet過濾器的概念:
    ***************************************************************************************
    Servlet過濾器是在Java?Servlet規范2.3中定義的,它能夠對Servlet容器的請求和響應對象進行檢查和修改。   

    Servlet過濾器本身并不產生請求和響應對象,它只能提供過濾作用。Servlet過期能夠在Servlet被調用之前檢查Request對象,修改Request?Header和Request內容;在Servlet被調用之后檢查Response對象,修改Response?Header和Response內容。

    Servlet過期負責過濾的Web組件可以是Servlet、JSP或者HTML文件。 
    ***************************************************************************************


    二、Servlet過濾器的特點:
    ***************************************************************************************
    A.Servlet過濾器可以檢查和修改ServletRequest和ServletResponse對象
    B.Servlet過濾器可以被指定和特定的URL關聯,只有當客戶請求訪問該URL時,才會觸發過濾器
    C.Servlet過濾器可以被串聯在一起,形成管道效應,協同修改請求和響應對象
    ***************************************************************************************


    三、Servlet過濾器的作用:
    ***************************************************************************************
    A.查詢請求并作出相應的行動。
    B.阻塞請求-響應對,使其不能進一步傳遞。
    C.修改請求的頭部和數據。用戶可以提供自定義的請求。
    D.修改響應的頭部和數據。用戶可以通過提供定制的響應版本實現。
    E.與外部資源進行交互。
    ***************************************************************************************


    四、Servlet過濾器的適用場合:
    ***************************************************************************************
    A.認證過濾
    B.登錄和審核過濾
    C.圖像轉換過濾?
    D.數據壓縮過濾?
    E.加密過濾?
    F.令牌過濾?
    G.資源訪問觸發事件過濾?
    H.XSL/T過濾?
    I.Mime-type過濾
    ***************************************************************************************


    五、Servlet過濾器接口的構成:
    ***************************************************************************************
    所有的Servlet過濾器類都必須實現javax.servlet.Filter接口。這個接口含有3個過濾器類必須實現的方法:

    A.init(FilterConfig):
    這是Servlet過濾器的初始化方法,Servlet容器創建Servlet過濾器實例后將調用這個方法。在這個方法中可以讀取web.xml文件中Servlet過濾器的初始化參數

    B.doFilter(ServletRequest,ServletResponse,FilterChain):
    這個方法完成實際的過濾操作,當客戶請求訪問于過濾器關聯的URL時,Servlet容器將先調用過濾器的doFilter方法。FilterChain參數用于訪問后續過濾器

    B.destroy():
    Servlet容器在銷毀過濾器實例前調用該方法,這個方法中可以釋放Servlet過濾器占用的資源
    ***************************************************************************************


    六、Servlet過濾器的創建步驟:
    ***************************************************************************************
    A.實現javax.servlet.Filter接口
    B.實現init方法,讀取過濾器的初始化函數
    C.實現doFilter方法,完成對請求或過濾的響應
    D.調用FilterChain接口對象的doFilter方法,向后續的過濾器傳遞請求或響應
    E.銷毀過濾器
    ***************************************************************************************


    七、Servlet過濾器對請求的過濾:
    ***************************************************************************************
    A.Servlet容器創建一個過濾器實例
    B.過濾器實例調用init方法,讀取過濾器的初始化參數
    C.過濾器實例調用doFilter方法,根據初始化參數的值判斷該請求是否合法
    D.如果該請求不合法則阻塞該請求
    E.如果該請求合法則調用chain.doFilter方法將該請求向后續傳遞
    ***************************************************************************************


    八、Servlet過濾器對響應的過濾:
    ***************************************************************************************
    A.過濾器截獲客戶端的請求
    B.重新封裝ServletResponse,在封裝后的ServletResponse中提供用戶自定義的輸出流
    C.將請求向后續傳遞
    D.Web組件產生響應
    E.從封裝后的ServletResponse中獲取用戶自定義的輸出流
    F.將響應內容通過用戶自定義的輸出流寫入到緩沖流中
    G.在緩沖流中修改響應的內容后清空緩沖流,輸出響應內容
    ***************************************************************************************

    九、Servlet過濾器的發布:
    ***************************************************************************************
    A.發布Servlet過濾器時,必須在web.xml文件中加入<filter>元素和<filter-mapping>元素。

    B.<filter>元素用來定義一個過濾器:
    屬性???????????????????含義
    filter-name????指定過濾器的名字
    filter-class????指定過濾器的類名
    init-param????為過濾器實例提供初始化參數,可以有多個

    C.<filter-mapping>元素用于將過濾器和URL關聯:
    屬性?????????????????????含義
    filter-name????指定過濾器的名字
    url-pattern????指定和過濾器關聯的URL,為”/*”表示所有URL
    ***************************************************************************************


    十一、Servlet過濾器使用的注意事項
    ***************************************************************************************
    A.由于Filter、FilterConfig、FilterChain都是位于javax.servlet包下,并非HTTP包所特有的,所以其中所用到的請求、響應對象ServletRequest、ServletResponse在使用前都必須先轉換成HttpServletRequest、HttpServletResponse再進行下一步操作。

    B.在web.xml中配置Servlet和Servlet過濾器,應該先聲明過濾器元素,再聲明Servlet元素


    C.如果要在Servlet中觀察過濾器生成的日志,應該確保在server.xml的localhost對應的<host>元素中配置如下<logger>元素:
    <Logger?className?=?“org.apache.catalina.logger.FileLogger”
    directory?=?“logs”prefix?=?“localhost_log.”suffix=”.txt”
    timestamp?=?“true”/>
    ***************************************************************************************

    posted @ 2007-04-23 12:03 love1563 閱讀(203) | 評論 (0)編輯 收藏

    如: 案件情報.選定理由+\r\n+案件情報.選定理由2

    posted @ 2007-04-16 11:28 love1563 閱讀(2631) | 評論 (0)編輯 收藏

    我們假設JDK裝在:
    C:\j2sdk1.4.2_07

    *?WIN?98或以下?直接在DOS環境下輸入命令:
    set?path=C:\j2sdk1.4.2_07\bin?(javac.exe\java.exe等工具放在bin文件夾下,設置使系統能找到這些工具)
    set?classpath=C:\j2sdk1.4.2_07\lib

    其實,這樣設置它的有效期僅在DOS窗口不關的前提下,每一次打開新的DOS窗口都要這樣手工的設置。我們可以把這兩句話寫入系統根目錄下的一個批處理文件autoexec.bat里,系統每次啟動的都會讀取這個文件,這樣就不用很煩的每次都要去設置了。

    *?WIN?2000\WIN?XP下:
    設置或修改系統環境變量,具體步驟如下:
    右擊我的電腦圖標->屬性->選擇標簽‘高級’->找到‘環境變量’并單擊進入環境變量設置窗口->在系統變量模塊里新建幾個變量:
    1.?JAVA_HOME?值:C:\j2sdk1.4.2_07?
    2.?CLASSPATH?值:.;%JAVA_HOME%\lib??
    3.?Path:%JAVA_HOME%\bin;?(也許系統變量里面已經有了Path變量,那么就修改它好了,在原來的值的前面加上%JAVA_HOME%\bin;)

    posted @ 2007-04-14 09:11 love1563 閱讀(640) | 評論 (0)編輯 收藏

    http://dev.cbw.com/otherdb/InterBase/

    posted @ 2007-04-13 23:31 love1563 閱讀(383) | 評論 (0)編輯 收藏

    username:sysdba
    password:masterkey

    posted @ 2007-04-13 23:14 love1563 閱讀(1889) | 評論 (0)編輯 收藏

    JSEclipse 插件主頁:http://www.interaktonline.com/Products/Eclipse/JSEclipse/Overview/ 插件介紹:JSEclipse是個Eclipse下的免費Javascript腳本編輯器 subversion 版本控制,相當于CVS 安裝:http://subclipse.tigris.org/install.html Name: Subclipse URL: http://subclipse.tigris.org/update_1.0.x CSS Editor for Eclipse http://csseditor.sourceforge.net/ FacesIDE FacesIDE是一個用于開發JSF的Eclispe插件.它可以可視化編輯faces-config.xml文件并且提供代碼編輯與校驗,預覽JSF的JSP文件.FacesIDE包含MyFaces來作為JSF的實現 http://amateras.sourceforge.jp/cgi-bin/fswiki_en/wiki.cgi?page=FacesIDE Eclipse SQLExplorer plugin 一個數據庫管理插件 http://sourceforge.net/projects/eclipsesql Poperties Editor 一個在編輯完成后可以將資源文件中的中文編碼格式轉換為unicode編碼的插件,在開發國際化應用程序的時候非常有用 http://propedit.sourceforge.jp/eclipse/updates/ eclipseME http://eclipseme.org/updates/ Eclipse加速插件KeepResident http://suif.stanford.edu/pub/keepresident/ MyEclipse J2EE開發插件,支持SERVLET/JSP/EJB/數據庫操縱等 www.myeclipseide.com Properties Editor 編輯java的屬性文件,并可以自動存盤為Unicode格式 http://propedit.sourceforge.jp/index_en.html http://propedit.sourceforge.jp/eclipse/updates/ Colorer Take 為上百種類型的文件按語法著色 http://colorer.sourceforge.net/ XMLBuddy 編輯xml文件 www.xmlbuddy.com Code Folding 加入多種代碼折疊功能(比eclipse自帶的更多) http://www.coffee-bytes.com/servlet/PlatformSupport Easy Explorer 從eclipse中訪問選定文件、目錄所在的文件夾 http://easystruts.sourceforge.net/ Fat Jar 打包插件,可以方便的完成各種打包任務,可以包含外部的包等 http://fjep.sourceforge.net/ RegEx Test 測試正則表達式 http://brosinski.com/stephan/archives/000028.php JasperAssistant 報表插件(強,要錢的) http://www.jasperassistant.com/ Jigloo GUI Builder JAVA的GUI編輯插件 http://cloudgarden.com/jigloo/ Profiler 性能跟蹤、測量工具,能跟蹤、測量BS程序 http://sourceforge.net/projects/eclipsecolorer/ AdvanQas 提供對if/else等條件語句的提示和快捷幫助(自動更改結構等) http://eclipsecolorer.sourceforge.net/advanqas/index.html Log4E Log4j插件,提供各種和Log4j相關的任務,如為方法、類添加一個logger等 http://log4e.jayefem.de/index.php/Main_Page VSSPlugin VSS插件 http://sourceforge.net/projects/vssplugin Implementors 提供跳轉到一個方法的實現類,而不是接中的功能(實用!) http://eclipse-tools.sourceforge.net/implementors/ Call Hierarchy 顯示一個方法的調用層次(被哪些方法調,調了哪些方法) http://eclipse-tools.sourceforge.net/call-hierarchy/index.html EclipseTidy 檢查和格式化HTML/XML文件 http://eclipsetidy.sourceforge.net/ Checkclipse 檢查代碼的風格、寫法是否符合規范 http://www.mvmsoft.de/content/plugins/checkclipse/checkclipse.htm Hibernate Synchronizer Hibernate插件,自動映射等 http://www.binamics.com/hibernatesync/ spring updatesite 插件 http://springide.org/updatesite/ VeloEclipse Velocity插件 http://propsorter.sourceforge.net/ EditorList 方便的列出所有打開的Editor http://editorlist.sourceforge.net/ MemoryManager 內存占用率的監視 http://cloudgarden.com/memorymanager/ Eclipse的游戲插件 http://eclipse-games.sourceforge.net/ JBoss-IDE http://jboss.sourceforge.net/jbosside/updates/ 自動反編譯class,安裝后要設定class文件缺省關聯到jode http://www.technoetic.com/eclipse/update jigloo swing/sw設計工具,里面自帶的form/anchor布局很好用! http://cloudgarden.soft-gems.net/update-site/ jinto的資源文件編輯工具,同時編輯多種語言,而且自動轉換成iso8859-1編碼。很好用! http://www.guh-software.de/eclipse/

    posted @ 2007-03-12 11:04 love1563| 編輯 收藏

    http://blog.csdn.net/baggio785/archive/2006/03/10/620535.aspx(轉載請注明出處)

    posted @ 2007-02-28 11:50 love1563 閱讀(272) | 評論 (0)編輯 收藏

         摘要:   閱讀全文

    posted @ 2007-02-06 19:47 love1563 閱讀(597) | 評論 (0)編輯 收藏

    主站蜘蛛池模板: 国产亚洲精品2021自在线| 久久亚洲精品成人777大小说| 免费无遮挡无码永久视频| 一区二区在线免费视频| 美国毛片亚洲社区在线观看| 亚洲人成网男女大片在线播放| 久久亚洲AV无码精品色午夜麻| 亚洲第一永久在线观看| 亚洲AV福利天堂一区二区三| 亚洲欧洲国产精品久久| 亚洲成a人片在线观看中文!!!| 亚洲一日韩欧美中文字幕在线| 亚洲精品人成网在线播放影院| 亚洲宅男精品一区在线观看| 99亚洲精品卡2卡三卡4卡2卡| www在线观看免费视频| 免费无码一区二区三区 | 精品在线视频免费| 成在人线av无码免费高潮喷水| 中文在线观看免费网站| 两个人日本WWW免费版| 国产成人yy免费视频| 国产一卡二卡四卡免费| 国产国产成年年人免费看片| 亚洲 小说区 图片区 都市| 亚洲欧洲精品成人久久曰影片 | 精品亚洲综合在线第一区| 国产V亚洲V天堂无码久久久| 亚洲一级毛片免费在线观看| 色在线亚洲视频www| 欧洲乱码伦视频免费国产| 美女被免费网站91色| 久爱免费观看在线网站 | www一区二区www免费| 中文字幕视频在线免费观看| 玖玖在线免费视频| 最近的中文字幕大全免费8| 成人免费午夜无码视频| 国产免费av片在线无码免费看| 亚洲综合色视频在线观看| 亚洲精品免费观看|