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

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

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

    JAVA—咖啡館

    ——歡迎訪問rogerfan的博客,常來《JAVA——咖啡館》坐坐,喝杯濃香的咖啡,彼此探討一下JAVA技術,交流工作經驗,分享JAVA帶來的快樂!本網站部分轉載文章,如果有版權問題請與我聯系。

    BlogJava 首頁 新隨筆 聯系 聚合 管理
      447 Posts :: 145 Stories :: 368 Comments :: 0 Trackbacks

    05 2008 檔案

         摘要: 如果一個圖中所有點都是聯通的,求最小樹可以將圖遍歷完成,這里的最小是指邊最少,跟邊長沒有關系。

    算法利用深度優先遍歷,記載每個遍歷過的節點,將節點按照遍歷順序記錄下來就是所謂的最小樹。

    關于深度優先遍歷請參見深度優先遍歷。

    不過這里奇怪的是:

    假如所有節點之間是雙向聯通的,只用生成一個數組,裝入所有的節點,例如{'a','b','c','d','d'}

    然后每兩個點之間的線段就是最小樹的結果,即a --> b, b --> c, c --> d, d --> e

    似乎不用圖這樣復雜的結構支撐。

    不過這里還是給出了按照圖來產生最小樹的辦法。

    Graph.mst:返回最小樹。

    Graph.main:提供簡單測試。
      閱讀全文
    posted @ 2008-05-28 15:58 rogerfan 閱讀(726) | 評論 (0)  編輯

         摘要: 當每個任務有前后置關系時,需要找到一種滿足前后置關系的路線,將任務完成。

    如果將每個任務看成一個節點,任務之間的前后置關系表示為有向圖時,這種路線順序叫做為圖進行拓撲排序。也叫關鍵路徑分析。

    這里的圖用鄰接矩陣法表示,算法的關鍵是:

    1 找到一個沒有后繼的頂點

    2 在圖中刪除它,放入結果數組中

    3 重復 步驟 1 ,步驟 2 直到圖中沒有多余的節點。

    如果圖中出現環裝結構,則算法無法進行,因為此時任務之間循環成為前置。
      閱讀全文
    posted @ 2008-05-28 15:57 rogerfan 閱讀(1131) | 評論 (0)  編輯

         摘要: 圖的傳遞閉包是指修正后的鄰接矩陣表示的圖。(見Graph 圖-鄰接矩陣法 )

    在多個頂點的有向圖中,每個頂點可以到按照方向到達一定的節點,這叫圖的連通性。有種方法直接告訴我們,圖中的兩個節點是否可以聯通,這里說的是WarShall算法。

    WarShall的基本原理是,如果A可以到達B,且C可以到達A,則C可以到達B。通過對鄰接矩陣的修正可以做到這點。隨然這里舉例是將兩步可并成一步,但數學上可以證明這種修正可以達到任意步驟。
      閱讀全文
    posted @ 2008-05-28 15:54 rogerfan 閱讀(937) | 評論 (0)  編輯

         摘要: 與傳遞閉包問題 非常相似的一個問題是,能不能給出一個矩陣,根據矩陣可以以時間代價O(n)的方式得到在一個有向代權圖中任意指定端點之間的最短距離。求的這個矩陣的問題被稱為每一對端點間的最小距離問題。

    這里采用的是Floyd算法,它與WalShall 算法非常相似:

    如果A可以到達B,距離為x,且C可以到達A,距離為y,則求得C可以到達B,距離為 z = x + y,z小于如果c到B的原來的距離,則用z更新矩陣,否則c到B距離維持不變。

    和最小路徑算法類似,這里用一個很大數字INFINITY來表示兩個端點之間距離為無窮大的情況,即不通。這里INFINITY=最大的int值(~(1<<31))。

    Floyd.main()提供簡單的測試。

    與WalShall 一樣,Floyd算法本身的時間代價為O(n^3)
      閱讀全文
    posted @ 2008-05-28 15:53 rogerfan 閱讀(401) | 評論 (0)  編輯

         摘要: 圖中代權的最小樹的問題如下:


    如果N個城市之間(圖中的頂點)要修公路(圖中的邊)以使所有的城市聯通,求怎樣修可以使得公路的總長最小?
    以上問題中的N個城市之間可以用圖中的頂點表示,公路可以圖中的邊表示,公路的長度用邊長表示,公路是雙向的。問題就轉換為在有N個頂點中的雙向代權圖中求得一個最小樹。這里的代權指的邊的長度,這與以前的不代權的最小樹生成算法有很大的區別。


    算法描述如下:
      閱讀全文
    posted @ 2008-05-28 15:45 rogerfan 閱讀(414) | 評論 (0)  編輯

         摘要: 這里使用的是Dijkstra來計算最短路徑。事實上Dijkstra完成時,指定節點到所有節點的最小路徑均已求出。

    算法簡述如下:

    準備好兩個輔助性數據結構:

    1 ParentLength : 用來記錄到當前節點之前的父節點,與到當前節點的最小路徑

    2 Path: 記錄指定節點到所有節點的ParentLength。初始化時,所有的ParentLength的父節點都為指定的起始節點,長度都是INFINITY,代表沒有聯通,距離無窮大。
      閱讀全文
    posted @ 2008-05-28 15:39 rogerfan 閱讀(882) | 評論 (0)  編輯

         摘要: 1 直觀印象
    在JDK1.5之前的版本中,對于一個Collection類庫中的容器類實例,可將任意類型

    對象加入其中(都被當作Object實例看待);從容器中取出的對象也只是一個Object實例,需要將其強制轉型為期待的類型,這種強制轉型的運行時正確性由程序員自行保證。

    例如以下代碼片斷:
      閱讀全文
    posted @ 2008-05-27 11:47 rogerfan 閱讀(345) | 評論 (0)  編輯

         摘要: Java技術自問世時光已經過去了9個年頭。作為一名一直關注其成長的記者,曾經一段時間有過這樣的想法:“Java技術已經成熟,是不是發展速度該放慢一些了呢”。然而,這種想法錯了。近來Java技術的進化相當顯著。Java技術正在迎來“又一次革命”的風暴。這就是本文的結論。
      
      “又一次”指的是什么?“革命”指的又是什么?光看結論的話肯定是一頭霧水。其實,筆者要講的并不是變化這樣一個事實,而是“促進變化的原動力”。是什么讓Java技術發生變化?讓我們從這一角度出發,先看一下Java的變化歷程。  閱讀全文
    posted @ 2008-05-27 11:32 rogerfan 閱讀(217) | 評論 (1)  編輯

         摘要: 查詢語言的改進是JDO2.0規范中的重要環節,本文從較高的層面闡述JDO2.0所提供的一些新功能。由于JDO2.0規范還未進入公開草案狀態,目前還沒有任何內容敲定下來,一切都還可能面臨變化。不過,JDO2.0將會很快進入最后階段,而這里提到的查詢特性是JDO2.0專家組(譯者注:David Jordan就是專家組重要成員)花費時間最多,并且相對來說最為穩定。因此,我有足夠理由相信,最終規范與這里的描述將會基本一致。

      如果各位讀者覺得本文遺漏了某些重要的特性,建議立即到JDO論壇(http://www.jdocentral.com/forums/index.php?showforum=10)去提出并討論。這里我們需要感謝JDO2.0規范領導人Craig Russell授權給我公開這些JDO2.0查詢語言的新特性。
      閱讀全文
    posted @ 2008-05-27 10:23 rogerfan 閱讀(365) | 評論 (1)  編輯

         摘要:   作者注:JDO和CMP方式的EJB目前正在同時向前發展,但采取的是不同的路線。JDO的核心思想是在企業應用軟件架構的不同層面中存儲傳統的Java對象(Plain Old Java Objects,下稱POJOs),而CMP方案則基于容器環境,并針對特殊的需求。

      兩者之間的異同在規范出臺之初便成為眾所爭論的話題。你可以到JDOCentral.com上看到這類的爭論,而在6月中旬即將在舊金山開幕的2003年JavaOne大會上,也會有一些演示和講解來比較這兩種不同的技術。

      在這次JavaOne大會上,3368號技術對話將討論JDO與Struts(一個著名的Web應用架構設計的開源軟件)集成的可行性和實踐經驗;3236號專題研究JDO與EJB容器的結合;1289號專題將對比使用JDO、JDBC和EJB時,設計模式在開發中的應用。

      在我們的《Java Data Objects》的第17章有一小段話描述使用JDO和CMP的平衡點。--Craig Russell   閱讀全文
    posted @ 2008-05-27 10:22 rogerfan 閱讀(318) | 評論 (0)  編輯

         摘要: JDO的優點:
      
      ● JDO的生命周期狀態機(lifecycle state machine)是正確的用法。任何其它的O/R映射工具都應該使用JDO的生命周期或者它的子集(例如:如果不支持事務)。記住,JDO生命周期是為JDO實現服務的。大部分用戶不需要了解其中很復雜的內幕。網頁Amber生命周期中有些圖示。
      
      ● PersistentManager API對如何管理JDO對象的狀態有一定的優勢和價值。
      閱讀全文
    posted @ 2008-05-27 10:20 rogerfan 閱讀(349) | 評論 (0)  編輯

         摘要: 網上關于JDO的文章已經不少了,關于JDO的優點也講了很多,我看了一些文章后,自己也研究了一段時間,忽然很想寫一個系列文章全面的介紹一下JDO,今天先寫下第一篇算是個開頭。呵呵,有些內容是我對JDO規范的理解,如果有不對的地方請大家指正。
      
      Java開發人員已經有好幾種存取數據庫的方法:序列化,JDBC,面向對象映射工具,對象數據庫,以及實體EJB。那為什么還要介紹其他的存儲架構呢?答案是,上面每一種實現存儲的方案都存在一定的限制。JDO正在嘗試解決這些限制。  閱讀全文
    posted @ 2008-05-27 10:19 rogerfan 閱讀(345) | 評論 (0)  編輯

         摘要: JDO是Java對象持久化的新的規范。JDO經SunJava Community Process認定。
      
      
      一、歷史
      JDO是對象持久化工作的綜合成果,試圖提供一個對象持久化的完全版本。JDO同時繼承于ODMG(對象數據管理小組,標準化對象數據庫的一個獨立委員會)和對象關系映射工具提供商。
      JSR #000012 approved in July 1999
      1999-8組建的專家小組:包括Sun、Apple、BEA、IBM、Oracle、SAP、WebGain等
      2000-5 完成公開評論草案
      2000-6 在JavaOne上引入
      2001-3 最終草案0.93
      2001-5 最終草案0.96公布
      2001-6 在JavaOne上啟動
      2001-11 最終草案0.98  閱讀全文
    posted @ 2008-05-27 10:18 rogerfan 閱讀(333) | 評論 (0)  編輯

         摘要: 在反射的幫助下,我們可以有效的簡化這個繁瑣的過程,看代碼之前我們先補充一點有關類字段的反射API:
    ●Field[] getDeclaredFields():返回已加載類聲明的所有成員變量的Field對象數組,不包括從父類繼承的成員變量.
    ●Field getDeclaredField(String name):返回已加載類聲明的所有成員變量的Field對象,不包括從父類繼承的成員變量,參數name指定成員變量的名稱.
    ●Field[] getFields():返回已加載類聲明的所有public型的成員變量的Field對象數組,包括從父類繼承的成員變量
    ●Field getField(String name):返回已加載類聲明的所有成員變量的Field對象,包括從父類繼承的成員變量,參數name指定成員變量的名稱.  閱讀全文
    posted @ 2008-05-23 12:52 rogerfan 閱讀(462) | 評論 (3)  編輯

         摘要: 文章摘要

    Torque項目是Apache的公開源代碼項目,主要用于生成訪問數據庫的資源和java代碼、提供使用這些代碼訪問數據庫的運行時(runtime)環境。通過使用Torque,你可以使用面向對象方式訪問數據庫,不再需要編寫任何SQL語句。本文中給大家詳細的介紹了如何使用Torque框架訪問數據庫的整個過程,希望能夠指導大家熟練使用Torque。
      閱讀全文
    posted @ 2008-05-22 11:52 rogerfan 閱讀(519) | 評論 (0)  編輯

         摘要: Apache Torque 是一個使用關系數據庫作為存儲手段的Java應用程序持久化工具。Torque是一個開源項目,由Web應用程序框架
      Jakarta Apache Turbine 發展而來,但現在已完全獨立于Turbine。通過JDBC,Torque支持大多數流行的開源商業數據庫,包括Oracle、Microsoft SQL Server、IBM DB/2、MySQL以及PostgreSQL。  閱讀全文
    posted @ 2008-05-22 11:51 rogerfan 閱讀(374) | 評論 (0)  編輯

         摘要: Apache Torque是一個使用關系數據庫作為存儲手段的Java應用程序持久化工具,是 Apache 的公開源代碼項目,Torque是一個開源項目,由Web應用程序框架Jakarta Apache Turbine發展而來,但現在已完全獨立于Turbine。 Torque 主要包含兩部分:一部分是 Generator,它可以使用xml文件,產生應用程序需要的所有數據庫資源,包括 sql 和 java 文件;另外一部分是 Runtime,提供使用這些代碼訪問數據庫的運行時環境。  閱讀全文
    posted @ 2008-05-22 11:33 rogerfan 閱讀(1269) | 評論 (0)  編輯

         摘要: Peers
    Everything in Peers resolve around Peer classes. A Peer class has a one-to-one mapping to a Database table. You use each table's associated Peer class to do operations on that table. Peer classes are generated for you automatically.

    Peer classes have static methods only, so you would never create objects of Peer classes. It is not necessary to have objects on this level because of the one-to-one mapping with a table. Peer methods are thread safe.

    Peer classes are ge  閱讀全文
    posted @ 2008-05-22 11:31 rogerfan 閱讀(353) | 評論 (0)  編輯

         摘要: 一般在利用O/R Mapping框架進行開發的時候,有三個基本的單元即關系數據庫中的表(Table),Java中的持久對象(PO),定義PO到Table映射的xml文件(Schema)。
    首先,Torque包含一個generator用來根據由開發者配置好的Schema來自動生成PO和Table,這就意味著開發者只要定義好Schema,PO和Table就可以自動生成了。
    在生成好的PO和Table以后,開發者就可以利用PO來進行對Table的訪問了。為了達到這個目的Torque提供了一個運行時環境來保證代碼的正確運行。在工程中引入了torque相關的.jar就可以擁有這個運行環境了。  閱讀全文
    posted @ 2008-05-22 11:29 rogerfan 閱讀(1046) | 評論 (0)  編輯

         摘要: 目前對于J2EE應用中的Persistence Layer的解決方案很多,其中,最近從Apache Turbine中剝離處理的Torque是一個優秀的ORM(Object Relational Mapping,對象角色建模) 解決方案。

      主流的Persistence Layer解決方案

      隨著基于J2EE應用的日益增加,出現了很多Persistence Layer的解決方案。目前主要的解決方案有以下幾種:

      ◆ 自己編寫基于JDBC API的解決方案;

      ◆ 采用ObjectRational Mapping(ORM)工具或者是采用面向對象的數據庫(ODBMS);

      ◆ J2EE/Entity Bean CMP (container-managed persistence);

      ◆ JDO。  閱讀全文
    posted @ 2008-05-22 11:20 rogerfan 閱讀(494) | 評論 (1)  編輯

         摘要: Groovy是一種語言,其語法類似于Java,但比Java更簡單。它通常被視為腳本/靈活/動態的語言,但是我不喜歡這類形容詞,因為我認為它們只會令人困惑。如果說Java是一位明智的中年男子,那么Groovy就是他十幾歲的兒子。Groovy具有父親的許多特點,但是更為狂野且更為有趣。他們也可以很好地合作。  閱讀全文
    posted @ 2008-05-22 11:09 rogerfan 閱讀(661) | 評論 (0)  編輯

         摘要: 1. 為了方面按列作外循環,想把ArrayList構造成一個二維數組,如下:

    ......

    ArrayList result=GetResult();

    int n=result.size();

    String[][] myArray=new String[n][]; //定義二維數組

    for (int i=0;i {
    ArrayList tempArray= (ArrayList)result.get(i);
    myArray[i]=(String[])tempArray.toArray();
    }

    ......
      閱讀全文
    posted @ 2008-05-14 13:40 rogerfan 閱讀(2000) | 評論 (0)  編輯

    主站蜘蛛池模板: 亚洲AV无码乱码在线观看富二代| 日韩欧美亚洲中文乱码| 国产V片在线播放免费无码| 国产传媒在线观看视频免费观看| 久久亚洲国产精品123区| 久久久久亚洲AV无码麻豆| 苍井空亚洲精品AA片在线播放| 在线观看免费视频网站色| 色久悠悠婷婷综合在线亚洲| 精品无码一级毛片免费视频观看 | 亚洲免费黄色网址| 亚洲视频在线免费观看| 亚洲美女一区二区三区| 在线观看日本免费a∨视频| 国产亚洲精品线观看动态图| 99久久婷婷免费国产综合精品| 免费无码黄动漫在线观看| 免费大片黄在线观看| 亚洲精品视频免费观看| 在线成人精品国产区免费| 99久久亚洲精品无码毛片| 波多野结衣免费在线观看| 亚洲第一成年网站视频| 亚洲精品线路一在线观看| 亚洲制服丝袜一区二区三区| 久久精品私人影院免费看| 亚洲精品国产福利片| 中文字幕免费观看视频| 国产精品深夜福利免费观看| 久久www免费人成精品香蕉| 久久99亚洲网美利坚合众国| 国内一级一级毛片a免费| 亚洲国产高清视频在线观看| 国产精品免费综合一区视频| 最近的2019免费中文字幕| 亚洲不卡中文字幕| 亚洲毛片av日韩av无码| ww4545四虎永久免费地址| 亚洲精品乱码久久久久久下载| a级男女仿爱免费视频| 亚洲国产成人九九综合|