先看代碼import java.util.Arrays;/*** 得到數組中最有效元素和下標.<br>* 最有效只出現頻率超過長度一半的資料。** @author 趙學慶 www.java2000.net*/public class MyTest { public static void main(String[] args) { int[] values = new int[] { 5, 3, 5, -5, 5, 0, 5 }; int maxValue =
摘 要 本文在研究kaffe的基礎上,吸收kaffe虛擬機器的主要思想,用C語言作為開發語言,採用了及時編譯器作為執行引擎,實現了一種Windows平台下的Java虛擬機器。然後對實現過程中的一些關鍵技術如class檔案驗證、及時編譯器、垃圾收集器、線程同步和線程調度等做了分析。關鍵詞 kaffe; C語言;
摘 要 穩定性是衡量軟體系統品質的重要指標,記憶體流失是破壞系統穩定性的重要因素。由於採用記憶體回收機制,Java語言的記憶體流失的模式與C++等語言相比有很大的不同。全文通過與C++中的記憶體流失問題進行對比,講述了Java記憶體流失的基本原理,以及如何藉助Optimizeit profiler工具來測試記憶體流失和分析記憶體流失的原因,在實踐中證明這是一套行之有效方法。關鍵詞 Java; 記憶體流失; GC(垃圾收集器) 引用;
摘 要 目前流行的Java公司專屬應用程式系統架構種類繁多,為了使開發人員正確選擇系統架構從而提高Java公司專屬應用程式的開發效率,首先針對基於EJB和基於POJOs的較為流行的幾種架構分別進行了概述,然後對這些架構從表現層、商務邏輯層和持久層的實現細節進行了對比,總結了Java公司專屬應用程式系統架構選擇需要側重考慮因素,得到了基於EJB的架構和基於POJOs的架構分別適用的範圍。關鍵詞
一般我們在java中運行其它類中的方法時,無論是靜態調用,還是動態調用,都是在當前的進程中執行的,也就是說,只有一個java虛擬機器執行個體在運行。而有的時候,我們需要通過java代碼啟動多個java子進程。這樣做雖然佔用了一些系統資源,但會使程式更加穩定,因為新啟動的程式是在不同的虛擬機器進程中啟動並執行,如果有一個進程發生異常,並不影響其它的子進程。在Java中我們可以使用兩種方法來實現這種要求。最簡單的方法就是通過Runtime中的exec方法執行java
學習 Java 平台的路途並不平坦。有太多的技術可供您選擇使用。但是,您首先必須清楚自己想要做什麼以及從哪裡開始。本文將向您介紹幾款學習 Java 程式設計語言的工具。選擇何種工具開始學習取決於您目前對程式設計語言的瞭解程度。確定所選擇的工具之後,您將通過參考資料瞭解有關技術和程式設計語言的詳細資料。圖 1. Greenfoot Lunarlander學習 Java 平台應該是有趣、簡單和激動人心的。準備好之後,請從以下工具中選擇其一,開始我們的進階之路吧。不用多久,您就能夠建立激動人心的
目前,JAVA是開發人員的熱寵,很多論壇都有不少熱愛JAVA的開發人員,也有不少想成為JAVA程式員,但苦於不知道該如何學習,也不清楚該學些什麼知識才能成為一個JAVA程式員。本人在這裡拋磚引玉,和大家討論成為一個JAVA初級程式員應該具有的知識,與大家共用。個人認為想成為一個合格的JAVA初級程式員應該具備如下知識:一、物件導向的知識:JAVA是一個物件導向的開發語言,因此熟悉物件導向對學習JAVA很有必要,您要瞭解:什麼是對象,什麼是類;什麼是封裝,什麼是多態,什麼是繼承;什麼是抽象類別,什
大多數重要的應用程式都涉及高度並發性和多個抽象層。並發性與資源爭用有關,並且是導致死結問題增多的因素之一。多個抽象層使隔離並修複死結環境的工作變得更加困難。通常,當同時執行兩個或兩個以上的線程時,如果每個線程都佔有一個資源並請求另一個資源,這時就會出現死結情況。因為如果一個線程不能擷取資源,則所有線程都不能繼續執行,我們稱那個特定的線程被阻塞;如果每個線程都由於同組中另一個線程所佔有的資源而被阻塞,我們就稱這個線程組被死結。在本文中,我們將討論發生在典型的重要J2EE應用程式中的兩大類死結情況:
在不久前的一段時間內,Java 開發人員在準備一個新的企業 Java 開發項目時,事先就知道將要使用的工具。當時,一切都很簡單:J2EE 是新的,HTML 瀏覽器是公認的使用者介面標準,而複雜性(至少從推測的角度而言)已成為過去的事情。而如今,事情變得如此複雜。“開發人員面對的選擇令人眼花繚亂。”開發人員面對的選擇令人眼花繚亂,從“輕型容器”(如 Spring、NanoContainer 或 HiveMind)到“web
摘要如今,UML用於對軟體系統進行建模已有多年時間。然而,我極少看到有關對現代軟體系統建模和技術的詳細討論或執行個體。例如,對應用程式及其部署建模需要開發各類原型系統,並需要使用有組織的方法來設計圖的作用範圍和布局,使其真正發揮作用。在複雜的環境中,建模顯得尤為重要,它不僅能為編寫代碼的軟體工程師帶來好處,而且負責正確配置和部署軟體系統的軟體組態管理團隊和生產服務團隊也能從中獲益良多。本文示範了對現代軟體建模的幾種方法,這些方法可用於精確而簡明地交流架構方面的細節。簡介不久以前,有用的公司專屬應
類路徑可以串連 Java 運行庫和檔案系統。它定義編譯器和解譯器應該在何處尋找要載入的 .class 檔案。它的基本思想是:檔案系統的階層反映了 Java 包的階層,而類路徑則定義了檔案系統中的哪個目錄可以作為 Java 包階層的根。遺憾的是,通常檔案系統非常複雜並依賴於平台,而且和 Java 包也不能很好地匹配。尤其是在 Windows 環境中更是如此。Java 是一些 Unix 高手設計的,因而從很多方面來說,這也就意味著它無法很好地與 Windows
我朋友經常引用我的一句話就是:你的Java對我的Javascript是侵入的....,彷彿她比我還OO來著。我自己就提出了一個解決的方法:就是把Java對象寫成JS對象,這樣Web設計人員只要關注JS對象,用JS對象來渲染整個Web頁面,這樣我就不會和他的領域衝突了。簡單來說,我們平常的WEB架構都是號稱MVC的,這樣它們就把V這個事情壓在了JAVA程式員的身上,可憐我的審美觀啊~所以我們應該把V繼續往下推,推給對JAVA什麼都不懂,但是卻有非常豐富的WEB設計人員的身上。總不能讓別人去學JAV
Java工具 + 生產力類庫中的類java.util.Random提供了產生各種類型隨機數的方法。它可以產生int、long、float、double以及Goussian等類型的隨機數。這也是它與java.lang.Math中的方法Random()最大的不同之處,後者只產生double型的隨機數。類Random中的方法十分簡單,它只有兩個構造方法和六個普通方法。構造方法:(1)public Random()(2)public Random(long
Constant Pool常量池的概念:在講到String的一些特殊情況時,總會提到String Pool或者Constant Pool,但是我想很多人都不太明白Constant Pool到底是個怎麼樣的東西,啟動並執行時候儲存在哪裡,所以在這裡先說一下Constant Pool的內容。String Pool是對應於在Constant Pool中儲存String常量的地區.習慣稱為String Pool,也有人稱為String Constant
摘要J2EE編程正在變得越來越複雜。J2EE已經發展為一個API、複雜化的編程和配置的複雜網路。為了應對這種複雜性,新的架構和方法不斷湧現。這些架構高度依賴於一個稱為IoC(Inversion of
整體和部分還記得這條諺語嗎,“整體大於部分之和”?如果把一個個獨立的事件組合成一個相互作用的整體,產生的結果會比單個個體的作用之和要大得多。程式也是一樣的道理。隨著一個個新方法被添加到程式中,整個程式可能的控制流程程迅速增加。對於大型程式而言,很快局面就會無法控制了。就象是一個荒謬而又不可思議的戲法,有時您得到的最終結果並不是您所期望的方向 ― 這同您在重載方法或者覆蓋方法時遇到的情況有些類似。Broken Dispatch
在Linux中配置Java Home變數,如果你在網上搜尋一下的話,可能找到的大多數答案都是:export Java Home=YOUR/JAVA/PATH這會有一個問題,就是一這種方式設定的變數只對目前使用者的當前會話有效,如果你開啟另外一個shell執行:echo $Java Home所顯示的結果仍是空值。當你下次開機的時候還要重新設定一遍,所以不推薦使用此方法,所以要為Linux配置Java Home變數,並且要實現一次配置終身使用只需要按照一下方法配置即可:以root許可權開啟/etc/
程式的自訂設定是一個重要的功能,大多數程式都會提供自訂配置的方法,提供使用者根據個人喜好、運行環境來配置軟體的使用方式。程式的配置方式存在多樣性,一般會採用windows格式的ini設定檔或者註冊表方式,java格式的properties屬性檔案,隨著xml檔案在程式開放中的普及,也有越來越多的配置開始使用xml的檔案方式,例如java
測試優先編程(test-first programming)中反覆遇到的一個問題是,似乎不可能對程式的許多部分進行自動化的測試。尤其當程式在很大程度上要利用外部資源和庫時,似乎很難對它進行測試,因為沒有很好的方法來類比程式與這些外部資源的串連。然而,雖然只使用 Java 代碼很難測試這樣的程式,但有一種類型的編程(帶有開發工具)可以解決這個問題 ― 基於組件的編程。基於組件的編程和 Java 語言我所說的基於組件的編程是指什嗎?我只是指,編程時程式的各個單元處於分布狀態,而不是象
要構建可靠的軟體,程式規範很關鍵。沒有良好定義的規範,很難診斷軟體系統的異常行為。但是很多軟體系統的程式規範定義得很差勁。而且更糟的,是許多軟體系統根本就沒有規範。直觀的看,程式規範是對程式行為的一種描述。它可以採取許多形式,但無論採取何種形式,都有一條主線貫穿所有執行個體:必須有某種類型的系統規範,因為您得依靠它來判斷系統是否運轉正常。規範可以形式化也可以鬆散地定義,這取決於開發中系統的穩定性和危險程度,還與開發完畢後修改系統的容易程度有關。我們將通過討論規範為什麼重要、為什麼會經常被忽略以及