Time of Update: 2017-02-27
計算任意一個圖的產生樹的個數,是Kirchhoff提出的理論,通常稱為Matrix Tree Theorem,原理很簡單:Let G be a graph with V(G)={v1,v2,...,vn},let A={aij}be the adjacentcy matrix of G,and let C={cij}be the n*n matrix, where cij=deg vi if i=j; cij=-aij if i!=j; Then the number of spanning
Time of Update: 2017-02-27
一致性雜湊演算法是分布式系統中常用的演算法。比如,一個分布式的儲存系統,要將資料存放區到具體的節點上,如果採用普通的hash方法,將資料對應到具體的節點上,如key%N,key是資料的key,N是機器節點數,如果有一個機器加入或退出這個叢集,則所有的資料對應都無效了,如果是持久化儲存則要做資料移轉,如果是分布式緩衝,則其他緩衝就失效了。因此,引入了一致性雜湊演算法:把資料用hash函數(如MD5),映射到一個很大的空間裡,如圖所示。資料的儲存時,先得到一個hash值,對應到這個環中的每個位置,如
Time of Update: 2017-02-27
如果你剛開始考慮應用portal解決方案,或者想瞭解把一個新的或現有的JSF應用整合進一個portal環 境有多容易,那麼本文絕對值得你仔細研讀。在過去幾年中,portals無論是在企業還是在增強portlet 2.0(JSR 286)規範中都得到了長足發展 。新2.0版本的portlets在彙總不同的應用,並將其呈現在同一個頁面的不同視窗方面賦於開發人員很大 的自由。此外,它還提供了認證功能,成熟的個人化特性和更好的處理AJAX的現成方法。JSR 301
Time of Update: 2017-02-27
最近在考慮為已經有的一個應用程式增加一個使用者反饋的功能,使用者可以通過反饋功能將使用者的意見和建議、程式出現的問題以一種更符合使用者習慣的方式反饋回來。網上也有一些實現好的反饋程式的服務,包括bug的提交、程式的建議、程式使用中的問題,但是這樣的服務基本上不是完全開源和免費的,並且我對程式反饋的定位還是使用者可以把他的想法通過寫文字的方法發送回來就可以(不需要記錄崩潰時的系統狀況),所以還是決定在完全瞭解實現機制的基礎上來實現反饋功能。採用發送郵件的方式不需要自己構建伺服器,同時也符合我對反饋
Time of Update: 2017-02-27
Java
Time of Update: 2017-02-27
(1) 建立一個myString類,在其中包含了一個String對象,以便用在構建器中用構建器的自變數對其進行初始化。添加一個toString()方法以及一個concatenate()方法,令其將一個String對象追加到我們的內部字串。在myString中實現clone()。建立兩個static方法,每個都取得一個myString
Time of Update: 2017-02-27
提供了Zip支援的Java
Time of Update: 2017-02-27
java的GZIP介面非常簡單,所以如果只有單個資料流需要壓縮(而不是一系列不同的資料),那麼它就可能是最適當選擇。下面是對單個檔案進行壓縮的例子: //: GZIPcompress.java// Uses Java 1.1 GZIP compression to compress// a file whose name is passed on the command// line.import java.io.*;import java.util.zip.*;public
Time of Update: 2017-02-27
繼承最值得注意的地方就是它沒有為新類提供方法。繼承是對新類和基礎類之間的關係的一種表達。可這樣總結該關係:“新類屬於現有類的一種類型”。這種表達並不僅僅是對繼承的一種形象化解釋,繼承是直接由語言提供支援的。作為一個例子,大家可考慮一個名為Instrument的基礎類,它用於表示樂器;另一個衍生類叫作Wind。由於繼承意味著基礎類的所有方法亦可在衍生出來的類中使用,所以我們發給基礎類的任何訊息亦可發給衍生類。若Instrument類有一個play()方法,則Wind裝置也會
Time of Update: 2017-02-27
當然,我們經常想做的一件事情是將格式化的輸出列印到控制台,但那已在第5章建立的com.bruceeckel.tools中得到了簡化。第1到第4部分示範了輸入資料流的建立與使用(儘管第4部分展示了將輸出資料流作為一個測試載入器的簡單應用)。1.
Time of Update: 2017-02-27
很少需要直接使用反射工具;之所以在語言中提供它們,僅僅是為了支援其他Java特性,比如對象序列化(第10章介紹)、Java Beans以及RMI(本章後面介紹)。但是,我們許多時候仍然需要動態提取與一個類有關的資料。其中特別有用的工具便是一個類方法提取器。正如前面指出的那樣,若檢視類定義源碼或者聯機文檔,只能看到在那個類定義中被定義或覆蓋的方法,基礎類那裡還有大量資料拿不到。幸運的是,“反射”做到了這一點,可用它寫一個簡單的工具,令其自動展示整個介面。下面便是具體的程式:
Time of Update: 2017-02-27
為理解RTTI在Java裡如何工作,首先必須瞭解類型資訊在運行期是如何表示的。這時要用到一個名為“Class對象”的特殊形式的對象,其中包含了與類有關的資訊(有時也把它叫作“元類”)。事實上,我們要用Class對象建立屬於某個類的全部“常規”或“普通”對象。對於作為程式一部分的每個類,它們都有一個Class對象。換言之,每次寫一個新類時,同時也會建立一個Class對象(更恰當地說,是儲存在一個完全同名
Time of Update: 2017-02-27
使用Axis2和JiBX將Java類轉換成Web服務,第1部分: 使用XML通過Java類定義Web服務本文配套源碼簡介Web 服務在日常開發中重要性與日俱增,Axis2 也成為了倍受人們歡迎的開發Web 服務的開放源碼平台。Axis2 使用Java 語言編寫,它能利用了 JiBX(一種架構,用於將XML和Java綁定在一起)的自由性。假設您有一個含有大量 Java 類和資料結構的 Java 項目,而且不想打亂或者更改它們。JiBX 會協助您實現這一切,它把在 Axis2 中使用的 XML
Time of Update: 2017-02-27
Java語言的反射功能是我們不得不使用的功能,但事實上它的使用是相當繁瑣卻在功能上比較單一的一個功能。例如,我們使用Java語言反射最多的地方是在運行時對POJO對象或者Domain對象的“set”和“get”方法的調用,因為對象屬性是私人的,擷取和設定對象屬性的值是通過對應的“get”和“set”方法進行的。下面是一個關於“get”方法調用的例子:public static
Time of Update: 2017-02-27
進程通訊是作業系統核心中非常重要的部分。對於IBM i而言,資料隊列是一種非常重要的進程通訊方式。 一方面,資料隊列功能強大,不受程式設計語言的限制,並能同時支援進程的同步通訊與非同步通訊;另一方面,數 據隊列使用靈活,其資料訊息不受任何格式束縛,換句話說,使用者可以根據業務需求自訂資料格式。作為 IBM i的Java API,IBM Java Toolbox for i支援IBM i資料隊列的相關操作,這樣,Java應用 程式與其它IBM
Time of Update: 2017-02-27
作為一種物件導向的Java編程模型,IBM Java Toolbox for i為Java應用程式訪問IBM i資料與資源提供了 API級的通訊支援。而AS400類則代表了IBM Java Toolbox for i與IBM i的Socket串連,任何依賴IBM Java Toolbox for i操縱IBM i資料與資源的行為都是以與IBM i的通訊串連為前提。從這個意義上講,AS400可以看 成IBM i的訪問進入點。本文的主要目標就是從重用IBM
Time of Update: 2017-02-27
從安全性的角度,IBM i提供了三個層級的安全保護機制,分別為:物理安全性、登入安全性、以及資源安 全性。物理安全性是從硬體的角度,主要涉及的是IBM i資料存放區介質的保護;登入安全性則以使用者為中心, 限制哪些使用者訪問IBM i以及登入後可執行哪些操作;資源安全性是圍繞IBM i對象與檔案等資源,保護檔案、 對象以及對象中資料避免非法訪問。另一方面,作為一組JavaAPI,IBM Java Toolbox for i主 要用於訪問IBM i的資料與資源。有關IBM Java
Time of Update: 2017-02-27
Groovy開發人員早已熟知Java 8中新引入的概念和新的語言結構了。在Java新版本即將推 出的增強特性中,有很多是Groovy在幾年前就已經提供了的。從用於函數式編程風格的新語 法,到lambdas運算式、collection streaming和要把方法引用作為一等公民,Groovy開發人 員在未來編寫Java代碼時具有先天性優勢。本文將重點關注Groovy和Java 8的共同點,並闡 述了Java 8如何解讀Groovy中那些熟悉的概念。我們先來討論一下函數式編程風格,
Time of Update: 2017-02-27
MD5簡介MD5的全稱是Message-Digest Algorithm 5,在90年代初由MIT的電腦科學實驗室和RSA Data Security
Time of Update: 2017-02-27
/* Readfile.java讀取檔案的內容,並將原樣輸出至螢幕上使用方法:java Readfile 檔案名稱*/import java.io.*;public class Readfile{public static void main(String[] args){byte[] buff = new byte[1024];boolean cont = true;FileInputStream infile = null;// 產生對象infile 準備讀取檔案try{infile =