Time of Update: 2017-02-27
為何需要任務調度?在web應用中,大多數任務是以一種"防止使用者長時間等待"的方式完成的。在Google搜尋這樣的例子中,減少等待時間對使用者體驗來說至關重要。非同步任務的一種解決方案是在使用者提交後產生一個線程(來處理非同步任務),但這也不能解決那些需要以一定時間間隔重複運行任務、或在每天的指定時間運行任務的情況。讓我們從一個資料庫報表的例子來看看任務調度能如何協助改善系統設計。報表可能是錯綜複雜的,這取決於使用者所需資料的種類,以及是否需要從一個或多個資料庫收集大量資料。
Time of Update: 2017-02-27
Java語言以其物件導向、跨平台、可移植性好、安全性高等優點,受到眾多編程人員的青睞,越來越多的人將其作為應用軟體開發語言的首選。在Java應用程式運行時,特別是需要在跨平台工作環境下運行時,需要確定作業系統類型、使用者JDK版本和使用者工作目錄等隨工作平台變化的資訊,來保證程式正確運行。一般情況下,可以利用JDK提供的系統屬性類(Properties)中的方法,快速地擷取工作環境資訊。另外,程式開發人員還可以定義與應用程式相關的系統屬性檔案,在使用者程式執行過程中動態地載入程式員定義的屬性檔案
Time of Update: 2017-02-27
線性表,鏈表,雜湊表是常用的資料結構,在進行Java開發時,JDK已經為我們提供了一系列相應的類來實現基本的資料結構。這些類均在java.util包中。本文試圖通過簡單的描述,向讀者闡述各個類的作用以及如何正確使用這些類。Collection ├List │├LinkedList │├ArrayList │└Vector │ └Stack └Set Map ├Hashtable ├HashMap
Time of Update: 2017-02-27
JAVA中類檔案載入是動態。JVM指令是被封裝在了. class檔案裡面,而.class檔案的載入過程是動態,也就是說當我們用到的時候才會去載入,如果不用的話,就不會去載入我們的類。這裡所說的用到包括兩種方式,第一種就是new一個對象的時候(這個時候要特別注意,當設計到多態的時候,就會有一點點變化,這時候編譯器會做一些最佳化,這樣以來當載入的時候會提前載入設計到多態的類,關於這一點下面有個例子(example 1)來說明。另一種就是當一個類的靜態代碼被調用的時候。java
Time of Update: 2017-02-27
要真正彼此隔離 Java 應用程式,實質上需要多個 JVM,然而啟動成本和記憶體佔用使這種方式不那麼理想。而共用類可以同時解決這兩個問題。在多 JVM 環境中,共用類通過將一組核心系統類別裝載到共用記憶體中,可以在多個 JVM 中共用這些類。這些共用類放到記憶體的一個共用地區中,它們在這裡對所有 JVM 都是保持一致的。結果,共用類只需要在第一次使用時裝載到記憶體中,這消除了在以後每次 JVM 調用時裝載它們的固定成本,並減少了每個 JVM 中的記憶體佔用。IBM 在 z/OS
Time of Update: 2017-02-27
分兩步走:(1). 實現 javax.servlet.ServletContextListener 介面的兩個方法:contextInitialized()和contextDestroyed()contextInitialized():當Servlet容器啟動時會執行contextDestroyed():當Servlet容器停止時會執行(2). 在contextInitialized()中加入需要監聽的程式,並由 java.util.Timer 的 schedule()
Time of Update: 2017-02-27
Java中幾種常用的資料類型之間轉換方法:1. short-->int 轉換exp: short shortvar=0;int intvar=0;shortvar= (short) intvar2. int-->short 轉換exp: short shortvar=0;int intvar=0;intvar=shortvar;3. int->String 轉換exp: int intvar=1;String
Time of Update: 2017-02-27
對於流程式控制制中的switch-case語句,一直是我的一個弱項.每當考試或者面試筆試的時候,總是丈二和尚摸不著頭腦,我想這應該是我基礎太差的原因吧!為了徹底解決這個心病,不得不花點功夫了!首先從原理上來闡述這個問題:switch(運算式){ case 常量運算式1:語句1;....case 常量運算式2:語句2;default:語句;
Time of Update: 2017-02-27
運行時綁定也叫動態綁定,它是一種調用對象方法的機制。Java調用對象方法時,一般採用運行時綁定機制。1.Java的方法調用過程編譯器查看對象的宣告類型和方法名(物件變數的宣告類型)。通過宣告類型找到方法列表。編譯器查看調用方法時提供的參數類型。如果方法是private、static、final或者構造器,編譯器就可以確定調用那個方法。這是靜態繫結。如果不是上述情況,就要使用運行時(動態)綁定。在程式運行時,採用動態綁定意味著:虛擬機器將調用對象實際類型所限定的方法。2.運行時(動態)綁定的過程虛
Time of Update: 2017-02-27
下面的代碼展示了在一個方法中,通過匿名內部類定義一個Thread,並Override它的run()方法,之後直接啟動該線程。這樣的代碼可用於在一個類內部通過另起線程來執行一個支線任務,一般這樣的任務並不是該類的主要設計內容。package com.zj.concurrency;public class StartFromMethod { private Thread t; private int number; private int count = 1; public
Time of Update: 2017-02-27
在實際開發中,我們常常需要對某些資料進行排序,這些資料往往使用數組 或者集合儲存。對於數組中的資料排序,API中提供了一個數組的工具類, java.util.Arrays,類中重載了大量的sort方法,可以對各種類型的數組進行排 序。如對於Object類型數組排序有如下方法:public static void sort(Object[] a)假設有類Course,如下:package com.csst.relation;public class Course { private
Time of Update: 2017-02-27
通過前面幾篇文章的學習,初學者可以初步掌握Java語言中繼承的概念和使 用方法,對抽象類別的使用也有一定的理解。值得注意的是,Java中類與類的繼承 是單繼承,也就是一個子類最多同時可以繼承一個父類。那麼讓我們看下面的例 子。假設我們要開發一個遊戲系統,而遊戲系統中有三種飛行器:飛機、小鳥、 蜘蛛俠。這三種飛行器都需要實現起飛,飛行,降落的邏輯,但是實現方法各不 相同。那麼這三個類應該有一個抽象類別作為父類,規範共同行為。package com.csst.inter;public
Time of Update: 2017-02-27
很多時候,某個Java類中有多個類似的方法。如Math類中,計算絕對值的方 法就會有多個,因為對不同資料類型的數計算方式不同。比如對float,int, long,double各類型的計算方式各不相同,那麼Math類中就應該設計4個求絕對 值的方法,分別對每種類型進行計算。在這種情況下,最好的方式就是設計4個 同名,但是不同參的方法,如下所示(請參見API協助文檔):abs(double a) Returns the absolute value of a double
Time of Update: 2017-02-27
在教程(十二)中,我們有這樣的假設。假設有這樣一個簡單需求(其實談 不上是需求,僅僅為了初學者容易理解而編造):某培訓中心要開發一個內部員 工管理系統。該培訓中心目前有兩個部門,技術資源部和業務部。技術資源部的 員工負責講課,稱為講師。業務部員工負責聯絡洽談業務,稱為銷售。在管理系 統中,需要管理的是所有員工的姓名、薪水,以及講師的技術方向,銷售的任務 量。…..基於這樣的假設,我們設計了三個類:父類Employee、子類Sales和Trainer
Time of Update: 2017-02-27
教程(十一)中,瞭解了Java語言中繼承的基本概念。Java中類與類的繼承 ,是單繼承,主要目的是複用。子類對象可以複用父類中許可權允許的屬性和方法 ,所以子類的構造方法和父類的構造方法之間,有一定的調用關係,本文中將進 行詳細介紹。首先,需要記住一個事實:子類的任何一個構造方法,都將先調用父類某個 構造方法。如子類Trainer中的構造方法:public Trainer() { }雖然這個構造方法的方法體中什麼代碼也沒有寫,但是也調用了父類
Time of Update: 2017-02-27
從教程(十)開始,已經從學習單個類的基本文法,轉到了學習多個類之間 的關係。教程(十)中,學習了類與類長間的兩種關係,關聯和依賴。為了維護 1對多的關係,在教程(十一)中,學習了數組。除了關聯和依賴,類與類還有 一種非常重要且常見的關係,就是繼承。本文將介紹繼承的概念、作用、使用場 景等。假設有這樣一個簡單需求(其實談不上是需求,僅僅為了初學者容易理解而 編造):某培訓中心要開發一個內部員工管理系統。該培訓中心目前有兩個部門
Time of Update: 2017-02-27
在教程(十)中,我們學習了Java類之間常見的兩種關係,即關聯和依賴。 如果A關聯或依賴B,如果僅從A到B這個方向看,從數量上,可能有1對1和1對多 兩種可能。物件導向的應用,都是映射現實世界的對象以及對象之間的關係的, 仔細考察一下我們身邊的情況,對象與對象之間如果存在關聯或依賴,其實1對 多的關係更為常見。如,一個部門有多個員工,一個學員有多個院系,一個人有 多張畢業認證…上篇文章中的例子,學生只能選擇一門免費課程學習,如果培訓中心加大優
Time of Update: 2017-02-27
在第八篇博文中,介紹了編寫方法體必須瞭解的基本知識點,初學者已經可 以自己寫簡單的例子進行練習。在練習過程中,我們不可能把所有的代碼都放在 main方法中,Java類一定會有或多或少的方法成員,調用這些方法將是必要的步 驟。而調用方法成員時,如果該方法有參數,就必須要傳遞實際參數給方法的形 式參數。所以瞭解Java語言中的值傳遞是非常必要的。Java中的資料類型分兩種,基礎資料型別 (Elementary Data Type)和參考型別。所以本文中也將分別 對這兩種資料類型的值傳遞特徵進行介紹。
Time of Update: 2017-02-27
Java對多線程的支援與同步機制深受大家的喜愛,似乎看起來使用了synchronized關鍵字就可以輕鬆地解決多線程共用資料同步問題。到底如何?――還得對synchronized關鍵字的作用進行深入瞭解才可定論。總的說來,synchronized關鍵字可以作為函數的修飾符,也可作為函數內的語句,也就是平時說的同步方法和同步語句塊。如果再細的分類,synchronized可作用於instance變數、object reference(對象引用)、static函數和class
Time of Update: 2017-02-27
隨著Internet覆蓋範圍的日益擴大,有價值的資訊資源在不斷的增長,對網路的高效性、智能性、主動性和靈活性提出了更多的要求,對於如何捆綁分布異構環境中資訊源的問題變得越來越突出。在網路分布式系統的實際應用中,一般採用Server/Client結構,在這種結構中,運行於Server和Client上進程間的通訊是通過資訊傳送和遠端程序呼叫(RPC)實現的,一般是同步實現的,即Client向伺服器發出請求後就掛起本地進程而等待結果,遠地Server按要求執行完所要求的資料處理後返回結果,當本地進程得