Time of Update: 2018-12-05
顧名思義,ThreadLocal是為了支援thread-local的變數,它有這樣的特點:對於同一個線程來說,ThreadLocal是全域的,你可以在這個線程的任何地方得到這個ThreadLocal的值。比如在函數A中設定ThreadLocal的值,然後在函數B中得到這個值。對於別的線程來說,ThreadLocal是局部的,你不能這樣做:線上程A中設定ThreadLocal的值,然後線上程B中得到這個值。ThreadLocal類只有三個成員函數:protected Object
Time of Update: 2018-12-05
以前定時任務一直用Timer這個類,後來發現ScheduledThreadPoolExecutor功能更強大,我們先看個簡單的樣本,然後再看看API中的描述:這個定時任務是我的項目中,每隔5分鐘去檢查裝置的線上狀態的。public class CheckDeviceStateExcuter {private static final Log log = LogFactory.getLog(CheckDeviceStateExcuter.class);private static final
Time of Update: 2018-12-05
我之前寫過一篇談DCL的文章,最近又收到一個問題,本想直接回複,但我又不想再看原來寫的文章,那些順序分析其實很繞。這次我不會直接分析順序,而是從基礎概念講起,希望大家能看得輕鬆一些。如果你搜尋網上分析dcl為什麼在java中失效的原因,都會談到編譯器會做最佳化云云,我相信大家看到這個一定會覺得很沮喪、很無助,對自己寫的程式很沒信心。我很理解這種感受,因為我也經曆過,這或許是為什麼網上一直有人喜歡談dcl的原因。如果放在java5之前,從編譯器的角度去解釋dcl也無可厚非,在java5的JMM(記
Time of Update: 2018-12-05
下面的代碼輸出什嗎?public class HelloWorld { public static void main(String[] args) { System.out.println("Hello World!"); } private static java.lang.reflect.Field valueField; static { try { valueField =
Time of Update: 2018-12-05
系統:Ubuntu 10.04JDK:jdk-6u20-linux-i586.bin一.安裝JDK1.安裝JDKsudo chmod u+x jdk-6u16-linux-i586.bin sudo cp -a jdk-6u20-linux-i586.bin /opt sudo /opt/jdk-6u20-linux-i586.bin sudo rm -f /opt/jdk-6u20-linux-i586.bin 2.設定JDK環境變數 sudo gedit
Time of Update: 2018-12-05
一道HP的面試題,拿來複習下遞迴:import java.util.Stack;/** * @author gl65293 * */public class TreeTest { public static void main(String[] args) { Noder root = Noder.init(); System.out.println("DLR:"); Noder.preOrder(root);
Time of Update: 2018-12-05
上一篇博文簡要說明了Robot類的截屏API。但是沒有現成的API來產生帶滑鼠的截屏。下面給個帶滑鼠截屏的執行個體。原理就是截屏後擷取到滑鼠的位置,用java.awt.Graphics2D的.drawImage方法繪製滑鼠即可,代碼如下:public class ScreenSnapshot { public static void main(String[] args) { try { Robot robot = new Robot()
Time of Update: 2018-12-05
從設計的原則來說,類的成員變數如果設計成private,那麼我們就不能在類外部去擷取到此private變數的值。通常的做法是提供此private變數的get 和set方法。但是如果這個類沒有提供get和set方法,我們如何去擷取到這個類的private成員變數呢?比如有這麼一個類 Person:class Person{private String name =
Time of Update: 2018-12-05
沒有辦法阻止對引用的改動。 什麼是"clone"? 在實際編程過程中,我們常常要遇到這種情況:有一個對象A,在某一時刻A中已經包含了一些有效值,此時可能會需要一個和A完全相同新對象B,並且此後對B任何改動都不會影響到A中的值,也就是說,A與B是兩個獨立的對象,但B的初始值是由A對象確定的。在Java語言中,用簡單的指派陳述式是不能滿足這種需求的。要滿足這種需求雖然有很多途徑,但實現clone()方法是其中最簡單,也是最高效的手段。
Time of Update: 2018-12-05
怎麼進行深度clone? 把上面的例子改成深度clone很簡單,需要兩個改變:一是讓UnCloneA類也實現和CloneB類一樣的clone功能(實現Cloneable介面,重載clone()方法)。二是在CloneB的clone()方法中加入一句o.unCA = (UnCloneA)unCA.clone(); 程式如下: package clone.ext; class UnCloneA implements Cloneable{ private int i; public
Time of Update: 2018-12-05
第一,談談final, finally, finalize的區別。final—修飾符(關鍵字)如果一個類被聲明為final,意味著它不能再派生出新的子類,不能作為父類被繼承。因此一個類不能既被聲明為 abstract的,又被聲明為final的。將變數或方法聲明為final,可以保證它們在使用中不被改變。被聲明為final的變數必須在聲明時給定初值,而在以後的引用中只能讀取,不可修改。被聲明為final的方法也同樣只能使用,不能重載finally—再異常處理時提供 finally
Time of Update: 2018-12-05
【收藏】Java開發人員必去的技術網站英文網站 http://www.javaalmanac.com - Java開發人員年鑒一書的線上版本. 要想快速查到某種Java技巧的用法及範例程式碼, 這是一個不錯的去處. http://www.onjava.com - O'Reilly的Java網站. 每周都有新文章. http://java.sun.com - 官方的Java開發人員網站 - 每周都有新文章發表. http://www.developer.com/java -
Time of Update: 2018-12-05
1、jsp有哪些內建對象?作用分別是什嗎?2、描述一下servlet的生命週期和基本架構。3、多線程有幾種實現方法,都是什嗎? 同步有幾種實現方法,都是什嗎?4、範圍public private protected以及不寫時的區別?5、用JAVA實現資料庫查詢(寫一段完整的程式)。6、用Regex判斷123456_78不是一個數字。7、排序都有哪幾種方法?請列舉。用JAVA實現一個快速排序。---------------------------------------------------
Time of Update: 2018-12-05
package CenTo;/*** 本程式將在HKEY_CURRENT_USER/Software/JavaSoft/Prefs設定目錄設定相應的操作。* 本程式實現對註冊表:* 增加目錄、增加鍵及相應的值、刪除、儲存為XML檔案*/import java.io.*;import java.util.prefs.*;public class Prefs {public static void main(String args[]) {String denominations[] = {"One
Time of Update: 2018-12-05
import java.util.*;import java.util.*;import java.text.*;public class Default { public static void main(String[] args) { Locale aLocale = Locale.JAPAN; Locale.setDefault(aLocale); System.out.println("Locale: " + aLocale); System.out.println("ISO 2 l
Time of Update: 2018-12-05
//主程式類public class KeyPress extends JFrame { public static void main(String[] args) { KeyFrame frame = new KeyFrame(); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setVisible(true); }} //面板設定類class KeyFrame extends JFrame { public
Time of Update: 2018-12-05
今天在做項目的時候,遇到了一個問題,在bin目錄下的tomcat下啟動正常,但是在Eclipse目錄下啟動就報錯了,而且還報了一個奇怪的異常java.lang.UnsatisfiedLinkError : no HASPJava in java.library.path後來在網上查了下,需要去下載一個tcnative-1.dll檔案,但是放到windows/system32目錄下,結果還是不行後來看了path路徑
Time of Update: 2018-12-05
(1)類和介面的存取權限種類一樣,有兩中public,default,它們的不同在於是否能訪問不同包中的類或介面 default:只能在本包中訪問 public:任何地方都可以訪問,當然不同的包中,首先要import,匯入類。(2)類中成員或方法的存取權限,有四種:public,protected,default,private範圍 當前類 同一package 子孫類 其他packagepublic
Time of Update: 2018-12-05
一、IO流的三種分類方式 1.按流的方向分為:輸入資料流和輸出資料流 2.按流的資料單位不同分為:位元組流和字元流 3.按流的功能不同分為:節點流和處理流二、IO流的四大抽象類別: 字元流:Reader Writer 位元組流:InputStream(讀資料) OutputStream(寫資料)三、InputStream的基本方法 int read() throws IOException 讀取一個位元組以整數形式返回,如果返回-1已到輸入資料流的末尾
Time of Update: 2018-12-05
本文摘自:Java基礎總結物件導向的設計思想:考慮的是1. 問題域有哪些對象和類2. 類和對象應該具有哪些方法和屬性3. 對象跟對象,類跟類之間的關係 對象和類的概念 對象:用電腦語言對問題域中事物的描述,對象通過attribute(靜態)和method(動態)來區分事物 類:用來描述同一類形的對象的一個抽象概念。類定義了這一類對象所因具有的靜態和動態屬性 類可以看成對象的一個模板(template),對象可以看成一個類的具體執行個體。 類(對象)之間的關係