Time of Update: 2017-02-27
Java語言從其誕生到現在不過短短五年時間,卻已經成為全球最熱門的語言,Java程式員正成為IT業其它程式員中薪金最高的職員。這一切都應歸功於Java良好的特性:簡單、物件導向、分布式、平台無關性、可移植性、支援多線程等等。本文將用Java的多線程特性來實現線程等待提示框。1
Time of Update: 2017-02-27
在Java
Time of Update: 2017-02-27
Java平台從開始就被設計成為多線程環境。在你的主程式執行的時候,其它作業如片段收集和事件處理則是在後台進行的。本質上,你可以認為這些作業是線程。它們正好是系統管理線程,但是無論如何,它們是線程。線程使你能夠定義相互獨立的作業,彼此之間互不干擾。系統將交換這些作業進或出CPU,這樣(從外部看來)它們好象是同時啟動並執行。在你需要在你的程式中處理多個作業時,你也可以使用多個進程。這些進程可以是你自己建立的,你也可以操縱系統線程。你進行這些多作業處理,要使用幾個不同的類或介面:java.util.T
Time of Update: 2017-02-27
一. 實現多線程 1. 虛假的多線程例1:public class TestThread{ int i=0, j=0; public void go(int flag) { while(true) { try{ Thread.sleep(100); } catch(InterruptedException e) { System.out.println("Interrupted"); } if(flag==0) i++;
Time of Update: 2017-02-27
Java語言內建了synchronized關鍵字用於對多線程進行同步,大大方便了Java中多線程程式的編寫。但是僅僅使用synchronized關鍵字還不能滿足對多線程進行同步的所有需要。大家知道,synchronized僅僅能夠對方法或者代碼塊進行同步,如果我們一個應用需要跨越多個方法進行同步,synchroinzed就不能勝任了。在C++中有很多同步機制,比如訊號量、互斥體、臨屆區等。在Java中也可以在synchronized語言特性的基礎上,在更高層次構建這樣的同步工具,以方便我們的使用
Time of Update: 2017-02-27
Mutex是互斥體,廣泛地應用在多線程編程中。本文以廣為流程的Doug Lea的concurrent工具包的Mutex實現為例,進行一點探討。在Doug
Time of Update: 2017-02-27
在編寫多線程代碼的時候經常發生多個線程等待一個事件的情況。這種情況多發生於多個線程在同步方法或者同步塊內調用wait方法等待同一個被鎖住的對象。當另一個鎖住該對象的線程從同步方法或者同步塊中調用notify或者notifyAll方法時這些等待線程被喚醒。notify調用僅僅喚醒一個線程,因此如果有多個線程正處於等待狀態,那麼不會有對鎖的競爭。另一方面,notifyAll調用喚醒所有的等待線程而造成競爭,然而只有一個線程能夠得到鎖,其它的都會被阻塞。當多個線程處於等待狀態時的問題是當調用notif
Time of Update: 2017-02-27
Java 程式設計語言的執行緒模式可能是此語言中最薄弱的部分。它完全不適合實際複雜程式的要求,而且也完全不是物件導向的。本文建議對 Java 語言進行重大修改和補充,以解決這些問題。Java 語言的執行緒模式是此語言的一個最難另人滿意的部分。儘管 Java 語言本身就支援線程編程是件好事,但是它對線程的文法和類包的支援太少,只能適用於極小型的應用環境。關於 Java 線程編程的大多數書籍都長篇累牘地指出了 Java
Time of Update: 2017-02-27
在Java的世界裡,無論類還是各種資料,其結構的處理是整個程式的邏輯以及效能的關鍵。由於本人接觸了一個有關效能與邏輯同時並存的問題,於是就開始研究這方面的問題。找遍了大大小小的論壇,也把《JAVA 虛擬機器規範》,《apress,.java.collections.(2001),.bm.ocr.6.0.shareconnector》,和《Thinking in Java》翻了也找不到很好的答案,於是一氣之下把JDK的 src
Time of Update: 2017-02-27
Java誕生以將近有十個年頭,不知道你只不知道,它每發布一個版本都有其自己特有的名字,並且有一定的規律,是不是很有趣呢?已發行的版本:版本號碼 名稱 中文名 發布日期JDK 1.1.4 Sparkler 寶石 1997-09-12JDK 1.1.5 Pumpkin 南瓜 1997-12-13JDK 1.1.6 Abigail 阿比蓋爾--女子名 1998-04-24JDK 1.1.7 Brutus 布魯圖--古羅馬政治家和將軍 1998-09-28JDK 1.1.8 Chelsea
Time of Update: 2017-02-27
/* Readfile.java讀取檔案的內容,並將原樣輸出至螢幕上使用方法:java Readfile 檔案名稱*/import java.io.*;public class Readfile{public static void main(String[] args){byte[] buff = new byte[1024];boolean cont = true;FileInputStream infile = null;// 產生對象infile 準備讀取檔案try{infile =
Time of Update: 2017-02-27
/* Writefile.java接收鍵盤的輸入,並原樣輸出到螢幕上此外,還有將鍵盤輸入的資料按順序存放到檔案中使用方法:java Writefile 檔案名稱要結束此程式時,請在行的開始部分輸入一個#號。*/import java.io.*;// Class Writefilepublic class Writefile{public static void main(String[] args){byte[] buff = new byte[1024];boolean cont =
Time of Update: 2017-02-27
首先我們來看看Java程式的反加密,也就是通常所說的Crack過程,只有明白了這個過程,我們才能有效對我們的程式進行加密。通常我們得到的Java程式的Crack包有兩種,一種屬於KeyGen(註冊碼產生器)、一種屬於替換修改;我們先看第一種,當我們找到一個應用程式的KeyGen的時候我們總是很佩服那個做出KeyGen的人,覺得他很厲害,但是你仔細分析一下,為什麼他能做出KeyGen呢?只有他對這個Java程式的密碼編譯演算法瞭解的非常清楚;這種人有哪些呢?一個是那個公司裡面的人,那不可能,除非內
Time of Update: 2017-02-27
/*運行本程式你需要下載JCE,Bouncy Castle的JCE with Provider and Lightweight API網址是 http://www.bouncycastle.org配置如下:在WINDOWS中,你需要把下載的bcprov-jdk14-119.jar檔案拷貝到兩個地方:一個在你安裝的JDK目錄中,比如說我的是C:\j2sdk1.4.0-rc\jre\lib\ext另一個在你的JDK運行環境中,我的是在C:\Program
Time of Update: 2017-02-27
一、 什麼是Java虛擬機器Java虛擬機器是一個想象中的機器,在實際的電腦上通過軟體類比來實現。Java虛擬機器有自己想象中的硬體,如處理器、堆棧、寄存器等,還具有相應的指令系統。1.為什麼要使用Java虛擬機器?Java語言的一個非常重要的特點就是與平台的無關性。而使用Java虛擬機器是實現這一特點的關鍵。一般的進階語言如果要在不同的平台上運行,
Time of Update: 2017-02-27
Java解譯器可用來直接解釋執行Java位元組代碼,具體命令列格式如下:C:\>java options className argumentsclassName必須包括所有軟體包資訊。不僅有類名本身,還有Java 解譯器所期望的類名(不是Java位元組代碼的檔案名稱),所有在解譯器環境下啟動並執行類都必須包括解譯器第一次調用時所需的main成員函數,用以傳遞命令所帶的變數。public static void main(string args[]) { ......
Time of Update: 2017-02-27
Java的普通應用程式中,必須含有一個可被外界(通常是java解譯器)所直接調用的類,我們可以把這個類稱為該應用程式的主類。建立Java的應用程式1:main成員函數Java的普通應用程式中,必須含有一個可被外界(通常是java解譯器)所直接調用的類,我們可以把這個類稱為該應用程式的主類,而這個主類必須含有main成員函數,整個應用程式就是從這個成員函數開始執行的,這與C程式有一定的類似之處。main成員函數的說明如下:public static void main(String args[])
Time of Update: 2017-02-27
條件控制:if和switch1:條件陳述式條件陳述式是程式設計中最常用的語句,用他來選擇程式的執行流程,Java中的基本條件判斷語句是if...else...語句。其機構為:if (條件運算式){語句1}Else{語句2}語句3“條件運算式”的值為真時執行“語句1”,然後執行語句3;否則執行“語句2”,然後執行語句3。下面是一個用if--else語句構造多分支程式的例子:if(a>5) b=1else if(a>
Time of Update: 2017-02-27
1:數組說明數組是Java語言中的特殊類型。它們存放能通過索引來引用的一系列對象,另外,你可以定義數組的數組,下面是一些樣本:int i[];char C[];float f[][];2:數組運算子在JAVA中數組的分配是通過使用new運算子建立數組然後把它賦給變數,如:int i[]=new
Time of Update: 2017-02-27
1:breakbreak語句提供了一種方便的跳出迴圈的方法。boolean test=true; int i=0; while(test){ i++; if(i>=10)