在有些情況下死鎖是可以避免的。本文將展示三種用于避免死鎖的技術:加鎖順序加鎖時限死鎖檢測加鎖順序當多個線程需要相同的一些鎖,但是按照不同的順序加鎖,死鎖就很容易發生。如果能確保所有的線程都是按照相同的順序獲得鎖,那么死鎖就不會發生。看下面這個例子:Thread1:lockAlockBThread2:waitforAlockC(whenAlocked)Thread3:waitforAwaitforBwaitforC如果一個線程(比如線程3)需要一些鎖,那么它
系統 2019-08-29 23:41:05 1957
原文地址:http://blog.csdn.net/cping1982/archive/2007/12/12/1931539.aspx我們都知道,在JDK1.5之前,Java中要進行業務并發時,通常需要有程序員獨立完成代碼實現,而當針對高質量Java多線程并發程序設計時,為防止死蹦等現象的出現,比如使用java之前的wait()、notify()和synchronized等,每每需要考慮性能、死鎖、公平性、資源管理以及如何避免線程安全性方面帶來的危害等諸多
系統 2019-08-29 22:54:18 1955
英文文章來源http://www.jappit.com/blog/midmaps-google-maps-java-me-library/中文文章來源http://yarin.iteye.com/blog/519754谷歌地圖api連接http://www.jappit.com/j2me/midmaps/javadocs/MidMaps:GoogleMapsJavaMElibraryPermalink|ReplyMidMapsisatinyGoogleMa
系統 2019-08-29 22:57:48 1953
自定義簡單IE1.采用簡單的GUIimportjava.awt.Button;importjava.awt.Dialog;importjava.awt.FlowLayout;importjava.awt.Frame;importjava.awt.Label;importjava.awt.TextArea;importjava.awt.TextField;importjava.awt.event.ActionEvent;importjava.awt.even
系統 2019-08-29 22:08:41 1953
GridBagModel:抽象模型接口。該接口用于描述表格中單元格的合并狀態。DefaultGridBagTableModel:GridBagModel的默認實現。GridBagTable:繼承自JTable的控制器。通過該類中的方法控制表格單元的合并和拆分。GridBagTableUI:GridBagTable對應的UI。JavaSwing實現支持合并拆分的JTable
系統 2019-08-29 22:32:02 1952
try塊與if語句不一樣,try塊后的花括號不可以省略,即使只有一行代碼,也不能省略花括號。與之類似的是catch塊后的花括號也不可以省略。try塊里聲明的變量是代碼塊內局部變量,它只在try塊內有效,在catch塊中不能訪問。不管try塊中的代碼是否出現異常,也不管哪一個catch塊被執行,甚至在try塊或者catch塊中執行了return語句,finally塊總會被執行。異常處理語法結構中只有try塊是必需的,也就是說,如果沒有try塊,則不能有后面的
系統 2019-08-29 22:01:30 1952
1String,八種基本數據類型的包裝類都在這個包中Java只有8種基本類型:bytecharshortintlongfloatdoubleboolean自動裝箱是Java編譯器在基本數據類型和對應的對象包裝類型之間做的一個轉化。比如:把int轉化成Integer,double轉化成double,等等。反之就是自動拆箱。(char的對應的對象包裝類是Character,int對應的對象包裝類是Integer,其他的名字不變)基本數據(Primitive)類
系統 2019-08-12 01:53:50 1952
java.lang.OutOfMemoryError:Javaheapspace在java程序運行中可能會報如上的錯誤,通常是在運行過程中內存占用了沒有別釋放造成的。以前可能沒法跟蹤可能是很痛苦的事情,現在好了,我們有一個調試軟件可以用了,在生產環境下使用的jRockit軟件進行調試,是oracle公司出品的。前兩天試用了一下真的很不錯。前陣子有個程序跑2個禮拜左右就會堆棧溢出,始終找不到頭緒,后來使用jrockit才找到問題的出處。jrockit是可以調
系統 2019-08-12 09:29:34 1951
在NIO庫中,所有數據都是用緩沖區處理的。在讀取數據時,它是直接讀到緩沖區中的。在寫入數據時,它是寫入到緩沖區中的。任何時候訪問NIO中的數據,都是將它放到緩沖區中。緩沖區實質上是一個數組。通常它是一個字節數組,但是也可以使用其他種類的數組。但是一個緩沖區不僅僅是一個數組。緩沖區提供了對數據的結構化訪問,而且還可以跟蹤系統的讀/寫進程。buffer其實只是一個美化了的數組。狀態變量跟蹤數據的狀態情況使buffer可以自己管理數據資源position:其實是
系統 2019-08-29 23:50:01 1950
Java使網絡編程更方便、簡潔。它提供了各種Socket類,讀者只要了解這些類的構造和相關的方法,就可以輕松的編寫網絡程序。而無論任何網絡程序都是運行在一定的協議體系中的,了解這些協議的基本內容對于更好的理解各種Socket類和方法都很有幫助。下面將介紹在Internet中占主導地位的TCP/IP協議。14.1TCP/IP協議TCP/IP協議是整個網絡通信的核心協議。其中TCP協議運行在客戶終端上,是集成在操作系統內的一套協議軟件,它的任務是在網絡上的兩個
系統 2019-08-12 09:29:29 1949
《關于Java,我做過的書,從淺到深》原文地址:http://www.jianshu.com/p/3c30dcc352f9?utm_campaign=maleskine&utm_content=note&utm_medium=pc_author_hots&utm_source=recommendation“關于Java,我做過的書,從淺到深”
系統 2019-08-12 09:30:36 1947
1、Java虛擬機運行時的數據區2、常用的內存區域調節參數-Xms:初始堆大小,默認為物理內存的1/64(<1GB);默認(MinHeapFreeRatio參數可以調整)空余堆內存小于40%時,JVM就會增大堆直到-Xmx的最大限制-Xmx:最大堆大小,默認(MaxHeapFreeRatio參數可以調整)空余堆內存大于70%時,JVM會減少堆直到-Xms的最小限制-Xmn:新生代的內存空間大小,注意:此處的大小是(eden+2survivorspace)。
系統 2019-08-29 22:51:21 1946
---恢復內容開始---2個月間,斷斷續續學習了一段時間java平臺相關知識,慢慢梳理出來一些枝枝葉葉,和大家交流下。3年前用java邊看邊做寫了一個項目,所以對語法不是很關注。需要原文檔的留郵箱吧---恢復內容結束---java學習之路-分享筆記20150327
系統 2019-08-12 01:32:34 1946
參考《java虛擬機規范javase7》見附件Java虛擬機定義了若干種程序運行期間會使用到的運行時數據區,其中有一些會隨著虛擬機啟動而創建,隨著虛擬機退出而銷毀。另外一些則是與線程一一對應的,這些與線程對應的數據區域會隨著線程開始和結束而創建和銷毀。寄存器Java虛擬機可以支持多條線程同時執行(可參考《Java語言規范》第17章),每一條Java虛擬機線程都有自己的PC(ProgramCounter)寄存器。在任意時刻,一條Java虛擬機線程只會執行一個
系統 2019-08-29 22:58:30 1945
今天在逛oschina的時候看見里面有一個代碼分享的功能還不錯,紅薯老大貼出了一段代碼個人覺得很實用轉出來分享下。Java代碼importjava.awt.Color;importjava.awt.Font;importjava.awt.FontMetrics;importjava.awt.Graphics2D;importjava.awt.image.BufferedImage;importjava.awt.image.IndexColorModel;i
系統 2019-08-29 22:25:23 1944