java: 推薦jakarta common collection –JDK以外,更多的容器選擇

最近需要在記憶體中高效組織一個樹狀結構,所以仔細看了一下Collection. Sun的Collection種類太少,而且功能也很少.比如TreeMap的Iterator明明用二叉樹組織的,卻只能返迴向後尋找的Itorator,而且Itorator是Private的,很難利用.JDK裡面很多變數/方法都是私人的,很難繼承擴充一些功能.還好apache jakarta項目的common包裡面提供了各式各樣的Collection,有些很有意思,比如LazyMap,建議大家瀏覽一下,說不定以後會用到:

Java8對混入的類比

我們用JAVA8來通過 VEM 實現一個混入效果,不過事先警告的是:請不要在工作中使用!下面的實現不是安全執行緒的,而且還可能存在記憶體泄露問題,這取決於你在類中定義的 hashCode 和 equals 方法,這也是另外一個缺點,我將在後面討論這個問題。首先我們定義一個介面(類比狀態Bean)並提供方法的預設定義:1    public interface SwitchableMixin {2        boolean isActivated() default { return

Java靜態變數和建構函式的執行順序

案例:package com.devin;public class MyMain {public static void main(String args[]) { Father f = new Son(); }}class Father {public Father() { System.out.println("Father Construct"); }static int a=printFahter();static int printFahter(

Java之記憶體分析和String對象

  Java中記憶體分析:  棧(Stack) :存放基本類型的變數資料和對象的引用,但對象本身不存放在棧中,而是存放在堆(new 出來的對象)或者常量池中(字串常量對象存放在常量池中)。  堆(heap):存放所有new出來的對象。  常量池(constant pool):在堆中分配出來的一Block Storage地區,存放儲顯式的String常量和基本類型常量(float、int等)。另外,可以儲存不經常改變的東西(public static

Java之代理模式 (Proxy Pattern)

1.概念為其他對象提供一種代理以控制對這個對象的訪問。2.UML圖:3.代碼://抽象角色:public abstract class Subject{ abstract public void request();}//真實角色:實現了Subject的request()方法。public class RealSubject extends Subject{ public void request() {

javaRegex學習筆記(三)

在(一)和(二)中只是瞭解了一下Regex,今天深入了學習Regex在string類的應用,主要在matches(),split(),replace(),replaceAll(),replaceFirst等方法的應用.現在先看看它們在JDK1.6中的定義:matches  public boolean matches(String regex)  告知此字串是否匹配給定的Regex。  replace  public String replace(char oldChar,char

java類的載入時機

文章目錄 類的載入時機 類載入它直接表現出來的代碼應該是 ClassLoader.getSystemClassLoader().loadClass("com.my.test.AbcClass")。所以具 體完成類的載入工作的,是常被提到的類載入器ClassLoader,它就是專門幹這件事的。“類的載入”具體而言就是指將類.class檔案中的二進位

java異常的誤用

對於異常的誤用著實很常見,上一部分中已經列舉了幾個,大家仔細的看一下。下面再說兩個其他的。例1. 用一個Exception來捕捉所有的異常,頗有"一夫當關萬夫莫開"的氣魄。不過這也是最傻的行為。public void readFile(String file) {        BufferedReader reader = null;        Connection conn = null;        try {            reader = new

.NET和JAVA社區的不同氛圍

1.微軟的商業氣氛相當的濃厚,微軟所提供的能夠具備參考價值的案例大都是商業案例,並且都是趨於實用化的,在之前的log裡面提及架構設計的平衡問題,在這裡我們研究微軟所提供的Solusion的時候必須代入商務上的需求作為先導才能夠理解為什麼要這麼設計。 JAVA社區裡面開源的東西居多,學術氣氛更加濃厚一些,並且Demo多是些更加純粹一點的技術。2.JAVA的開源更加活躍一些,而.NET的社區裡還常常見到俺如何保護俺的代碼,雖然這些代碼90%以上都是垃圾,而我比較喜歡把自己寫的垃圾打包成磚頭拿出來拋磚

.NET不死,為什麼企業招聘都要java?

前些天寫了一個《程式員的感悟----路該怎麼走》,很多人看了留了言,不管是前輩的指點還是不屑的質疑,我都知道我在幹什麼。我要表達的無非就是一步一步往前走。一段時間一段路程。 可是現在很多企業的校園招聘都已經啟動啦。讓我這個立志先做.NET的程式員有點無所適從。首先我的.NET技術確實處於起步或者剛要進階的階段,缺少實戰。不過我是用心的去學.NET,CLR,它的機制架構,ASP.NET,C#,事件委託,線程,SOCKET。我是喜歡.NET的。比對java技術的感情好很多。 當我正準備為了面試找工而

嗯…開始學java

和python的玩玩鬧鬧不同,這次的java是因為工作需要而學的.我現在的項目是 http://www.browsercam.com (這幾天從我這裡訪問這個站比較慢,還不知道原因.),主要的產品功能有兩個:1.提供從不同系統的不同版本瀏覽器登陸某個網站的頁面抓圖,2.提供遠程登陸不同系統不同版本作業系統的體驗.廣告時間結束 下面來點實在的,誰告訴我學java的第一步是什麼?我現在下載了jdk和eclipse,現在正在下maven.時間緊任務急,我要在kenn(leader of

Java警示:Finally 塊未正常完成

最近開發寫java發現好多的警告,Finally 塊未正常完成 我不太習慣有這麼多的警告,所以我就會調整一下。參考代碼如下://取得序號  public static long get_seq(String seq,String sDataLink){    Connection conn = db.getConn();    PreparedStatement stmt = null;    ResultSet rs = null;    long lSeq = -1;    try {   

java學習入門到精通

工具篇JDK (Java Development Kit)JDK是整個Java的核心,包括了Java運行環境(Java Runtime Envirnment),一堆Java工具和Java基礎的類庫(rt.jar)。不論什麼Java應用伺服器實質都是內建了某個版本的JDK。因此掌握 JDK是學好Java的第一步。最主流的JDK是Sun公司發布的JDK,除了Sun之外,還有很多公司和組織都開發了自己的JDK,例如IBM公司開發

Java設計模式使用率爬行榜

Java設計模式使用率爬行榜使用頻率所屬類型模式名稱模式簡單定義5建立型Singleton單件保證一個類只有一個執行個體,並提供一個訪問它的全域訪問點。5結構型Composite組合模式將對象組合成樹形結構以表示部分整體的關係,Composite使得使用者對單個對象和組合對象的使用具有一致性。5結構型FA?ADE外觀為子系統中的一組介面提供一致的介面,fa?ade提供了一高層介面,這個介面使得子系統更容易使用。5結構型Proxy代理為其他對象提供一種代理以控制對這個對象的訪問5行為型Iterat

如何停止java線程

如何停止java的線程一直是一個困惱我們開發多線程程式的一個問題。這個問題最終在Java5的java.util.concurrent中得到了回答:使用interrupt(),讓線程在run方法中停止。簡介在Java的多線程編程中,java.lang.Thread類型包含了一些列的方法start(), stop(), stop(Throwable) and suspend(), destroy() and

在Java中使用NIO進行網路編程

在JDK中,有一個非常有意思的庫:NIO(New

Java分布式記憶體開源實現:Hazelcast

Hazelcast是一個Java的開源分布式記憶體實現,它具有以下特性:01    Distributed implementations of java.util.{Queue, Set, List, Map}02    Distributed implementation of java.util.concurrent.ExecutorService03    Distributed implementation of java.util.concurrency.locks.Lock04  

Java多線程編程中的Synchronized

Synchronized,顧名思義,代表線程同步。那麼,在java編程中如何使用它呢?我們首先來看這樣一個情況:對於同一個變數synDemo,我們分別在2個不同的線程中調用synDemo.synMethord1()與synDemo.synMethord2()。package com.cnblogs.gpcuster;/** * * @author Aaron.Guo * */public class Tester {public static void main(String[] args)

Android中Java根據檔案頭擷取檔案類型

前面貼過Android系統內部的MediaFile類來擷取檔案類型的辦法,這個類主要是根據檔案的副檔名來判斷,其準確性不是很好。具體可查看Android系統使用MediaFile類判斷音頻檔案類型。其實,擷取檔案類型最好的辦法便是根據檔案頭資訊來判斷。下面貼出相關代碼:public class FileType {      public static final HashMap<String, String> mFileTypes = new HashMap<String,

Java之觀察者模式

1.概念        定義一種一對多的依賴關係,當一個對象的狀態發生改變時,所有依賴於它的對象都得到通知並被自動更新。2.UML圖3.代碼interface Subject { public void attach(Observer observer); public void detach(Observer observer); void notifyObservers(); } public class ConcreteSubject implements Subject{private

總頁數: 4058 1 .... 2098 2099 2100 2101 2102 .... 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.