Time of Update: 2018-12-05
內部類 內部類(Inner Classes的概念是在JDK1.1 版本中開始引入的。在Java
Time of Update: 2018-12-05
Java介面和Java抽象類別 在沒有好好地研習物件導向設計的設計模式之前,我對Java介面和Java抽象類別的認識還是很模糊,很不可理解。 剛學Java語言時,就很難理解為什麼要有介面這個概念,雖說是可以實現所謂的多繼承,可一個只有方法名,沒有方法體的東西,我實現它又有什麼用呢?我從它那什麼也得不到,除了一些方法名,我直接在具體類裡加入這些方法不就行了嗎?
Time of Update: 2018-12-05
轉自:http://www.cnblogs.com/gmq/archive/0001/01/01/1521496.htmlimport java.io.BufferedInputStream;import java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.IOException;import java.text.DecimalFormat;import j
Time of Update: 2018-12-05
IBM SDK for Java 6 beta 版本發布了.這次發布的SDK支援以下平台:x86 and 64-bit AMD, and AIX for PPC for 32- and 64-bits.同時, IBM啟動了一個收集使用者反饋意見的程式. 旨在收集開發人員關於此次beta版的試用意見.此次發布的SDK, 不僅支援Java 6, IBM更強調它的穩定性, 高效能, 以及可測試性.目前下載Beta版IBM
Time of Update: 2018-12-05
本文介紹如何在WindowXP/NT/2000環境中,編寫純Java程式,執行外部命令IPCONFIG,並通過分析該命令的輸入資料流而獲得原生MAC地址的編程方法。 1 引言 用Java編寫的程式,可以很方便地運行在各種平台的環境。但在實際的開發過程中,有時不得不涉及一些底層的編程。比如為了防止軟體盜用,我們 希望軟體只能在指定電腦上運行,所以需要程式讀取該機區分於其它電腦的硬體特徵,如MAC地址等。作為一種跨平台語言,給Java語言提出了挑戰。本
Time of Update: 2018-12-05
雖然Java語言不直接支援關聯陣列 -- 可以使用任何對象作為一個索引的數組 -- 但在根 Object 類中使用 hashCode() 方法明確表示期望廣泛使用 HashMap (及其前輩 Hashtable )。理想情況下基於散列的容器提供有效插入和有效檢索;直接在對象模式中支援散列可以促進基於散列的容器的開發和使用。 定義對象的相等性 Object 類有兩種方法來推斷對象的標識: equals()
Time of Update: 2018-12-05
棧與堆都是Java用來在Ram中存放資料的地方。與C++不同,Java自動管理棧和堆,程式員不能直接地設定棧或堆。 Java的堆是一個運行時資料區,類的(對象從中分配空間。這些對象通過new、newarray、anewarray和multianewarray等指令建立,它們不需要程式碼來顯式的釋放。堆是由記憶體回收來負責的,堆的優勢是可以動態地分配記憶體大小,生存期也不必事先告訴編譯器,因為它是在運行時動態分配記憶體的,Java的垃圾收集器會自動收走這些不再使用的資料。但缺點是,由於要在運行時動
Time of Update: 2018-12-05
Java的記憶體模型中Thread會附有自己的堆棧,寄存器,必要時需要和主存即heap之間同步。 可以使用Synchornized關鍵字和Concurrent包中的Lock可以保證線程互斥和可見度。 互斥性體現在類鎖或者對象鎖上,每個對象自身都包含一個監視器,該監視器是一個每次只能被一個線程所擷取進入的臨界區,可以通過wait和notify來退出和准入臨界區。可以看出這是一個生產者-消費者的模型。而Concurrent包中的Lock為了能夠獲得更好的效能和更好的擴充性,以及不依賴於關鍵字的可讀代
Time of Update: 2018-12-05
Debugger Java Application總結一些關於Java Debug的經驗,一般來說Java開發人員調試Java程式是通過IDE,比如Eclipse,以Debug方式啟動之後,可以在任意行加入斷點,待程式運行到這一行的時候會被斷點阻塞。眾所周知Java程式是以class檔案中的位元組碼方式來運行,JVM負責解讀位元組碼轉換成JVM內部指令,如果查閱JVM
Time of Update: 2018-12-05
儘管很少有Java開發人員能夠忽略多線程編程,且Java平台類庫支援它,甚至於更少的開發人員能有時間去深入學習線程。相反,我們只是泛泛地學習線程,如果需要的話,會向我們的工具箱中添加新的技巧和技術。通過這種方法你可能會構建且運行好的應用程式,但你還能做得更好。理解Java編譯器和JVM的線程特性,可以協助你編寫更高效,效能更佳的Java代碼。 在5
Time of Update: 2018-12-05
本文摘自一位美國開發人員的部落格,作者Nirav觀察到Java世界一些有趣的變化,單一的Java開發已經無法滿足當前軟體複雜的需求,越來越多基於JVM的語言開發被應用到軟體項目中,Java平台上的多語言混合編程正成為主流。在09年的JavaOne大會期間,曾報道過Java領域的幾大趨勢,多語言、混合編程的發展便是其中的重點。基於JVM的語言正在開始流行,這為Java平台上多語言混合編程的發展提供了技術基礎;在實際應用中,每種語言都可以針對自己擅長的方面更好的解決問題;日趨複雜的軟體需求也使得混合
Time of Update: 2018-12-05
Mozilla Public LicenseMPL License,允許免費重發布、免費修改,但要求修改後的代碼著作權歸軟體的發起者。這種授權維護了商業軟體的利益,,它要求基於這種軟體得修改無償貢獻著作權給該軟體。這樣,圍繞該軟體得所有代碼得著作權都集中在發起開發人得手中。但MPL是允許修改,無償使用得。MPL軟體對連結沒有要求。BSD開源協議 BSD開源協議是一個給於使用者很大自由的協議。可以自由的使用,修改原始碼,也可以將修改後的代碼作為開源或者專有軟體再發布。
Time of Update: 2018-12-05
在網上看了很多有關序列化的文章,我自己也寫了兩篇,現在感覺這些文章都沒有很好的把序列化說清楚(包括我自己在內),所以在此我將總結前人以及自己的經驗,用更淺顯易懂的語言來描述該機制,當然,仍然會有不好的地方,希望你看後可以指出,作為一名程式員應該具有不斷探索的精神和強烈的求知慾望!序列化概述: 簡單來說序列化就是一種用來處理物件流程的機制,所謂物件流程也就是將對象的內容進行流化,流的概念這裡不用多說(就是I/O),我們可以對流化後的對象進行讀寫操作,也可將流化後的對象傳輸於網路之間(
Time of Update: 2018-12-05
Java的堆是一個運行時資料區,類的(對象從中分配空間。這些對象通過new、newarray、anewarray和multianewarray等 指令建立,它們不需要程式碼來顯式的釋放。堆是由記憶體回收來負責的,堆的優勢是可以動態地分配記憶體大小,生存期也不必事先告訴編譯器,因為它是在運行時 動態分配記憶體的,Java的垃圾收集器會自動收走這些不再使用的資料。但缺點是,由於要在運行時動態分配記憶體,存取速度較慢。
Time of Update: 2018-12-05
記得vamcily 曾問我:“為什麼擷取數組的長度用.length(成員變數的形式),而擷取String的長度用.length()(成員方法的形式)?”我當時一聽,覺得問得很有道理。做同樣一件事情,為什麼採用兩種風格迥異的風格呢?況且,Java中的數組其實是完備(full-fledged)的對象,直接暴露成員變數,可能不是一種很OO的風格。那麼,設計Java的那幫天才為什麼這麼做呢?帶著這個疑問,我查閱了一些資料,主要是關於“JVM是如何處理數組”的。數組對象的類是什嗎?
Time of Update: 2018-12-05
轉載自www.java3z.com 作者:不詳 我們一般的java運行計時代碼是: long begintime = System.currentTimeMillis(); //運算代碼 long endtinme=System.currentTimeMillis(); long costTime = (endtime -
Time of Update: 2018-12-05
到老外的網站找到的!修改了一下! import java.security.MessageDigest;public class MD5...{ private MessageDigest md5; private static MD5 Instance; /** *//** * Constructs the MD5 object and sets the string whose MD5 is to be computed. * * @param i
Time of Update: 2018-12-05
從選擇Java GPL許可方式開源,到擴充X86產品線,到現在的股票代號由“SUNW”改變為“JAVA”,施瓦茲正在向我們展現一個全新的、靈活的而不是食古不化的 Sun。IT 需要的是創新、創新、再創新,任何固執己見的傢伙註定要被淘汰。在大家都對Sun的過去欣賞有加、對現在不屑一顧、對未來漠不關心的時候,很高興看到枯木 逢春。這正是:又見咖啡火,又聞咖啡香。 背景:為了充分利用“Java”品牌,Sun計划下周將股市交易代碼由“SUNW”更改為“JAVA” Sun
Time of Update: 2018-12-05
Java Deep Clone Shallow Clone 深複製和淺複製為什麼要用Clone?Java通過傳遞控制代碼來傳參數。當你傳遞一個對象時實際上是傳遞了一個方法外的物件控點,因此當你對方法內的控制代碼做任何改變的時候實際上就是修改了方法外的對象。此外:Aliasing happens automatically during argument passing. 別名操作在對象傳遞過程中自動進行There are no local objects, only local handles.
Time of Update: 2018-12-05
先看一下項目的目錄結構:source目錄裡放Java來源程式,classes目錄裡放編譯好的class檔案。這兩個目錄裡的檔案都要按包結構組織好。當然,classes目錄也可以不必事先建立,這可以交給Ant去做。以下是我寫的build.xml,放在Hello目錄下:<?xml version="1.0" encoding="UTF-8" ?><project name="hello" default="compile" basedir=".">