Time of Update: 2017-01-18
在曆史上,Java試圖提供過搶佔式限制中斷,但問題多多,例如前文介紹的已被廢棄的Thread.stop、Thread.suspend和 Thread.resume等。另一方面,出於Java應用代碼的健壯性的考慮,降低了編程門檻,減少不清楚底層機制的程式員無意破壞系統的機率。 如今,Java的線程調度不提供搶佔式中斷,而採用協作式的中斷。其實,協作式的中斷,原理很簡單,就是輪詢某個表示中斷的標記,我們在任何普通代碼的中都可以實現。 例如下面的代碼: &
Time of Update: 2017-01-18
interrupt方法interrupt字面上是中斷的意思,但在Java裡Thread.interrupt()方法實際上通過某種方式通知線程,並不會直接中止該線程。具體做什麼事情由寫代碼的人決定,通常我們會中止該線程。 如果線程在調用Object類的wait()、wait(long)或wait(long, int)方法,或者該類的 join() 、join(long) 、join(long, int) 、sleep(long) 或 sleep(long,
Time of Update: 2017-01-18
在傳統的Java編程中,你將不再需要從記憶體中處理Java對象或位置。 當你在論壇上討論這一點,提出的第一個問題是為什麼你需要知道Java對象的地址? 它是一種有效問題。
Time of Update: 2017-01-18
動態代理其實就是java.lang.reflect.Proxy類動態根據您指定的所有介面產生一個class byte,該class會繼承Proxy類,並實現所有你指定的介面(您在參數中傳入的介面數組);然後再利用您指定的classloader將 class byte載入進系統,最後產生這樣一個類的對象,並初始化該對象的一些值,如invocationHandler,以即所有的介面對應的Method成員。 初始化之後將對象返回給調用的用戶端。這樣用戶端拿到的就是一個實現你所有的介面的Proxy對象。
Time of Update: 2017-01-18
Java虛擬機器指令由一個位元組長度的、代表某種特定含義的作業碼(Opcode)以及其後的零個至多個代表此巨集指令引數的運算元構成。虛擬機器中許多指令並不包含運算元,只有一個作業碼。若忽略異常,JVM解譯器使用一下為代碼即可有效工作。複製代碼 代碼如下:do{ 自動計算PC寄存器以及從PC寄存器的位置取出作業碼 if(存在運算元) 取出運算元;
Time of Update: 2017-01-18
dom是個功能強大的解析工具,適用於小文檔為什麼這麼說呢?因為它會把整篇xml文檔裝載進記憶體中,形成一顆文檔對象樹總之聽起來怪嚇人的,不過使用它來讀取點小東西相對Sax而言還是挺方便的至於它的增刪操作等,我是不打算寫了,在我看教程的時候我就差點被那代碼給醜到吐了也正因為如此,才有後來那些jdom和dom4j等工具的存在……不多說,直接上代碼Dom解析樣本複製代碼 代碼如下:import java.io.File;import javax.xml.parsers.DocumentBuilder;
Time of Update: 2017-01-18
要我直接說出泛型是個what我還真講不出來,這裡先由一道問題引入: 定義一個座標點類,要求能儲存各種類型的資料,如:整形,浮點型,和字串類型既然變數類型起先不確定,那麼很容易想到就是用所有類型的父類,也就是Object類來代替不廢話了,用代碼來體現執行個體1:用Object來實現不確定的資料類型輸入複製代碼 代碼如下://這是定義的座標點類class Point { private Object x; private
Time of Update: 2017-01-18
剛開始學習java的時候真的很難理解反射到底是個什麼東西一些書籍,哪怕是很經典的書籍都解釋的讓人感覺懵懵的,或許的確是我太笨況且,網上說在將來學習架構的時候需要經常應用到反射機制,這樣一來總讓人心裡有些不安就方才偶然又把講解反射的章節和視頻看了一點,覺得能理解一些了現在決定一鼓作氣,邊看邊寫,順便把一些主要的內容和操作都記載到這裡我想,對於我這麼一個笨笨的人來說,學習的最好方法也許就是不斷重複遇到不懂的知識就停下來把以往的重新學一遍,雖然浪費了很多時間,但對我也有些效果 我的理解是:所
Time of Update: 2017-01-18
Regex在處理字串的效率上是相當高的關於Regex的使用,更多的是自己的經驗,有興趣可以參閱相關書籍這裡主要寫一下java中的正則操作方法執行個體1:匹配複製代碼 代碼如下:import java.util.Scanner; class Demo { public static void main(String[] args) { Scanner sc = new
Time of Update: 2017-01-18
在java中,原生解析xml文檔的方式有兩種,分別是:Dom解析和Sax解析Dom解析功能強大,可增刪改查,操作時會將xml文檔以文檔對象的方式讀取到記憶體中,因此適用於小文檔Sax解析是從頭到尾逐行逐個元素讀取內容,修改較為不便,但適用於唯讀大文檔本文主要講解Sax解析,其餘放在後面Sax採用事件驅動的方式解析文檔。簡單點說,如同在電影院看電影一樣,從頭到尾看一遍就完了,不能回退(Dom可來來回回讀取)在看電影的過程中,每遇到一個情節,一段淚水,一次擦肩,你都會調動大腦和神經去接收或處理這些資
Time of Update: 2017-01-18
注意問題:在學慣用selvert的過濾器filter處理中文亂碼時,在filter配置初始化時用了utf-8處理中文亂碼,而在提交的jsp頁面中卻用了gbk。雖然兩種都可以出來中文亂碼,但是卻造成了處理亂碼的格式不一致。所以編譯出錯。 解決方案:所有地方都用utf-8或gbk複製代碼 代碼如下://過濾器類CharactorFilter.jsppackage cn.com.Filter;import java.io.IOException;import javax.servlet.Filter;
Time of Update: 2017-01-18
這段時間在看android,看到了java裡面的匿名內部類,在印象當中.net裡面不支援匿名內部類。匿名類是不能有名稱的類,所以沒辦法引用它們。必須在建立時,作為new語句的一部分來聲明它們。這就要採用另一種形式的new語句,如下所示: new <類或介面> <類的主體>
Time of Update: 2017-01-18
複製代碼 代碼如下:package my; import java.io.File; import java.io.IOException; import java.net.URL; public class MyUrlDemo { public static void main(String[] args) {
Time of Update: 2017-01-18
1,繼承的定義子類的成員中有一部分是子類自己申明定義的,另一部分是從他的父類繼承的。子類繼承父類的成員變數作為自己的一個成員變數,就好像他們是在子類中直接申明一樣,可以被子類中自己的任何執行個體方法操作。也就是說,一個子類繼承的成員應當是這個類的完全意義的成員,如果子類中申明的執行個體方法不能操作父類的某個成員變數,該成員變數就沒有被子類繼承,子類繼承父類的方法作為子類中的方法,就像他們是在子類中直接聲一樣,可以被子類中自己聲明的刃虎執行個體方法調用。2.子類父類在一個包中的情況子類可以繼承父類
Time of Update: 2017-01-18
在java的開發中,java開發人員建議,盡量少用內部類,要把內部類提出他所處的那個類,單獨產生一個類。直接來代碼:複製代碼 代碼如下:package com.b510; /** * 內部類之間的調用 * * @author Hongten * * @time 2012-3-19 2012 */ public class InnerClassTest {
Time of Update: 2017-01-18
先看看代碼再說:複製代碼 代碼如下:package com.b510.note; import java.math.BigInteger; import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; /** * MD5加密 * * @author Hongten *
Time of Update: 2017-01-18
項目結構:運行效果:========================================================下面是代碼部分:========================================================/Text/src/com/b510/txt/MyFile.java複製代碼 代碼如下:package com.b510.txt; import java.io.BufferedReader; import
Time of Update: 2017-01-18
項目結構:運行效果:========================================================================下面是代碼部分:========================================================================/tray/src/com/b510/tray托盤/DesktopCapture.java複製代碼 代碼如下:package
Time of Update: 2017-01-18
如下面代碼以交燈為樣本:複製代碼 代碼如下:public class Test { public static void main(String[] args) { Trafficlight light = Trafficlight.RED;
Time of Update: 2017-01-18
這是一道微軟經典筆試題,就是兩個指標h1,h2都從頭開始遍曆單鏈表,h1每次向前走1步,h2每次向前走2步,如果h2碰到了NULL,說明環不存在;如果h2碰到本應在身後的h1說明環存在(也就是發生了套圈)。 如果環不存在,一定是h2先碰到NULL: