JAVA的list,set,數組之間的轉換,主要是使用Apache Jakarta Commons Collections,具體的方法如下: import org.apache.commons.collections.CollectionUtils; String[] strArray = {"aaa", "bbb", "ccc"};
一、概念Annontation是JDK5.0 開始引入的新特徵。中文名稱一般叫註解。它提供了一種安全的類似注釋的機制,用來將任何的資訊或中繼資料(metadata)與程式元素(類、方法、成員變數等)進行關聯。更通俗的意思是為程式的元素(類、方法、成員變數)加上更直觀更明了的說明,這些說明資訊是與程式的商務邏輯無關,並且是供指定的工具或架構使用的。Annontation像一種修飾符一樣,應用於包、類型、構造方法、方法、成員變數、參數及本地變數的聲明語句中。 二、原理
IT程式員開發必備-各類資源下載清單,史上最全IT資源,個人收藏總結。 Bean Serializable Interface
最近項目中需要從網站上抓取大量的資料,採用了多線程技術,每個線程抓取的資料都需要儲存到一個檔案中,避免消耗大量的記憶體。 思路:多個訪問線程將需要寫入到檔案中的資料先儲存到一個隊列裡面,然後由專門的 寫出線程負責從隊列中取出資料並寫入到檔案中。 WriterQueue.java 存放要輸出的資料隊列 package com.yulore.write;import java.util.LinkedList;import java.util.concurrent.locks.
public static boolean isLetter(char c) { int k = 0x80; return c / k == 0 ? true : false; }/** * 判斷字串是否為空白 * @param str * @return */public static boolean isNull(String str){if(str==null||str.trim().equals("")||str.trim().
定義:為子系統中的一組介面提供一個一致的介面,Facade模式定義了一個高層介面,這個介面使得這一子系統更加容易使用。 類型:對象結構型模式 類圖: Facade模式的結構 外觀角色(Facade):是模式的核心,他被客戶client角色調用。它知道那些子系統類負責處理請求,並將客戶的請求轉寄給適當的子系統對象。 子系統角色(Subsystem
今日調試項目時,啟動Tomcat出現java.io.IOException異常.主要錯誤提示如下: 嚴重: IOException while loading persisted sessions: java.io.EOFException 嚴重: Exception loading sessions from persistent storage
定義:將對象組合成樹形結構以表示 “部分 — 整體” 的階層。Composite模式使得使用者對單個對象和組合對象的使用具有一致性。 類型:對象結構型模式 類圖: 組合模式的結構 抽象構件角色(component):是組合中的對象聲明介面,在適當的情況下,實現所有類共有介面的預設行為。聲明一個介面用於訪問和管理Component子組件。 這個介面可
定義:將一個類的介面轉換成客戶希望的另一個介面。Adapter模式使得原本由於介面不相容而不能一起工作的那些類可以一起工作。 類型:類對象結構型模式 類圖: 在GoF的設計模式中,對適配器模式講了兩種類型,類適配器模式和對象適配器模式。由於類適配器模式通過多重繼承對一個介面與另一個介面進行匹配,而C#、java等語言都不支援多重繼承,因而這裡只是介紹對象適配器。 類適配器模式使用多重繼承對一個介面和另一個介面進行匹配,如下圖所示:
定義:運用共用技術有效地支援大量細粒度的的對象。 類型:對象結構型模式 類圖: FlyWeight模式的結構 抽象享元角色(Flyweight):描述一個介面,通過這個介面可以Flyweight可以接受並作用於外部狀態。
最近在研究Android AsyncTask 源碼的時候,發現用到了很多JAVA SE 多線程的知識,於是回過頭來查閱JDK 文檔複習了一下Java多線程的相關知識,做一個筆記方便以後尋找。 JDK API 中關於Callable介紹 Callable 介面類似於 Runnable,兩者都是為那些其執行個體可能被另一個線程執行的類設計的。但是Runnable 不會返回結果,並且無法拋出經過檢查的異常。
在寫架構時 經常需要掃描classpath指定包路徑下帶有某個Annotation的類,自己整理了一下 封裝成一個工具類了,供大家參考。 原始碼 ClassPathResourceScanner.java 如下: package com.bytebeats.jupiter.ioc;import com.bytebeats.jupiter.util.ClassHelper;import org.slf4j.Logger;import
定義:封裝某些作用於某種資料結構中各元素的操作,它可以在不改變資料結構的前提下定義作用於這些元素的新的操作。 類型:對象行為型模式 類圖: 訪問者模式可能是行為類模式中最複雜的一種模式了,但是這不能成為我們不去掌握它的理由。我們首先來看一個簡單的例子,代碼如下: [java] view plain copy
在JDK1.5 中新增java.util.concurrent(J.U.C) 包,它建立在CAS之上。CAS是非阻塞演算法的一種常見實現,相對於synchronized這種阻塞演算法,它的效能更好。 樂觀鎖 樂觀鎖( Optimistic Locking)其實是一種思想。相對悲觀鎖而言,樂觀鎖假設認為資料一般情況下不會造成衝突,所以在資料進行提交更新的時候,才會正式對資料的衝突與否進行檢測,如果發現衝突了,則讓返回使用者錯誤的資訊,讓使用者決定如何去做。
最近的工作中需要使用GZIP格式壓縮文本以縮減檔案大小,於是乎接觸到了GZIPInputStream/GZIPOutputStream這兩個類,還有ByteArrayOutputStream這個類。這裡寫了一個簡單的範例程式碼記錄一下,以備不時之需。 package com.ricky.java.test.junit;import java.io.ByteArrayOutputStream;import
最近接觸Solr比較多,感覺Solr提供的外掛程式式開發方式很酷,Solr對開發人員提供了一個核心api jar包,開發人員如果想擴充Solr某一項功能 比如 中文分詞,只需要繼承Solr提供的分詞介面添加自己的實現,然後把自己的分詞jar包拷貝到Solr指定目錄,並在solr設定檔中配置,重啟即可生效。 本文會涉及到自訂類載入,所以先介紹一下java類載入器的原理和工作機制,熟悉的同學可以直接跳過。 java類載入器
最近項目中需要對電話號碼進行過濾,去掉IP號("1790", "1791", "1793", "1795","1796", "1797", "1799"),+86等首碼,跟大家分享一下。 package com.example.offline;public class TrimNumberTest {private static final
一Java異常體繫結構 java.lang.Object ----java.lang.Throwable --------java.lang.Exception ------------java.lang.RuntimeException --------java.lang.Error ------------java.lang.ThreadDeath Throwable類是 Java 語言中所有錯誤或異常的超類。只有當對象是此類(或其子類之一)的執行個體時,才能通過 JAVA
最近做Android項目需要內建一些資料檔案,使用了zip壓縮以減少資料包的體積,在用戶端就需要去 解壓縮zip檔案。總結了一下網上前輩的資料,寫了一個解壓縮zip 的工具類,以便複用。 ZipUtils.java package com.example.zip;import java.io.*;import java.util.ArrayList;import java.util.Collection;import java.util.Enumeration;import
今天在學習的Maven的時候需要執行Maven構建出來的jar檔案是否正確,故需要執行該jar檔案看看運行結果是否正確。 Maven工程的目錄結果如下: Eclipse的工作目錄在E:\workspace\EX11下,如下圖所示: Maven構建的jar檔案在target目錄下,名稱為helloworld-0.0.1-SNAPSHOT,在Dos下直接執行如下命令: E:\workspace\EX1