需求:因為測試伺服器有多台,一般都是通過綁定host來訪問某一台測試伺服器,現在就想用代碼來實現綁定host的功能,這樣就省去了修改本機host的步驟。以下是用代理來實現:public static HttpURLConnection getConnection(String urlstr, String proxyhost)throws Exception { URL url = new URL(urlstr); byte ip[] = new byte[4];
寫了很多年的java程式就一定是一個及格的java程式員嗎?我不敢說自己就是一個合格的java程式員,勉強算及格吧。我們從項目中最常用的String說起吧1.關於replace和replaceAll很多哥們對這兩個兄弟的認識就是:replace只進行一次替換,replaceAll是全部替換。replace是一般字元串替換,replaceAll是正則替換,這個要怪就怪Sun的工程師們給這兩個方法取名取得不好,replaceAll如果改名叫做replaceRegex就好多了。此外:replaceAl
java代碼很容易被反編譯,以下使用proguard來保護我們的代碼proguard選項很多,容易迷糊,現在就把我的配置寫下來(實際使用中),以供參考 到http://proguard.sourceforge.net下載proguard(如不能下載,可到:http://download.csdn.net/detail/odian1/4873373下載proguard程式)Input/Output標籤:這裡選擇需要混淆的代碼目錄和輸出混淆後代碼的目錄以及項目所有需要的lib包。需混淆的代碼可以已j
(5)接著上篇,我們繼續來說一下集合類遍曆時候可能會遇見的一個小問題-ConcurrentModificationException我們以ArrayList為例,對List進行遍曆的時候,可以使用以下三種形式:(1)使用索引(2)使用Iterator(3)使用增強for迴圈如果在遍曆的過程中需要刪除list中的元素,使用不當就會觸發:java.util.ConcurrentModificationExceptionpublic static void main(String[] args) {
參考:http://www.jroller.com/maxim/entry/again_about_determining_size_of參考:http://blog.csdn.net/xieyuooo/article/details/7068216
java代碼很容易被反編譯,以下使用proguard來保護我們的代碼proguard選項很多,容易迷糊,現在就把我的配置寫下來(實際使用中),以供參考 1.到http://proguard.sourceforge.net下載proguard(如不能下載,可到:http://download.csdn.net/detail/odian1/4873373下載proguard程式)2.準備好你的jar包,我在這裡舉例叫做test.jar。3.解壓proguard,執行
這段時間,為了複習Java2的GUI編程,參考有關資料,寫了一個掃雷的小程式,只是寫得很清楚,希望能給大家一些協助!呵呵/** * @(#)Block.java *該類用於建立Block對象,將其放到遊戲區的每個格子裡面,裡面存放著該“格子”的一些屬性: * ************************* * ——1. String name -->是雷時,存入“雷” * 屬性 ——|-2. boolean boo
最近在學習Android但是在學習過程中發現CharSequence這個資料類型,自己真的是不瞭解,在上網找了找,原來這是一個介面:在JDK1.4中,引入了CharSequence介面,實現了這個介面的類有:CharBuffer、String、StringBuffer、StringBuilder這個四個類。 CharBuffer為nio裡面用的一個類,String實現這個介面理所當然,StringBuffer也是一個CharSequence,StringBuilder是Java抄襲C#的一個類,
"Hello World"的代碼固然簡單,不過其中的幾個重要概念(類)和
最近在做一個Android上面的一個檔案管理工具的apk,有檔案名稱重新命名和剪下的功能。一般的思路如下:重新命名:先建立一個檔案,複製原先的檔案,讀寫檔案,最後刪除原先檔案剪下:先複製原先的檔案,刪除原先檔案以上方法是有bug的,如果磁碟的空間不夠的話, 則會出現錯誤。同時Java的File類中提供重名和剪下的功能。,原先怎麼沒有發現呢。下面是Java Api中的方法介紹renameTopublic boolean
從作業系統的角度講,os會維護一個ready queue(就緒的線程隊列)。並且在某一時刻cpu只為ready queue中位於隊列頭部的線程服務。但是當前正在被服務的線程可能覺得cpu的服務品質不夠好,於是提前退出,這就是yield。或者當前正在被服務的線程需要睡一會,醒來後繼續被服務,這就是sleep。 sleep方法不推薦使用,可用wait。線程退出最好自己實現,在運行狀態中一直檢驗一個狀態,如果這個狀態為真,就一直運行,如果外界更改了這個狀態變數,那麼線程就停止運行。
java緩衝技術一(轉)看一粒沙中的世界, 一朵野花中的天堂。 把無限握於掌中, 把永恒握於瞬間。——威廉• 布萊克 開始討論緩衝之前,讓我們先來討論討論另外一個問題:理論和實踐.從ahuaxuan接觸的程式員來看,有的程式員偏實踐,有的程式員偏理論,但是這都是不好的行為,理論和實踐同樣重要,我們在做很多核心的演算法的時候,沒有理論根本無從下手,而在我們多年的實踐中,不總結理論就不能加深自己的理解.所以理論和實踐同等重要.
一、反射的概念 :反射的概念是由Smith在1982年首次提出的,主要是指程式可以訪問、檢測和修改它本身狀態或行為的一種能力。這一概念的提出很快引發了電腦科學領域關於應用反射性的研究。它首先被程式語言的設計領域所採用,並在Lisp和物件導向方面取得了成績。其中LEAD/LEAD++ 、OpenC++ 、MetaXa和OpenJava等就是基於反射機制的語言。最近,反射機制也被應用到了視窗系統、作業系統和檔案系統中。
打個比方:一個object就像一個大房子,大門永遠開啟。房子裡有很多房間(也就是方法)。這些房間有上鎖的(synchronized方法), 和不上鎖之分(普通方法)。房門口放著一把鑰匙(key),這把鑰匙可以開啟所有上鎖的房間。另外我把所有想調用該對象方法的線程比喻成想進入這房子某個
java 中 image 和 byte[] 相互轉換 java 中 image 和 byte[]相互轉換可惡的…………其實也挺好的 只是把好不容易寫出來的東西記下來,怕忘了…… 下面,我來介紹一個簡單的 byte[] toimage, 我們只需要一個儲存了圖片資訊的二進位串(byte[]) 然後,這樣:InputStream buffin = new ByteArrayInputStream(/*二進位串*/,
打個比方:一個object就像一個大房子,大門永遠開啟。房子裡有很多房間(也就是方法)。這些房間有上鎖的(synchronized方法), 和不上鎖之分(普通方法)。房門口放著一把鑰匙(key),這把鑰匙可以開啟所有上鎖的房間。另外我把所有想調用該對象方法的線程比喻成想進入這房子某個
轉自 http://blog.csdn.net/foamflower/archive/2009/10/29/4744862.aspx 像移動網關一樣,iisforward這個ISAPI過濾器也會對request對象進行再封裝,附加一些WLS要用的頭資訊。這種情況下,直接用request.getRemoteAddr()是無法取到真正的客戶IP的。實際的iisforward附加頭如下:WL-Proxy-Client-IP=211.161.1.239Proxy-Client-IP=211.161.1
經常用到的Regex的匯總,後面還會繼續補充: 1、校正使用者名稱,只能輸入數字、字母、漢字、_-,長度在1~20. String userName = "wsdf"; String regex = "^[a-zA-Z0-9-_\\u4e00-\\u9fa5]{1,20}$"; Pattern p = Pattern.compile(regex); Matcher m = p.matcher(userName);
String : 字串類型一、建構函式String(byte[ ] bytes):通過byte數組構造字串對象。String(char[ ] value):通過char數組構造字串對象。String(Sting original):構造一個original的副本。即:拷貝一個original。String(StringBuffer buffer):通過StringBuffer數組構造字串對象。 例如:byte[] b = {'a','b','c','d','e','f','g','h','i',
Java Decompiler,:http://java.decompiler.free.fr/jd-gui/#downloads ,現在的最新版本是 0.2.8,用c++編寫,支援ms,mac,linux三種os,功能如下: 1, 支援對整個jar檔案的編譯,這樣可以將編譯後的檔案關聯到 eclipse 中的 lib 的jar包中,便於查看源檔案。 2, 快速尋找源檔案功能 : ctrl+shift+t 3, 2. 支援眾多Java編譯器的反編譯(支援泛型,