Time of Update: 2017-02-27
不知道大家還記不記得在《西遊記》裡的蓮花洞奪寶的故事,就是猴王巧奪寶物,收複金銀角大王那 一章。到底這個故事給了我們什麼啟示呢?這故事又和Effective Java有什麼聯絡?還是延續上篇文章的 風格吧,看代碼,讀故事。 1import static org.junit.Assert.*;2import org.junit.Test;345public class TestClone {67 @Test8 public void testClone(){9 //
Time of Update: 2017-02-27
在Linux系統中進行開發,和在Windows中進行開發相比較起來,即有優點,也有缺點。下面是我的一 些意見,歡迎大家討論。先來說說優勢:1、由Linux系統的本質決定的:Linux的本質有三點,一是開源,二是免費,三是和Unix是一個體系。大家都知道,重要的應用幾乎都 是運行在Unix伺服器上面的,這是因為Unix天生就是為伺服器設計的作業系統,他的安全、高效是不用質 疑的,後來為了向案頭發展,出現了X Windows,當然,我們可以選擇在啟動系統的時候不啟動X Windows
Time of Update: 2017-02-27
在應用程式開發過程中,使用的最多的資料類型就是字串 。在Java語言平台中也是如此。為此掌握 字串的處理技巧,無疑是一位元據庫管理員必須要掌握的技能。筆者這裡就給大家介紹如何利用字串 串連來解決一些實際的問題。一、 字串串連概述。在編寫應用程式的時候,我們往往需要將多個字串串連起來,來完成特定的功能。如現在有兩個字 符串變數,分別為名字(變數名為name)和年齡(變數名為age)。現在需要在螢幕上輸出“我的名字是某某
Time of Update: 2017-02-27
12.3.4 靜態內部類在上一小節我們討論了內部類,即在一個類中包含有另外一個或者多個類(見本書12.3.3小節)。與 內部類相似,靜態內部類指在一個類的內部包含有另外一個或者多個靜態類。例如:public class OuterClass { ... static class StaticInnerClass1 { //內部靜態類 //只可以訪問OuterClass的靜態成員 ... }
Time of Update: 2017-02-27
Java語言本身具有跨平台性,如果通過Java調用DLL的技術方便易用,使用Java開發前台介面可以更快 速,也能帶來跨平台性。Java調用C/C寫好的DLL庫時,由於基礎資料型別 (Elementary Data Type)不同、使用位元組序列可能有差異,所以在參數傳遞過 程中容易出現問題。使用Java調用DLL動態連結程式庫的方案通常有三種:JNI, Jawin, Jacob. 其中JNI(Java Native
Time of Update: 2017-02-27
在編寫Java程式時,有時候需要在Java程式中執行另外一個程式。1、啟動程式Java提供了兩種方法用來啟動其它程式:(1)使用Runtime的exec()方法(2)使用ProcessBuilder的start()方法不管在哪種作業系統下,程式具有基本類似的一些屬性。一個程式啟動後就程式作業系統的一個進程 ,進程在執行的時候有自己的環境變數、有自己的工作目錄。Runtime和ProcessBuilder提供了不同的方
Time of Update: 2017-02-27
在JAVA平台上開發應用程式的時候,有一個很大的特點就是其是在應用程式啟動並執行時候才建立對象。 換句話說,在程式啟動並執行時候,才會最終確定對象的歸屬,即對象應該儲存在什麼地方。由於儲存在不同 的地區,其在效能上會有所不同。為此作為Java程式開發人員需要瞭解各個儲存地區的特點以及對效能的 影響。然後再根據需要來調整應用程式的地區分配。總的來說,在作業系統中有五個地方可以用來儲存應
Time of Update: 2017-02-27
Java終止函數是什麼?對於對象而言,Java 終止函數履行最後的確認工作。這與Java 結構函數是相反的,Java 結構函數創 建以及初始化了一個Java類執行個體。當一個對象不在被需要以及這些資源必須被用於其它對象的時候,在一 個類執行個體或者發行的系統資源,比如說檔案描述符或者網路插孔串連上,Java 終止函數可以被用來清除 任務。你不需要證據或者為終止函數返回任何值。遺憾的是當一個類或者介面被載入的時候,目前的Java
Time of Update: 2017-02-27
上一篇中,通過例子我們知道了如何利用反射機制建立對象,獲得類變數和調用方法等。建立對象的語句是 Class cla = Class.forName(type); Object obj = cla.newInstance(); 這裡newInstance()實際上是使用了該類的預設無參構造方法。如果我們要調用其它的構造方法就要稍微複雜一點。比如我們要建立一個StringBuffer對象,用new 操作符應該是StringBuffer br = new
Time of Update: 2017-02-27
下面我以顧客買相機為例來說明Java反射機制的應用。例子中涉及的類和介面有:Camera介面:定義了takePhoto()方法。Camera01類:一種照相機的類型,實現Camera介面。Camera02類:另一種照相機的類型,實現Camera介面。Seller類:賣照相機。Customer類:買相機,有main方法。所有類都放在com包裡程式如下:public interface Camera { //聲明照相機必須可以拍照public void takePhoto();}public
Time of Update: 2017-02-27
Java 反射機制是指Java程式可以在執行期載入,探知,使用編譯期間完全未知的classes.這句話可能有點難以理解,我們可以通過一個例子來看。在Java程式中我們經常會用到這樣一條語句來建立一個對象。Date date = new Date();在這條語句中date的類型(Java.util.Date)在編譯時間
Time of Update: 2017-02-27
java獲得當前系統記憶體情況的代碼如下:/** *//** http://www.bt285.cn/ http://www.5a520.cn/*/import java.lang.management.ManagementFactory;import com.sun.management.OperatingSystemMXBean;public class OSTest { public static void main(String[] args) {
Time of Update: 2017-02-27
對於一個具備使用價值的應用而言,其使用者有可能會在一段時間內瘋狂的增 長。隨著越來越多的關鍵性質的應用在Java EE上運行,很多的Java開發人員也開始 關注可擴充性的問題了。但目前來說,大部分的web 2.0網站是基於script語言編 寫的,對於Java應用可擴充能力,很多人都抱著質疑的態度。在這篇文章中, Wang Yu基於他本身在實驗室項目的經驗來展示如何構建可擴充的java應用,同時 ,基於一些在可擴充性上做的比較失敗的項目給讀者帶來構建可擴充java應用的
Time of Update: 2017-02-27
簡介多線程應用程式可以滿足當前不斷增長的業務需求,同時還可以減少所需系統 的數量。但是多線程應用程式的延展性卻受不到了不可並發執行的代碼的限制 ;這些串列組件對延展性造成了限制,請參見 阿達姆定律 和 I/O 問題。我們 的上一篇文章 Horizontal Scaling on a Vertical System Using Solaris Zones 介紹了如何使用分區(Zone)擴充 Xitami/NexSRS,即在每個分區中都運
Time of Update: 2017-02-27
本文將從兩個方面進行闡述:使用 C++ 語言來描述 Monitor Object 設計模式。Java 對於這樣一個典型的 模式做了很好的語言層面的封裝,因此對於 Java 的開發人員來說,很多關於該模 式本身的東西被屏蔽掉了。本文試圖使用 Native C++ 語言,協助讀者從本質上 對 Monitor object 設計模式有一個更全面的認識。結合 C++ 版本的 Monitor Object 設計模式,引領讀者對於 Java 同步機制 有一個更深刻的認識,協助讀者正確有效地使用 Java
Time of Update: 2017-02-27
會話發起協議(Session Initiation Protocol,SIP)是一種訊號傳輸協議,用於建立、修改和終止兩個端點之間的會話。SIP 可用於建立 兩方呼叫、多方呼叫,或者甚至 Internet 呼叫、多媒體呼叫和多媒體分發的多播會話。JSR 116:SIP Servlet API 是一個伺服器端介面,描 述了針對 SIP 組件及服務的容器。SIP servlet 是在 SIP 容器中啟動並執行 servlet,與 HTTP Servlet 類似,但提供了對 SIP 協議的支援。
Time of Update: 2017-02-27
問題原始程式碼控制(SCM)產品用於管理多個版本的專案檔,允許您儲存新版本、恢複較舊版本以及在不同版本之間進行比較。當您在修改項目的過程中引入了bug,這將是一個非常有價值的功能。大多數較新原始程式碼控制(SCM)產品除了可管理各檔案的版本之外,還提供了在 Bell
Time of Update: 2017-02-27
本簡明教程將示範如何在 NetBeans IDE 6.0 中開發 Java SE 應用程式。本教程假定您對 Java 應用程式的開發已比較熟悉。在講解過程中,我們將示範如何通過一些 IDE 特性簡化應用程式開發。我們將開發一個單詞轉換應用程式,用於將多個英文單詞轉換為一個英文單詞。產生單詞的構成形式為第一個詞的第一個字母、第二個詞的第二個字母、第三個詞的第三個字母,依此類推。該產生詞稱為 離合詞。建立項目我們建立的應用程式將包含兩個項目:具有公用程式類的 java 庫項目。具有 main 類的
Time of Update: 2017-02-27
■ NetBeans 6.0 為 Java 提供的新功能和擴充功能NetBeans 6.0 提供了眾多新功能和擴充功能,眾所周知的 GUI 設計器(Matisse 項目)也從 5.5 版本開始得到了極大的增強。此外,由 於整合了 Profiler, 5.5 版也變得更加容易使用。下表列出了 Java SE 的新功能和擴充功能。 GUI 設計器 自動國際化功能 Java 6 介面 支援
Time of Update: 2017-02-27
當並發使用者數明顯的開始增長,你可能會不滿意一台機器所能提供的效能,或 者由於單個JVM執行個體gc的限制,你沒法擴充你的java應用,在這樣的情況下你可以 做的另外的選擇是在多個JVM執行個體或多台伺服器上運行你的系統,我們把這種方法 稱為水平擴充。請注意,我們相信能夠在一台機器的多個JVM上運行系統的擴充方式是水平擴 展方式,而非垂直擴充方式。JVM執行個體之間的IPC機制是有限的,兩個JVM執行個體之間 無法通過管道、共用記憶體、訊號量或指令來進行通訊,不同的JVM進程之間最有效