Time of Update: 2018-12-06
通過Executors建立線程池的時候調用newFixedThreadPool方法,繼承的大概結構如下:建立完成之後,線程池的結構如下:在建立完線程池之後就可以調用execute方法來執行給定的Runnable了,具體的代碼如下: 1 public void execute(Runnable command) { 2 if (command == null) 3 throw new NullPointerException(); 4
Time of Update: 2018-12-06
http://waterdh.iteye.com/blog/520399 本文主要是根據classloader的特性,結合實際產品環境中遇到的問題,來探討下JAVA應用中局部模組熱部署的可行性。
Time of Update: 2018-12-06
http://www.cnblogs.com/bronte/articles/2321188.html 本文介紹的Semaphore實現基於synchronized,wait()和notify/notifyAll(),這是java並發包之前的典型實現方式.在eclipse的源碼中可以找到不少這樣的案例,下文中也會把eclipse中的幾個實作類別作為案例以分析之.
Time of Update: 2018-12-06
http://blog.csdn.net/dlite/article/details/4218105 在曆史上,Java試圖提供過搶佔式限制中斷,但問題多多,例如前文介紹的已被廢棄的Thread.stop、Thread.suspend和 Thread.resume等。另一方面,出於Java應用代碼的健壯性的考慮,降低了編程門檻,減少不清楚底層機制的程式員無意破壞系統的機率。
Time of Update: 2018-12-06
C++的運行時類型識別明白,但是JAVA的卻不熟悉,今天只好到網上查下,百度之,很快就找到了結果。使用instanceof關鍵字在運行時動態判斷執行個體的類型Java的instance關鍵字可以實現"運行時類型識別"(Run-time type identification, RTTI)Java的instance關鍵字可以實現"運行時類型識別"(Run-time type identification,
Time of Update: 2018-12-06
用Java比較JRE版本 很多程式採用了較高版本的JDk開發,這些程式可能使用了一下高版本 JDK的 特 性,在低版本的JDK上無法運行或者無法顯示出足夠好的效果,所 以在程式運 行之前 需要判斷當前系統中的JRE版本,下面給出一個版本判斷的類。 VersionChecker.java
Time of Update: 2018-12-06
jvm classLoader architecture :a, Bootstrap ClassLoader/啟動類載入器主要負責jdk_home/lib目錄下的核心 api 或 -Xbootclasspath 選項指定的jar封裝入工作.b, Extension ClassLoader/擴充類載入器主要負責jdk_home/lib/ext目錄下的jar包或 -Djava.ext.dirs 指定目錄下的jar封裝入工作c, System ClassLoader/系統類別載入器主要負責java -
Time of Update: 2018-12-06
/** * desciption:java create xml file * author:maomao * datetime:2007/04/04 23:42*/package com.xh.xml;import java.io.FileOutputStream;import java.io.IOException;import org.jdom.Document;import org.jdom.Element;import org.jdom.JDOMException;import
Time of Update: 2018-12-06
ASM 是一個 Java 位元組碼操控架構。它能被用來動態產生類或者增強既有類的功能。ASM 可以直接產生二進位 class 檔案,也可以在類被載入入 JAVA 虛擬機器之前動態改變類行為。Java class 被儲存在嚴格格式定義的 .class 檔案裡,這些類檔案擁有足夠的中繼資料來解析類中的所有元素:類名稱、方法、屬性以及 Java 位元組碼(指令)。ASM 從類檔案中讀入資訊後,能夠改變類行為,分析類資訊,甚至能夠根據使用者要求產生新類。
Time of Update: 2018-12-06
今天用split方法分割一個類似"9580|9570|9571"的字串,用Arrays.asList將String[]轉成List,結果卻是這樣[9,5,8,0,|,9,5,7,0,|,9,5,7,1]列出幾個要點 首先java doc裡已經說明, split的參數是reg, 即Regex, 如果用"|"分割, 則需使用"\\|"用* 分隔字串運行將拋出java.util.regex.PatternSyntaxException異常,用加號 + 也是如此, 因此也應加入"\\"如果字串中包含"\
Time of Update: 2018-12-06
讀檔案:BufferedReader從字元輸入資料流中讀取文本,緩衝各個字元,從而提供字元、數組和行的高效讀取。可以指定緩衝區的大小,或者可使用預設的大小。大多數情況下,預設值就足夠大了。通常,Reader 所作的每個讀取請求都會導致對基礎字元或位元組流進行相應的讀取請求。因此,建議用 BufferedReader 封裝所有其 read() 操作可能開銷很高的 Reader(如 FileReader 和 InputStreamReader)。例如, BufferedReader in =
Time of Update: 2018-12-06
2.6.3
Time of Update: 2018-12-06
看了一些Java調用WebService介面的例子,很多都是Ctrl+C,Ctrl+V的,其中有很多拿來使用後發現有錯誤,令人鬱悶,特此寫了一篇經過測試的,只是一個小例子。服務端(為用戶端提供Webservice介面): 使用工具:myeclipse-8.6.1-win32,apache-tomcat-7.0.11 開發步驟:1.建立工程 File->New->Web Service Project,彈出Web Service
Time of Update: 2018-12-06
聲明:一下內容主要來自網路,本來在此基礎上根據自己的成功經驗做了一些淺陋的(但有價值的)備忘說明和修改。(本人也是ubuntu 11.10版本,但是是64位的,因此安裝的java也是64位版本。)升級到ubuntu 11.10之後,由於庫裡沒有sun-java6-jdk,需要自行安裝。因此,到Oracle網站下載了Java 6u27(為什麼不下java7呢?因為目前支援的軟體不多,另外如果真要的話,也可以很方便的切換到Java7),然後就可以開始手動安裝了。java jdk與jre的地址分別是:
Time of Update: 2018-12-06
編寫Java程式時,經常會遇到一個方法需要多個參數的情況。例如一個求和方法:public int add(int[] list){ int sum = 0; for (int i=0;i<list.length;i++) sum += list[i]; return sum;}當然也可以利用重載的方式:public int add(int a,int b){ return a + b;}public int add(int a,int b,int c){
Time of Update: 2018-12-06
java 編碼 UTF-8、ISO-8859-1、GBK Java支援UTF-8、ISO-8859-1、GBK等各種字型編碼,可筆者發現Java中字型編碼的問題仍難倒了不少程式員,網上雖然也有不少關於在Java中如何正確顯示中文的文章,但都不夠全面,筆者特意總結如下。 影響Java中字型編碼正確顯示的有幾個因素: 1)資料庫的串連方式; 2)網頁中使用的字型編碼; 3)資料庫裡存放資料的字型編碼;
Time of Update: 2018-12-06
RSS是一個標準的XML檔案,Rss閱讀器可以讀取這個XML檔案獲得文章的資訊,使使用者可以通過Rss閱讀器而非瀏覽器閱讀Blog,我們只要動態產生這個XML檔案便可以了。RSSLibJ是一個專門讀取和產生RSS的小巧實用的Java庫,大小僅25k,可以從http://sourceforge.net/projects/rsslibj/下載rsslibj-1_0RC2.jar和它需要的EXMLjar兩個檔案,然後複製到web/WEB-INF/lib/下。 rsslibj-1_0RC2.jar:h
Time of Update: 2018-12-06
import java.io.File; import java.io.FileOutputStream; import java.io.*; public class FileTest { public FileTest() { } public static void main(String[] args) { FileOutputStream out = null; FileOutputStream
Time of Update: 2018-12-06
最近在做代碼最佳化時學習和研究了下JAVA多線程的使用,看了菜鳥們的見解後做了下總結。1.JAVA多線程實現方式JAVA多線程實現方式主要有三種:繼承Thread類、實現Runnable介面、使用ExecutorService、Callable、Future實現有返回結果的多線程。其中前兩種方式線程執行完後都沒有傳回值,只有最後一種是帶傳回值的。2.繼承Thread類實現多線程繼承Thread類的方法儘管被我列為一種多線程實現方式,但Thread本質上也是實現了Runnable介面的一個執行個體
Time of Update: 2018-12-06
/**CountDownLatch類是一個同步計數器,構造時傳入int參數,該參數就是計數器的初始值,每調用一次countDown()方法,計數器減1,計數器大於0 時,await()方法會阻塞程式繼續執行CountDownLatch如其所寫,是一個倒計數的鎖存器,當計數減至0時觸發特定的事件。利用這種特性,可以讓主線程等待子線程的結束。下面以一個類比運動員比賽的例子加以說明。*/ import java.util.concurrent.CountDownLatch;import