Time of Update: 2017-01-19
1.效能考慮,優先選擇數組 數組在項目開發當中使用的頻率是越來越少,特別是在業務為主的開發當中,首先數組沒有List,Set等集合提供的諸多方法,尋找增加演算法都要自己編寫,極其繁瑣麻煩,但由於List,Set等集合使用泛型支援後,存放的都為封裝類,而數組是可以使用基礎資料型別 (Elementary Data Type),而使用基礎資料型別 (Elementary Data Type)的執行運算速度要比封裝類型快得多,而且集合類的底層也是通過數組進行實現. 2.若有必要,使用變長數組
Time of Update: 2017-01-19
定義:將抽象部分與實現部分分離,使它們都可以獨立的變化。特點:橋接模式基於類的最小設計原則,通過使用封裝,彙總以及繼承等行為來讓不同的類承擔不同的責任。它的主要特點是把抽象(abstraction)與行為實現(implementation)分離開來,從而可以保持各部分的獨立性以及應對它們的功能擴充。企業級開發和常用架構中的應用:多繼承的結構只是從定義理解橋接模式,很難理清它的作用,下面舉個例子來說明:電腦城賣電腦,電腦種類分了平板電腦,膝上型電腦,台式電腦;電腦品牌又分了聯想,戴爾,華碩,神州。
Time of Update: 2017-01-19
快速鍵很多,一個一個說肯定說不完了!在myeclipse中也可以自己設定。下面給你貼一個,很全!Eclipse 常用快速鍵Eclipse的編輯功能非常強大,掌握了Eclipse快速鍵功能,能夠大大提高開發效率。Eclipse中有如下一些和編輯相關的快速鍵。 1. 【ALT+/】 此快速鍵為使用者編輯的好幫手,能為使用者提供內容的輔助,不要為記不全方法和屬性名稱犯愁,當記不全類、方法和屬性的名字時,多體驗一下【ALT+/】快速鍵帶來的好處吧。 2.
Time of Update: 2017-01-19
Ant是一種基於Java的構建工具。Ant檔案是配置構建目標過程的XML檔案,也稱為Ant指令碼。(因為對這個不是很瞭解,所以用詞方面可能於個人的理解有偏差,謝謝指出)如何配置Ant工具呢?下面分步驟說明:1. 下載一個java ant 開發工具,解壓到相應的磁碟 例如版本:apache-ant-1.8.2-bin.tar.zip;已上傳資源2. 開啟命令列,開始--- 運行----cmd
Time of Update: 2017-01-19
web.xml中設定:複製代碼 代碼如下:<servlet> <servlet-name>DisplayChart</servlet-name> <servlet-class>org.jfree.chart.servlet.DisplayChart</servlet-class> </servlet > <servlet-mapping> <servlet-name>DisplayChart</
Time of Update: 2017-01-19
wait(),notify()和notifyAll()都是java.lang.Object的方法:wait(): Causes the current thread to wait until another thread invokes the notify() method or the notifyAll() method for this object.notify(): Wakes up a single thread that is waiting on this object's
Time of Update: 2017-01-19
實現Runnable介面。當一個線程已繼承了另一個類時,就只能用實現Runnable介面的方法來建立線程,且便於保持程式風格的一致性。我們知道,一個具有生命的線程,具有下面五種狀態:建立狀態使用new運算子建立一個線程後,該線程僅僅是一個Null 物件,系統沒有分配資源,稱該線程處於建立狀態(new
Time of Update: 2017-01-19
java虛擬機器是什麼“java虛擬機器”可能指以下三種東西:1)、抽象規範;2)、一個具體的實現;3)、一個運行中的虛擬機器執行個體;java虛擬機器生命週期啟動當啟動一個java程式時,一個虛擬機器執行個體誕生。虛擬機器執行個體通過調用某個初始類的public static void main(String[] args)方法來運行一個java程式。任何擁有這樣一個main方法的類都可以作為java程式啟動並執行起點,所以必須要告訴虛擬機器初始類的名稱,整個程式將從它的main方法開始運行。
Time of Update: 2017-01-19
大家可能會想,程式和第三方提供了很多壓縮方式,何必自己寫壓縮代碼呢?不錯,如GZIP這樣的壓縮公用程式很多,可是在某些情況下(如常值內容小且字元不重複),GZIP壓縮後會比原始文本還要大。所以在某些特殊情況下用自己的壓縮方式可以更優。大家可能早已忘記了在學校學習的哈夫曼知識,可以先在百度百科瞭解一下哈夫曼知識:http://baike.baidu.com/view/127820.htm哈夫曼思想:統計文本字元重複率,求出各字元權值,再構造出一顆最優二叉樹(又稱哈夫曼樹),然後給每個葉子結點產生一
Time of Update: 2017-01-19
定義:用來降低多個對象和類之間的通訊複雜性。中介者模式屬於行為型模式。特點: 1、降低了類的複雜度,將一對多轉化成了一對一。 2、各個類之間的解耦。 3、符合迪米特原則。企業級開發和常用架構中的應用:mvc模式中的c具體執行個體:public class Demo { public static void main(String[] args) { Mediator m =
Time of Update: 2017-01-19
java語言已經內建了多線程支援,所有實現Runnable介面的類都可被啟動一個新線程,新線程會執行該執行個體的run()方法,當run()方法執行完畢後,線程就結束了。一旦一個線程執行完畢,這個執行個體就不能再重新啟動,只能重建一個新執行個體,再啟動一個新線程。 Thread類是實現了Runnable介面的一個執行個體,它代表一個線程的執行個體,並且,啟動線程的唯一方法就是通過Thread類的start()執行個體方法:複製代碼 代碼如下: Thread t = new Thread();
Time of Update: 2017-01-19
複製代碼 代碼如下: package com.cjonline.foundation.authority.pojo;import java.util.ArrayList;import java.util.Collections;import java.util.Iterator;import java.util.List;import org.apache.log4j.Logger;import com.cjonline.foundation.util.CheckNullEmpty;
Time of Update: 2017-01-19
定義:當對象間存在一對多關聯性時,則使用觀察者模式(Observer Pattern)。比如,當一個對象被修改時,則會自動通知它的依賴對象。特點: 1、觀察者和被觀察者是抽象耦合的。 2、建立一套觸發機制。企業級開發和常用架構中的應用:Java內建觀察者類,servlet中的filter,分布式的訊息佇列執行個體:public class Demo { public static void main(String[]
Time of Update: 2017-01-19
如下所示:String agent = request.getHeader("user-agent"); System.out.println(agent); StringTokenizer st = new StringTokenizer(agent,";"); st.nextToken(); String userbrowser = st.nextToken(); System.out.println(userbrowser); String useros = st.nextToken();
Time of Update: 2017-01-19
控制語句——for練習語句的嵌套應用累加求和,計數器迴圈嵌套一、語句的嵌套應用語句嵌套形式。其實就是語句中還有語句。形式多種多樣,沒有固定的格式和套路。1、列印偶數for(int x=1;x<=10;x++){ if(x%2==1)continue; System.out.prinln(“x=”+x);}二、累加求和,計數器1、擷取1~10的和,並列印。思路://1,定義變數用於儲存不斷變化的和。
Time of Update: 2017-01-19
我們知道如果用java串連資料庫,大量的SQL代碼,我們就想通過一種工具來操作資料庫,我們首先想到的就是JDBC,但是想更好的針對類的屬性進行操作,我們會選擇Hibernate。那麼Hibernate 原理是什麼呢?hibernate可以理解為是一個中介軟體它負責把java程式的sql語句接收過來發送到資料庫,而資料庫返回來的資訊hibernate接收之後直接產生一個對象傳給java。一 首先我們先瞭解一下hibernate的工作7個流程:1.讀取並解析設定檔
Time of Update: 2017-01-19
方法實現很簡單,提供兩種方式:一種是序列化成資料流,前提是所有對象(對象中包含的對象...)都需要繼承Serializable介面,如果都繼承了那很容易,如果沒有繼承,而且也不打算修改所有類,可以用第二種方式。第二種是將對象序列化為json,通過json來實現拷貝,這種方式需要用到net.sf.json.JSONObject。具體代碼如下:複製代碼 代碼如下: public class DeepCopy {
Time of Update: 2017-01-19
如下所示:package cn.sunzn.md5;import java.security.MessageDigest;import java.security.NoSuchAlgorithmException;public class Str2MD5 { public static void main(String[] args) { MD5("sunzn"); } private static String MD5(String sourceStr) { String
Time of Update: 2017-01-19
廢話不多說了,給大家貼關鍵代碼了,具體代碼如下所示:import java.io.File;import java.io.FileOutputStream;import java.io.IOException;import java.io.InputStream;import java.util.Enumeration;import org.apache.tools.zip.ZipEntry;import org.apache.tools.zip.ZipFile;import
Time of Update: 2017-01-19
Cookie和Session都是為了保持使用者的訪問狀態,一方面為了方便業務實現,另一方面為了簡化服務端的程式設計,提高訪問效能。Cookie是用戶端(也就是瀏覽器端)的技術,設定了Cookie之後,每次訪問服務端,請求中都會帶上Cookie;Session是服務端技術,在服務端儲存使用者的訪問資訊。 使用Cookie傳遞資訊,隨著Cookie個數增多和訪問量增大,它佔用的頻寬會越來越大;使用Session儲存資訊,最大的弱點就是不容易在多台伺服器之間共用。1