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
Java不支援類的多重繼承,但可以使用內部類來繼承實現更多的類。下面的例子,目標類需要繼承兩個抽象類別(A和B)。目標類C本身繼承類A,並使用一個匿名內部類繼承另一個類B。MultiImplementation.javaabstract class A { abstract void methodA();}abstract class B { abstract void methodB();}class C extends A { @Override void methodA() {
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
在教程(十)中,我們學習了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按要求執行完所要求的資料處理後返回結果,當本地進程得
Time of Update: 2017-02-27
現在許多系統的註冊、登入或者發布資訊模組都添加的隨機碼功能,就是為了避免自動註冊程式或者自動發布程式的使用。驗證碼實際上就是隨機播放一些字元以圖片的形式展現在頁面上,如果進行提交操作的同時需要將圖片上的字元同時提交,如果提交的字元與伺服器session儲存的不同,則認為提交資訊無效。為了避免Bot分析解析圖片,通常會在圖片上隨機產生一些幹擾線或者將字元進行扭曲,增加自動識別的難度。在這裡,我們使用servlet來實現隨機驗證碼的實現。package com.servlet;import
Time of Update: 2017-02-27
或許每個軟體從業者都有從學習控制台應用程式到學習可視化編程的轉變過程,控制台應用程式的優點在於可以方便的練習某個語言的文法和開發習慣(如.net和java),而可視化編程的學習又可以非常方便開發出各類人機對話介面(HMI)。可視化編程或許是一個初學者開始對軟體感興趣的開始,也可能是一個軟體學習的裡程碑點,因為我們可以使用各類軟體整合式開發環境(IDE)方便的在現成的介面視窗上拖放各類組件(Component),這類組件包括我們常見的按鈕(Button),選項按鈕(Radio
Time of Update: 2017-02-27
引言現在的各種資料庫應用,由於技術、曆史等因素,往往在一個大的部門中並存有多個應用系統。這些應用系統可能分散於不同的網路節點、基於不同的操作平台、使用不同的資料庫管理系統,且各子系統封閉運行,自成一體,這樣給不同部門的資訊資源共用帶來困難。如何在不改變原來系統的內部資訊的前提下,完成不同資料庫系統間的資料訪問和交換是值得研究的問題。多資料庫系統的Java解決方案多資料庫系統的構成有多種方式,在這些方式中,我們考察這些多資料庫的不同點,其主要表現在以下幾個方面的異構:(1)資料庫邏輯資料模型的異構