java代理有jdk動態代理、cglib代理,這裡只說下jdk動態代理,jdk動態代理主要使用的是java反射機制(既java.lang.reflect包) 原理是(歌手、經紀人做例子): 建立一個公用的介面,比如:歌手public interface Singer; 用具體的類實現介面,比如:周杰倫,他是歌手所以實現Singer這個類,class MySinger implements Singer
Queue ------------ 1.ArrayDeque, (數組雙端隊列) 2.PriorityQueue, (優先順序隊列) 3.ConcurrentLinkedQueue, (基於鏈表的並發隊列) 4.DelayQueue, (延期阻塞隊列)(阻塞隊列實現了BlockingQueue介面) 5.ArrayBlockingQueue, (基於數組的並發阻塞隊列) 6.LinkedBlockingQueue, (基於鏈表的FIFO阻塞隊列) 7.LinkedBlockingDeque,
先來看看效果:測試一:原圖:效果圖:測試二:原圖:效果圖:代碼部分:複製代碼 代碼如下: /** * */ package com.b510; import java.awt.Rectangle; import java.awt.image.BufferedImage; import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.util.Date; import
演算法是在有限步驟內求解某一問題所使用的一組定義明確的規則。通俗點說,就是電腦解題的過程。在這個過程中,無論是形成解題思路還是編寫程式,都是在實施某種演算法。前者是推理實現的演算法,後者是操作實現的演算法。 一個演算法應該具有以下五個重要的特徵: 1.有窮性: 一個演算法必須保證執行有限步之後結束; 2.確切性: 演算法的每一步驟必須有確切的定義; 3.輸入:一個演算法有0個或多個輸入,以刻畫運算對象的初始情況;
如Java中的容器Map: for(Person person : pList){ if(person.getGender()==Gender.MALE){ pList.remove(person); //不能在遍曆期間進行 remove這個操作 } } Map在遍曆時候通常 現獲得其索引值的集合Set,然後用迭代器Iterator來對Map進行遍曆。
1、String 的==與equal() 在對字串的相等判斷,==判斷的是地址是否相同,equal()判斷的是字元值是否相同。大多數時候==跟equal()的結果都是相同的。這是因為String對象是不變模式的,如果你不是明確地new一個String對象,Java對於String對象的儲存預設的是會把新產生的String 對象放到一個緩衝區,然後每次判斷緩衝區中是否已經有了這個對象,如果有了,那麼後建立的同樣字元值的String對象也會指向最初建立是該字元值對象的地址。也就是說字元值相同的時候,
toHexString public static String toHexString(int i)以十六進位的不帶正負號的整數形式返回一個整數參數的字串表示形式。 如果參數為負,那麼不帶正負號的整數值為參數加上 232;否則等於該參數。將該值轉換為十六進位(基數 16)的無前置 0 的 ASCII 數字字串。如果無符號數的大小值為零,則用一個零字元 '0' ('\u0030') 表示它;否則,無符號數大小的表示形式中的第一個字元將不是零字元。用以下字元作為十六進位數字: 0123456789
一、EL簡介 1.文法結構 ${expression} 2.[]與.運算子 EL 提供.和[]兩種運算子來存取資料。 當要存取的屬性名稱中包含一些特殊字元,如.或?等並非字母或數位符號,就一定要使用 []。例如: ${user.My-Name}應當改為${user["My-Name"] } 如果要動態取值時,就可以用[]來做,而.無法做到動態取值。例如: ${sessionScope.user[data]}中data 是一個變數 3.變數
WORD: import org.apache.lucene.document.Document; import org.apache.lucene.document.Field; import org.apache.poi.hwpf.extractor.WordExtractor; import java.io.File; import java.io.InputStream; import java.io.FileInputStream; import
先看執行個體 代碼如下 複製代碼 代碼如下: classip { privatestaticlongiptolong(stringstrip) //將127.0.0.1形式的ip地址轉換成10進位整數,這裡沒有進行任何錯誤處理 { intj=0; inti=0; long[]ip=newlong[4]; intposition1=strip.indexof("."); intposition2=strip.indexof(".",position1+1); intposition3=strip.
super是Java語言的保留字,用來指向類的超類. 假設在Teacher類中定義了一個類變數boolean gender; 在子類的方法中gender就應該是指子類的gender變數,如果要引用超類的gender變數的話就必須使用 super.genderthis對象在類的構造方法中,要給對象的域進行初始化,這時如果參數和類變數同名,則類變數的名字將會被參數名屏蔽, 必須知道當前的對象名稱,才能用對象名引用對象的域 複製代碼 代碼如下: public DotLoc(double
通常我們為了更好的緩解伺服器壓力,和增強搜尋引擎的友好面,都將文章內容產生靜態頁面。 但是有時為了能即時的顯示一些資訊,或者還想運用動態指令碼解決一些問題,不能用靜態方式來展示網站內容,必須用到動態網頁面顯示。 這樣以來,就損失了對搜尋引擎的友好面,怎麼樣在兩者之間找個中間方法呢,如何增強你網站中地址的可讀性和讓搜尋引擎快速的收錄到你的網站? 這就需要你美化你的網頁的地址,這就產生了偽靜態技術,也就是我們常說的Url Rewriter重寫技術。就是當我們訪問一個頁面時,地址欄中展示出來的是以“.
equals函數在基類object中已經定義,源碼如下 複製代碼 代碼如下: public boolean equals(Object obj) { return (this == obj); } 從源碼中可以看出預設的equals()方法與“==”是一致的,都是比較的對象的引用,而非對象值(這裡與我們常識中equals()用於對象的比較是相餑的,原因是java中的大多數類都重寫了equals()方法,下面已String類舉例,String類equals()方法源碼如下:) [java]
1.截取不帶尾碼的檔案名稱 String resourceName=resourceSearchBean.getFileName(); if(StringHelper.isNotEmpty(resourceName)&&resourceName.length()>0); { int dot = resourceName.lastIndexOf('.'); if ((dot >-1) && (dot < (resourceName.length()))) { return
abstractclass和interface是Java語言中對於抽象類別定義進行支援的兩種機制,正是由於這兩種機制的存在,才賦予了Java強大的物件導向能力。abstractclass和interface之間在對於抽象類別定義的支援方面具有很大的相似性,甚至可以相互替換,因此很多開發人員在進行抽象類別定義時對於abstractclass和interface的選擇顯得比較隨意。其實,兩者之間還是有很大的區別的,對於它們的選擇甚至反映出對於問題領域本質的理解、對於設計意圖的理解是否正確、合理。本文
★ 編程思路: java.security包中的MessageDigest類提供了計算訊息摘要的方法, 首先產生對象,執行其update( )方法可以將未經處理資料傳遞給該對象,然後執行其digest( )方法即可得到訊息摘要。具體步驟如下: (1)產生MessageDigest對象 MessageDigest m=MessageDigest.getInstance("MD5");
N皇后問題是一個典型的約束求解問題,利用遞迴機制,可以很快的得到結果。 N皇后問題的描述: 在一個n*n的棋盤上,擺放n個皇后,要求每個皇后所在行、列、以及兩個對角線上不能出現其他的皇后,否則這些皇后之間將會相互攻擊。如下圖所示。 利用遞迴機制,可以很容易的求解n皇后問題。針對八皇后,總共有92種解。下面將給出N-皇后問題的一般求解代碼,在這裡代碼是使用java編碼的。 總共設計了三個類,一個是皇后類(Queen),一個棋盤類(Board),一個是求解主程式類(NQueens)。具體代碼如下:
匿名類是不能有名稱的類,所以沒辦法引用它們。必須在建立時,作為new語句的一部分來聲明它們。這就要採用另一種形式的new語句,如下所示: new <類或介面> <類的主體>
什麼是線程同步? 當使用多個線程來訪問同一個資料時,非常容易出現安全執行緒問題(比如多個線程都在操作同一資料導致資料不一致),所以我們用同步機制來解決這些問題。 實現同步機制有兩個方法: 1。同步代碼塊: synchronized(同一個資料){} 同一個資料:就是N條線程同時訪問一個資料。 2。 同步方法: public synchronized 資料傳回型別 方法名(){} 就是使用 synchronized
含有abstract修飾符的class即為抽象類別,abstract 類不能建立的執行個體對象。含有abstract方法的類必須定義為abstract class,abstract class類中的方法不必是抽象的。abstract class類中定義抽象方法必須在具體(Concrete)子類中實現,所以,不能有抽象構造方法或抽象靜態方法。如果的子類沒有實現抽象父類中的所有抽象方法,那麼子類也必須定義為abstract類型。