Time of Update: 2017-02-27
第十三章 網路編程網路編程對於很多的初學者來說,都是很嚮往的一種編程技能,但是很多的初學者卻因為很長一段時間無法進入網路編程的大門而放棄了對於該部分技術的學習。在學習網路編程以前,很多初學者可能覺得網路編程是比較複雜的系統工程,需要瞭解很多和網路相關的基礎知識,其實這些都不是很必需的。首先來問一個問題:你會打手機嗎?很多人可能說肯定會啊,不就是按按電話號碼,撥打到電話嘛,很簡單的事情啊!其實初學者如果入門網路編程的話也可以做到這麼簡單!網路編程就是在兩個或兩個以上的裝置(例如電腦)之間傳輸資料。
Time of Update: 2017-02-27
談談final, finally, finalize的區別final—修飾符(關鍵字)如果一個類被聲明為final,意味著它不能再派生出新的子類,不能作為父類被繼承。因此一個類不能既被聲明為 abstract的,又被聲明為final的。將變數或方法聲明為final,可以保證它們在使用中不被改變。被聲明為final的變數必須在聲明時給定初值,而在以後的引用中只能讀取,不可修改。被聲明為final的方法也同樣只能使用,不能重載finally—再異常處理時提供 finally
Time of Update: 2017-02-27
Java Applet常用來顯示儲存在GIF檔案中的映像。Java Applet裝載GIF映像非常簡單,在Applet內使用影像檔時需定義Image對象。多數Java
Time of Update: 2017-02-27
序言許多使用者可能會遇到這樣的情況:在網站上發現一個很好的資源,但是這個資源是分成了很多個檔案存放的,如果想把它儲存到本地,只有靠使用者點擊另存來完成儲存,如果資源分了幾百甚至上千上萬,那簡直是個災難。在Internet上很多的資源分成多個檔案存放時,它的檔案命名是有一定的規則的;正因如此,我們就可以用程式來完成這個資源的完全下載。1. 基礎知識在Internet上,我們要下載網站上的某個資源,我們會獲得一個URL(Uniform Resource
Time of Update: 2017-02-27
在本系列的上一部分中,我示範了如何取出 XML 文檔並將它轉換成 Java 表示。這種變換的關鍵是 XML 文檔符合的 XML 模式。模式不僅確保了強制限制式。它還允許使用 SchemaMapper 來產生 Java 類;那麼 XML 文檔就可以解包成那些類其中一個的執行個體。換句話說,這個系統不僅需要 XML 文檔;文檔將變成其執行個體的 Java 類不僅必須已經存在,而且它還必須在系統的類路徑中。打包類打包 Java 執行個體時,情況稍有不同。首先,Unmarshaller
Time of Update: 2017-02-27
本資料繫結系列的第三部分示範了如何使用“JSR-031:資料繫結,Sun 資料繫結規範申請”中指定的方法,將 XML 元素和屬性轉換成 Java 對象。這部分主要講述從資料的 XML 表示移到應用程式代碼便於使用的 Java 執行個體。第三部分論及通過將 XML 文檔中的嵌套元素取消編組成 Java 對象、測試和用某些實際樣本來使用新的工具。本系列的目標是示範如何將 XML 元素轉換成 Java 對象,然後可以使用 Java 語言 accessor 和 mutator
Time of Update: 2017-02-27
資料繫結系列的第二篇是如何從 XML 資料限制中產生一個 Java 語言。 本文通過完整的代碼展現了如何產生類和代碼,並提供了如何定製您自己版本的建議。 還沒有看過第一篇嗎?第一篇, "對象,無處不在的對象", 解釋了資料繫結是如何將 XML 和 Java 語言對象互為轉換。它比較了資料繫結和其它在 Java 程式中處理 XML 的方法, 並介紹了一個 XML 配置文檔樣本。第一部分也介紹了使用 XML Schema 來約束資料。在深入 Java 程式和 XML
Time of Update: 2017-02-27
在這個由四部分組成的系列文章的第一部分,我們將弄清什麼是資料繫結,與在 Java 應用程式中處理 XML 資料的其它方法相比它有什麼優勢,以及如何開始使用它。這一部分將考查為什麼使用資料繫結,以及如何為各種約束建立模型,使 XML 文檔能轉換成 Java 對象。同時還涵蓋用於產生資料繫結類的輸入和輸出。您希望在您的 Java 應用程式中使用 XML 嗎?那麼好,同成千上萬的其他人一起上這條船吧。當您深入瞭解 XML 以後,也許您會發現 DOM 和 SAX API(請參閱
Time of Update: 2017-02-27
前一篇文章,《模組化Java: 動態模組化》描述了如何通過使用服務 (service)給應用程式帶來動態模組化特性。它們是通過輸出的一個(或多個 )可以在運行時被動態發現的介面而實現的。儘管這種方式使得client和server 完全解耦,但是又帶來一個如何(何時)啟動服務的問題。啟動順序在徹頭徹尾的動態系統裡,服務不僅可以在系統啟動並執行時候裝卸,還可以以 不同的順序啟動。有時,這是個大問題:無論A和B的啟動順序如何,在系統達到
Time of Update: 2017-02-27
在前一篇文章《模組化Java:靜態模組化》中,我們討論了如何構建Java模 塊並將其作為一個單獨的JAR進行部署。文中的例子給出了一個client和一個 server bundle(兩者在同一個VM中),client通過Factory 方法找到server。在該 例子中,工廠執行個體化了一個已知類,當然也可以使用反射來擷取一個服務實現; Spring就是大量運用這種技術把spring對象綁定在一起的。在我們討論動態服務之前,有必要回顧一下類路徑,因為標準Java代碼和模
Time of Update: 2017-02-27
早期 Java 版本使用 16 位 char 資料類型表示 Unicode 字元。這種設計方 法有時比較合理,因為所有 Unicode 字元擁有的值都小於 65,535 (0xFFFF), 可以通過 16 位表示。但是,Unicode 後來將最大值增加到 1,114,111 (0x10FFFF)。由於 16 位太小,不能表示 Unicode version 3.1 中的所有 Unicode 字元,32 位值 — 稱為碼位(code point) — 被用於 UTF-32
Time of Update: 2017-02-27
數年前,當和一個軟體團隊一起用 Java 語言編寫一個應用程式時,我體會 到比一般程式員多知道一點關於 Java 對象序列化的知識所帶來的好處。大約一年前,一個負責管理應用程式所有使用者佈建的開發人員,決定將使用者 設定儲存在一個 Hashtable 中,然後將這個 Hashtable 序列化到磁碟,以便持 久化。當使用者更改設定時,便重新將 Hashtable 寫到磁碟。這是一個優雅的、開放式的設定系統,但是,當團隊決定從 Hashtable 遷移 到 Java Collections
Time of Update: 2017-02-27
在 上一部分 中,您瞭解到如何編寫一個 spider 程式來進行網頁的爬取, 作為 spider 的爬取結果,我們獲得了一個按照一定格式儲存的原始網頁庫,原 始網頁庫也是我們第二部分網頁前置處理過的資料基礎。網頁預先處理的主要目標是將 原始網頁通過一步步的資料處理變成可方便搜尋的資料形式。下面就讓我們逐步 介紹網頁預先處理的設計和實現。預先處理模組的整體結構預先處理模組的整體結構如下:圖 1. 預先處理模組的整體結構通過 spider 的收集,儲存下來的網頁資訊具有較好的資訊儲存格式,但是
Time of Update: 2017-02-27
自己動手寫一個搜尋引擎,想想這有多 cool:在介面上輸入關鍵詞,點擊搜 索,得到自己想要的結果;那麼它還可以做什麼呢?也許是自己的網站需要一個 站內搜尋功能,抑或是對於硬碟中文檔的搜尋 —— 最重要的是,是不是覺得眾 多 IT 公司都在向你招手呢?如果你心動了,那麼,Let's Go!這裡首先要說明使用 Java 語言而不是 C/C++ 等其它語言的原因,因為 Java 中提供了對於網路編程眾多的基礎包和類,比如 URL 類、InetAddress 類
Time of Update: 2017-02-27
你沒看錯,就是這個題目:即使是Java系統也會變成“遺留”系統。每當我們想起遺留系統時,我們就會想起那些儲存著大量檔案資料並只能用COBOL訪問的嘎吱嘎吱作響的大型主機。但事實是,Java已經是一門具有15年歷史的開發語言,用Java寫就的成千上萬的系統已經成功運行了十年甚至更久。因此,考慮到許多讀者都會工作在某個遺留的Java系統上,我根據自己的經驗特地攢了這八個技巧,來協助團隊更新和啟用他們的遺留Java應用。技巧1:流量分析器分析器提供了任何其他工具無法提供的功能,
Time of Update: 2017-02-27
引言在一些對安全審計有較高要求的系統中,管理員需要查看每個應用程式的登入使用者執行了哪些資料庫操作,而通常我們應用程式在訪問資料庫時,都是公用同一個資料庫的認證使用者去擷取資料庫連接的,這樣我們的登入使用者的標識無法傳遞到資料庫端。而很多客戶是需要在資料庫端能審計登入使用者的操作。當然,在應用伺服器端的程式裡寫日誌,記錄下每個登入使用者執行了哪些操作也能達到審計的需求,但這種方式往往會有效能的開銷。經過實踐,本文介紹的解決途徑是將使用者標識通過資料庫連接傳遞到資料庫端,從而完成在資料庫端的審計,
Time of Update: 2017-02-27
一、認識UUIDUUID維基百科,自由的百科全書通用唯一識別碼 (Universally Unique Identifier, UUID) 是一個軟體建構的標準,亦為自由軟體基金會 (Open Software Foundation, OSF) 的組織在分散式運算環境 (Distributed Computing Environment, DCE) 領域的一部份。UUID
Time of Update: 2017-02-27
EMF 是 Eclipse 平台的主要部分,並且是一些相關技術和架構的基礎,比如 Eclipse Visual Editor、SDO、XSD 和 UML — 其中的許多技術都被整合到 Rational® Application Developer 和 WebSphere® Business Modeler 等 IBM® 平台中。現在,EMF 已經吸收了許多 Java 技術特性,比如枚舉類型、注釋和泛型。在大多數文檔和教程中,EMF 都被用於建模資料
Time of Update: 2017-02-27
1. 導言程式的效能分析是應用程式開發過程中的一個重要方面。這個工作一般是由一些專業人員來完成的,他們的目標是在一個特定的平台上,提高代碼的效能。當程式是運行在多核平台的多線程或者並行程式的時候,提高效能這個問題就變得更加困難了。因為在這樣的情況下,不僅需要考慮代碼的效能,還需要考慮代碼的延展性。隨著Java
Time of Update: 2017-02-27
現在,許多Java開發人員都喜歡在Java平台中使用指令碼語言,但是使用編譯到 Java 位元組碼中的動態語言有時是不可行的。在某些情況中,直接編寫一個 Java 應用程式的指令碼 部分 或者在一個指令碼中調用特定的 Java 對象是更快捷、更高效的方法。這就是 javax.script 產生的原因了。Java Scripting API 是從 Java 6 開始引入的,它填補了便捷的小指令碼語言和健壯的 Java 生態系統之間的鴻溝。通過使用 Java Scripting