Java線程:新特徵-有傳回值的線程

在Java5之前,線程是沒有傳回值的,常常為了“有”傳回值,破費周折,而且代碼很不好寫。或者乾脆繞過這道坎,走別的路了。現在Java終於有可傳回值的任務(也可以叫做線程)了。可傳回值的任務必須實現Callable介面,類似的,無傳回值的任務必須Runnable介面。執行Callable任務後,可以擷取一個Future的對象,在該對象上調用get就可以擷取到Callable任務返回的Object了。下面是個很簡單的例子:import java.util.concurrent

Java線程:新特徵-鎖(上)

在Java5中,專門提供了鎖對象,利用鎖可以方便的實現資源的封鎖,用來控制對競爭資源並發訪問的控制,這些內容主要集中在 java.util.concurrent.locks 包下面,裡面有三個重要的介面Condition、Lock、ReadWriteLock。 Condition Condition 將 Object 監視器方法(wait、notify 和 notifyAll)分解成截然不同的對象,以便通過將這些對象與任意

Java線程:新特徵-鎖(下)

Java中讀寫鎖有個介面java.util.concurrent.locks.ReadWriteLock,也有具體的實現ReentrantReadWriteLock,詳細的API可以查看JavaAPI文檔。下面這個例子是在文例子的基礎上,將普通鎖改為讀寫鎖,並添加賬戶餘額查詢的功能,代碼如下:import java.util.concurrent.ExecutorService;import java.util.concurrent.Executors;import java.util.conc

Java線程:新特徵-訊號量

因此,本人認為,這個訊號量類如果能返回數目,還能知道哪些對象在等待,哪些資源可使用,就非常完美了,僅僅拿到這些概括性的數字,對精確控制意義不是很大。目前還沒想到更好的用法。下面是一個簡單例子:import java.util.concurrent.ExecutorService;import java.util.concurrent.Executors;import java.util.concurrent.Semaphore;/*** Java線程:新特徵-訊號量** @author leiz

Java線程:新特徵-阻塞隊列

阻塞隊列是Java5線程新特徵中的內容,Java定義了阻塞隊列的介面

Java線程:新特徵-阻塞棧

對於阻塞棧,與阻塞隊列相似。不同點在於棧是“後入先出”的結構,每次操作的是棧頂,而隊列是“先進先出”的結構,每次操作的是隊列頭。這裡要特別說明一點的是,阻塞棧是Java6的新特徵。、Java為阻塞棧定義了介面:java.util.concurrent.BlockingDeque,其實作類別也比較多,具體可以查看JavaAPI文檔。下面看一個簡單例子:import java.util.concurrent.BlockingDeque;import j

Java線程:新特徵-原子量

所謂的原子量即操作變數的操作是“原子的”,該操作不可再分,因此是安全執行緒的。為何要使用原子變數呢,原因是多個線程對單個變數操作也會引起一些問題。在Java5之前,可以通過volatile、synchronized關鍵字來解決並發訪問的安全問題,但這樣太麻煩。Java5之後,專門提供了用來進行單變數多線程並發安全訪問的工具包java.util.concurrent.atomic,其中的類也很簡單。下面給出一個反面例子(切勿模仿):import java.util.conc

我學習使用java的一點體會

2002年初,因為公司的業務需要而學習java,並應用java開發項目。由於項目時間緊,沒有充裕的時間系統學習java,對java的學習只能是項目需要用什麼,就學什麼,這種學習方法的上手快,但不紮實,在以後的工作中,因為java學的不紮實,吃了不少苦頭。現在我學習應用java已經有一年半的時間,對java已經有了一定的體會,把自己的體會寫出來,供網友分享。以我個人的經驗,學習java應分以下幾個階段:java的文法學習 物件導向觀念的建立 java基本類庫的學習 學習設計模式 應用設計模式

Web應用程式模型及其Java實現之第三部分

第三部分:MVCD模型在上一節中,從一般的原則上介紹了兩種Web應用程式模型,但是如何理解和把握這樣的模型,將不同的Web技術正確應用到Web程式不同的功能模組中是一個非常實際的話題。下面就在實際編程中如何去掌握Web編程模型做一些分析。1、兩層客戶/伺服器模型圖11、兩層客戶/伺服器模型Web應用程式天生是一種客戶/伺服器應用程式,在ASP(Application Service

Web應用程式模型及其Java實現之第二部分

第二部分:認識兩個重要的ASP(Application Service Provider)模型在前一節關於體繫結構介紹的基礎上,本節進一步介紹Web應用的體繫結構,並且詳細介紹了兩個主流的Web應用體繫結構。1、從“Web內容”到“Web應用”ASP(Application Service

Web應用程式模型及其Java實現之第一部分

第一部分:幾種典型的應用程式模型應用程式是什麼,簡單的來說,它是人類客觀世界的問題領域在電腦世界的解決方案。我們生活的客觀世界複雜多樣,電腦世界也是博大精深,怎樣從普遍的意義上來表述應用程式是一個非常有用的課題。應用程式的編程模型,也就是應用程式的拓撲結構,是一門關於應用程式的科學。從事軟體設計、軟體開發的人員,如果能夠就應用程式的編程模型有足夠的重視,將受益匪淺。引言簡單介紹應用程式編程模型的發展過程,以及我們常用的幾種應用程式編程模型。通過對多個模型的表述加深人們對編程模型的概念,為下面進一

Regex概述及在JAVA中的使用

概述你是否使用過尋找*.tmp臨時檔案?你是否使用過編輯工具中的尋找/替換功能?其實它們都使用了RegexRegex的作用提供更強大的字串處理能力測試字串內的模式例如,可以測試輸入字串,以查看字串內是否出現電話號碼模式或社會安全號碼碼模式。即資料驗證替換文本可以使用Regex來識別文檔中的特定文本,完全刪除該文本或者用其他文本替換它。基於模式比對從字串中提取子字串可以尋找文檔內或輸入欄位內特定的文本。在JAVA中使用RegexRegex在字串處理上有著強大的功能,sun在jdk1.4加入了對它的

Java Static解說

過去看書我總是不能揪起深意,總是囫圇吞棗,也許是上了年紀的緣故(呵呵:-)),現在開始慢慢的進入正題了,呵呵!大家都應該知道在JAVA中Statci方法,是不能調用非Statci方法,和非Statci資料成員的,他只能夠調用類方法和類變數,這是一個定理,但你想過為什麼了嗎?真的想過???在這裡我將竭盡所能為您闡述Static,其實要想完全瞭解Static,那麼首先This你要清楚,This代表的是”當前的對象“,This用於返回當前對象的一個引用。This在應用中的例子0

Java String的常用方法及使用注意事項

一、Java

Java學習方法淺談

Java本身是一種設計的非常簡單,非常精巧的語言,所以Java背後的原理也很簡單,歸結起來就是兩點:1、JVM的記憶體管理理解了這一點,所有和對象相關的問題統統都能解決2、JVMClassLoader理解了這一點,所有和Java相關的配置問題,包括各種AppServer的配置,應用的發布問題統統都能解決就像張無忌學太極劍,本質就是一圈一圈的畫圓,你要是懂得了太極劍的本質,那麼太極劍就那麼一招而已,本身是很容易學的,只是難度在於你要能夠舉一反三,化一式劍意為無窮無盡的劍招,這就需要一點悟性和不斷的

javaRegex匹配斜杠

在Regex裡面匹配一個斜杠,需要用4個斜杠:Java代碼import java.util.regex.Matcher;import java.util.regex.Pattern;public class test {/** * @param args */public static void main(String[] args) {// TODO Auto-generated method stubString textString = new String

JAVA的多態、介面、動態載入類等

為某研究所編寫一個通用程式,用來計算每一種交通工具運行1000公裡所需的時間,已知每種交通工具的參數都是3個整數A、B、C的運算式。現有兩種工具:Car和Plane,其中Car的速度運算公式為:A*B/C,Plane的速度運算公式為:A+B+C。需要編寫三類:ComputeTime.java,Plane.java,Car007.java和介面Common.java,要求在未來如果增加第3種交通工具的時候,不必修改以前的任何程式,只需要編寫新的交通工具的程式。其運行過程如下,從命令列輸入Compu

Java技巧:在清單裡設定主類

你的使用者運行Javaapplications時會遇到困難嗎?你可以建立一個Windows的BAT檔案或UNIX的SH檔案來協助他調用application。但是如果你有GUI,那麼你就有比這簡單得多的辦法來解決這個問題了。 在許多現代的案頭上,.jar檔案被設定成自動運行。這使得在使用者看來.jar檔案的應用是很普通的。他們下載了這個東西,放在他們的案頭上,然後當他們想用的時候點一下就可以了。這個魔術變起來驚人的容易。每個.jar檔案都有一個清單,它們以如下的檔案名稱儲存著:META-INF/

Java開發為什麼需要UML

知道UML造成了怎樣的局面大混亂嗎?知道什麼樣的功能是UML擁有但JAVA不具備的嗎?知道我們為什麼需要除JAVA外的另一種電腦語言嗎?UML並不僅僅只是JAVA或者其它什麼語言的替代品。UML並不僅僅只是JAVA或者其它什麼語言的替代品。UML是物件導向的分析及設計的注釋。UML是獨立於那些傳統設計語言之外的一種語言。因為UML並不依附於某種語言,而且它被用作是聯絡溝通Java、 C++

Java即時應用程式中的記憶體管理

使用Java的一個主要優點就是無需擔心廢棄對象,即,讓Java運行時負責Java對象的記憶體管理。這是通過讓Java運行時對不再使用的Java對象進行垃圾收集而實現的。垃圾收集是一個比較複雜的過程。通常,Java運行時會遍曆堆,檢查不再被其他對象引用、從而可以安全刪除的對象,然而,由於垃圾收集佔用CPU周期,所以它可能會影響應用程式代碼的執行。即,如果在執行應用程式代碼的過程中執行垃圾收集,則應用程式代碼的回應時間可能延長。這會導致使用者事務延遲的延長。更為糟糕的是,因為使用者不知道何時會進行垃

總頁數: 4058 1 .... 2723 2724 2725 2726 2727 .... 4058 Go to: 前往

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.