Time of Update: 2018-12-05
Java線程堆棧是一個運行中的Java應用程式的所有線程的一個快照。它會顯示一些像當前的堆疊追蹤、狀態以及線程名稱之類的資訊。線程列表中包括由JVM本身建立的線程(負責垃圾收集、訊號處理等管理工作)和由應用程式建立的線程。通過給JVM發送一個SIGQUIT訊號,您可以得到一個線程堆。在Unix作業系統(Solaris/Linux/HP-Unix等)中,通過kill-3<pid>命令可以得到線程堆,(在啟動指令碼中將輸出重新導向到檔案中是一個很好的習慣,start.sh>trac
Time of Update: 2018-12-05
JDK內建工具使用一、javah命令(C Header and Stub File Generator)二、jps命令(Java Virtual Machine Process Status Tool)三、jstack命令(Java Stack Trace)四、jstat命令(Java Virtual Machine Statistics Monitoring Tool)五、jmap命令(Java Memory Map)六、jinfo命令(Java Configuration Info)七、j
Time of Update: 2018-12-05
class Test implements Runnable{private boolean flag;Test(boolean flag){this.flag = flag;}public void run(){if(flag){while(true){synchronized(MyLock.locka){System.out.println("if locka");synchronized(MyLock.lockb){System.out.println("if
Time of Update: 2018-12-05
JAVA的安全模型不同於傳統的安全方法,傳統的安全方法中,大多數作業系統允許應用程式充分訪問系統資源,在作業系統不提供安全保護的機器裡,運行環境不能被信任。為了彌補這個缺陷,安全性原則經常要求在應用程式執行之前對應用程式建立信任,例如要求程式員在執行從網上獲得的應用程式前,先檢查病毒和原始碼中不安全的代碼。這種方法有2個問題:(1)確定程式是否安全的檢查很複雜很浪費時間,很少有程式員願意花時間讀程式的原始碼,然後再將它編譯成本地機器碼以保證程式是安全的。(2)病毒檢查要不斷維護以保證有效性。JA
Time of Update: 2018-12-05
1、collection 1.1方法 (1) iterator<E> iterator(); 返回一個迭代器,用來迭代集合中的元素。 (2) int size();返回存放在集合中的元素的數量。 (3) boolean isEmpty();判斷當前的集合是否為空白,為空白的話返回true; (4) boolean contains(Object obj);判斷集合中是否包含一個與Obj相等的對象,相等則返回true; (5) boolean
Time of Update: 2018-12-05
有時你希望定義一個類成員,使它的使用完全獨立於該類的任何對象。通常情況下,類成員必須通過它的類的對象訪問,但是可以建立這樣一個成員,它能夠被它自己使用,而不必引用特定的執行個體。在成員的聲明前面加上關鍵字static(靜態)就能建立這樣的成員。如果一個成員被聲明為static,它就能夠在它的類的任何對象建立之前被訪問,而不必引用任何對象。你可以將方法和變數都聲明為static。static 成員的最常見的例子是main( ) 。因為在程式開始執行時必須調用main()
Time of Update: 2018-12-05
物件導向設計原則是 OOPS(Object-Oriented Programming System,物件導向的程式設計系統)編程的核心,但大多數 Java 程式員追逐像 Singleton、Decorator、Observer 這樣的設計模式,而不重視物件導向的分析和設計。甚至還有經驗豐富的 Java 程式員沒有聽說過 OOPS 和 SOLID設計原則,他們根本不知道設計原則的好處,也不知道如何依照這些原則來進行編程。眾所周知,Java
Time of Update: 2018-12-05
最近想將java基礎的一些東西都整理整理,寫下來,這是對知識的總結,也是一種樂趣。已經擬好了提綱,大概分為這幾個主題: java安全執行緒,java垃圾收集,java並發包詳細介紹,java profile和jvm效能調優
Time of Update: 2018-12-05
出處 仙人掌工作室 eNet矽谷動力 一、指令碼解譯器概述
Time of Update: 2018-12-05
進階程式設計語言自問世以來,林林總總加在一起不下一百種,Java能在其中一支獨秀,獨領風騷,除了"Write once, run anywhere"的優勢外,另一個值得關注的是它符合人類心理的需要。Java語言是靜態物,沒有程式員開發出應用程式,它是沒有價值的。在軟體開發過程中,程式設計語言做什麼,語言做什麼,作為人的程式員做什麼,有明確的介面和分工,在工程領域這個介面叫人機工程學,在心理學領域被稱作工程心理學,二者含義接近。在Java開發的最佳實務提倡用完整的單詞來表示標識符,即使看起來很長,
Time of Update: 2018-12-05
原來以為,求兩個時間之日期差應該不是問題,直到有一天...。 我曾經輔導過的一位開發員向我求教,我還不以為很難,嘗試用Calendar/GregorianCalendar類來計算,看起來代碼太複雜,放棄。苦想半小時,最後想出一句話,寫出來在MSN上發給他。當時的感覺路子很野,上不了檯面。這句話也是下面要介紹的簡潔方法。再後來,我的一位前同事發來郵件,說起網上一大牛發布的blog,是一個牛人數落Java標準庫的,挺有意思。需求很簡單:有兩個Date型的變數(a,
Time of Update: 2018-12-05
本文實在是旨在對Java標準庫中日期處理之晦澀不堪現狀的怒斥。在你反駁之前,請確信你瞭解過Joda(譯註1)。我們問題的引發是因為所交付的客戶不接受(因為某種原因)在其項目中使用開源的資源。我與我的同事們最近在開發管理類庫的一個簡單的Java應用程式。昨天,我開始編寫一個用來計算到期圖書的罰金的模組,完成該模組就要算出到期日與當前日期的間隔天數。其實也就是兩個日期做下減法,可是,Java標準庫卻把這件事情搞得很複雜。這兩個日期是儲存在Date對象中的。為了能做減法我必須要這樣做:把它們轉換為Ca
Time of Update: 2018-12-05
When you meet the the problem: java.lang.OutOfMemoryError: PermGen space in Java development, please use the HotSpot Java VM argument -XX:MaxPermSize=<value>, for example: -XX:MaxPermSize=128m to fix it. The details from Google search: If an
Time of Update: 2018-12-05
文檔整理,方便查看,轉載自 http://upgoing.blog.51cto.com/2112939/420972這個系列裡的問題,是每個java學習者都應該明白的。除非你只是感興趣,學java玩玩。如果你認為自己已經超越初學者了,卻還是不懂,那建議你重新開始學。許多人都做過這樣的事情,但是,我們到底聲明了什麼?回答通常是:一個String,內容是“Hello world!”。這樣模糊的回答通常是概念不清的根源。如果要準確的回答,一半的人大概回答錯誤。我們是聲明了另外一個只能指向String對
Time of Update: 2018-12-05
文章目錄 原始碼原始碼類適配器和對象適配器的權衡
Time of Update: 2018-12-05
DK1.5引入了新的類型——枚舉。在 Java 中它雖然算個“小”功能,卻給我的開發帶來了“大”方便。本人覺得最常用的還是:用法一、用法二用法一:常量在JDK1.5 之前,我們定義常量都是: publicstaticfianl....。現在好了,有了枚舉,可以把相關的常量分組到一個枚舉類型裡,而且枚舉提供了比常量更多的方法。public enum Color { RED, GREEN, BLANK,
Time of Update: 2018-12-05
簡單原廠模式是類的建立模式,又叫做靜態Factory 方法(Static Factory Method)模式。簡單原廠模式是由一個工廠對象決定建立出哪一種產品類的執行個體。那麼簡單原廠模式是在什麼情境下使用呢,下面就以本人的理解舉例說明: 就拿登入功能來說,假如應用系統需要支援多種登入方式如:口令認證、域認證(口令認證通常是去資料庫中驗證使用者,而域認證則是需要到微軟的域中驗證使用者)。那麼自然的做法就是建立一個各種登入方式都適用的介面,如所示: 上代碼:package com.bankht.
Time of Update: 2018-12-05
今天在人人上看到一張圖。大體意思就是在下面代碼 if()的括弧中加入任意代碼,使之列印出"Hello World!":public static void main(String[] args){try { if(){ System.out.print("Hello "); }else{ System.out.println("world!"); } } catch (Exception e) { e.printStackTrace(); } } 接下來是各路程式員各顯風騷的時刻:1.if(
Time of Update: 2018-12-05
建造模式是對象的建立模式。建造模式可以將一個產品的內部表象(internal representation)與產品的生產過程分割開來,從而可以使一個建造過程產生具有不同的內部表象的產品對象。產品的內部表象 一個產品常有不同的組成成分作為產品的零件,這些零件有可能是對象,也有可能不是對象,它們通常又叫做產品的內部表象(internal
Time of Update: 2018-12-05
static表示“全域”或者“靜態”的意思,用來修飾成員變數和成員方法,也可以形成靜態static代碼塊,但是Java語言中沒有全域變數的概念。被static修飾的成員變數和成員方法獨立於該類的任何對象。也就是說,它不依賴類特定的執行個體,被類的所有執行個體共用。只要這個類被載入,Java虛擬機器就能根據類名在運行時資料區的方法區內定找到他們。因此,static對象可以在它的任何對象建立之前訪問,無需引用任何對象。用public修飾的static成員變數和成員方法本質是全域變數和全域方法,當聲明