JAVA設計模式 —行為模式總結__JAVA

行為模式主要是責任和演算法的抽象化。行為模式不僅僅是關於類和對象的,而且是關於它們之間的相互作用的。行為模式分為類的行為模式和對象的行為模式兩種。 類的行為模式     類的行為模式使用繼承關係在幾個類之間分配行為。對象的行為模式     對象的行為模式則使用對象的彙總來分配行為。 行為模式包括: 策略模式 模板方法模式 觀察者模式 迭代器模式 責任鏈模式 命令模式 備忘錄模式

JAVA設計模式(24) —代理(Proxy)模式__JAVA

定義:為其他對象提供一種代理以控制對這個對象的訪問。 類型:對象結構型模式 類圖: Proxy模式涉及的角色 抽象主題角色(Subject):聲明了代理主題和真實主題的公用介面,使任何需要真實主題的地方都能用代理主題代替。

Java ScheduledExecutorService教程__Java

ScheduledExecutorService擴充了ExecutorService介面,提供定時執行任務的功能(類似Timer)。 API 說明 Method Desc schedule(Callable<V> callable, long delay, TimeUnit unit) 建立並執行在給定延遲後啟用的 ScheduledFuture。

Java多線程之 Callable、Future和FutureTask__Java

最近在研究Android AsyncTask 源碼的時候,發現用到了很多JAVA SE 多線程的知識,於是回過頭來查閱JDK 文檔複習了一下Java多線程的相關知識,做一個筆記方便以後尋找。 JDK API 中關於Callable介紹 Callable 介面類似於 Runnable,兩者都是為那些其執行個體可能被另一個線程執行的類設計的。但是Runnable 不會返回結果,並且無法拋出經過檢查的異常。 

JAVA設計模式—解譯器模式(Interpreter)__JAVA

定義:給定一種語言,定義他的文法的一種表示,並定義一個解譯器,該解譯器使用該表示來解釋語言中句子。 類型:類行為型模式 類圖:   解譯器模式的結構 抽象解譯器:聲明一個所有具體運算式都要實現的抽象介面(或者抽象類別),介面中主要是一個interpret()方法,稱為解釋操作。具體解釋任務由它的各個實作類別來完成,具體的解譯器分別由終結符解譯器TerminalExpression和非終結符解譯器NonterminalExpression完成。

Java掃描classpath指定包路徑下所有class__Java

在寫架構時 經常需要掃描classpath指定包路徑下帶有某個Annotation的類,自己整理了一下 封裝成一個工具類了,供大家參考。 原始碼 ClassPathResourceScanner.java 如下: package com.bytebeats.jupiter.ioc;import com.bytebeats.jupiter.util.ClassHelper;import org.slf4j.Logger;import

JAVA設計模式—迭代器模式(Iterator)__JAVA

定義:提供一種方法順序訪問一個彙總對象中各個元素,而又不暴露該對象的內部細節。 類型:對象行為型模式 類圖:        如果要問java中使用最多的一種模式,答案不是單例模式,也不是原廠模式,更不是策略模式,而是迭代器模式,先來看一段代碼吧: [java]  view plain copy

JAVA設計模式—訪問者模式(Visitor)__JAVA

定義:封裝某些作用於某種資料結構中各元素的操作,它可以在不改變資料結構的前提下定義作用於這些元素的新的操作。 類型:對象行為型模式 類圖:        訪問者模式可能是行為類模式中最複雜的一種模式了,但是這不能成為我們不去掌握它的理由。我們首先來看一個簡單的例子,代碼如下: [java]  view plain copy

Java實現在圖片上添加浮水印圖片和浮水印文字__Java

public static void main(String[] args)  {   createMark("e://image//a.gif","e://image//b.jpg");   }   /**  * 在圖片上添加浮水印圖片和文字  * @param filePath 原圖片檔案路徑  * @param

maven命令建立java和javaweb工程__web

平時習慣了通過IDE來建立maven項目,比如Eclipse 使用Maven命令建立Maven項目,需要用到Maven Archetype Plugin, The Archetype Plugin allows the user to create a Maven project from an existing template called an archetype. It also allows the user to create an archetype

Java Base64、AES、SHA1、MD5密碼編譯演算法__編碼

package com.example.decript;import java.io.UnsupportedEncodingException;import java.security.InvalidKeyException;import java.security.MessageDigest;import java.security.NoSuchAlgorithmException;import java.security.SecureRandom;import

java.net.SocketException: No buffer space available (maximum connections reached?): connect__.net

最近在項目中使用HttpClient時,遇到這樣的問題,異常資訊如下: 資訊: Retrying connect 2013-1-23 16:36:31 org.apache.http.impl.client.DefaultRequestDirector tryConnect 資訊: I/O exception (java.net.SocketException) caught when connecting to the target host: No buffer space

Java AtomicInteger源碼分析__Java

在JDK1.5 中新增java.util.concurrent(J.U.C) 包,它建立在CAS之上。CAS是非阻塞演算法的一種常見實現,相對於synchronized這種阻塞演算法,它的效能更好。 樂觀鎖 樂觀鎖( Optimistic Locking)其實是一種思想。相對悲觀鎖而言,樂觀鎖假設認為資料一般情況下不會造成衝突,所以在資料進行提交更新的時候,才會正式對資料的衝突與否進行檢測,如果發現衝突了,則讓返回使用者錯誤的資訊,讓使用者決定如何去做。

二叉樹操作(Java語言)__Java

基本概念 樹 除了根節點之外,每個節點只要一個父節點,根節點沒有父節點。除了分葉節點之外,所有節點都有一個或者多個節點,分葉節點沒有子節點。父節點和子節點之間用指標相連。 二叉樹 所謂二叉樹是樹的一種特殊結構,在二叉樹中每個節點最多隻能擁有兩個子節點。 二叉樹具有以下性質: 非空二叉樹的第n層上至多有2^(n-1)個元素。 深度為h的二叉樹至多有2^h-1個結點。 資料結構定義 public class BTNode { int

Java 讀寫GZIP格式檔案__Java

      最近的工作中需要使用GZIP格式壓縮文本以縮減檔案大小,於是乎接觸到了GZIPInputStream/GZIPOutputStream這兩個類,還有ByteArrayOutputStream這個類。這裡寫了一個簡單的範例程式碼記錄一下,以備不時之需。 package com.ricky.java.test.junit;import java.io.ByteArrayOutputStream;import

利用FreeMarker產生java原始碼

一 FreeMarker簡介 Apache FreeMarker是一個Java模板引擎庫,官網:http://freemarker.incubator.apache.org/。 Apache FreeMarker is a template engine: a Java library to generate text output (HTML web pages, e-mails, configuration files, source code, etc.) based

Java 自訂類載入器實現外掛程式式開發__Java

最近接觸Solr比較多,感覺Solr提供的外掛程式式開發方式很酷,Solr對開發人員提供了一個核心api jar包,開發人員如果想擴充Solr某一項功能 比如 中文分詞,只需要繼承Solr提供的分詞介面添加自己的實現,然後把自己的分詞jar包拷貝到Solr指定目錄,並在solr設定檔中配置,重啟即可生效。 本文會涉及到自訂類載入,所以先介紹一下java類載入器的原理和工作機制,熟悉的同學可以直接跳過。 java類載入器

Java 產生N位隨機數的方法__Java

最近項目中有一個需求:在自增的id後加上N位隨機數,提高安全性,自己寫了一個簡單的實現方式。 思路: 通過JDK 的Math.random()函數產生一個[0,1]範圍內的隨機數,將這個隨機數乘以 9,然後再加1 就構成了[1,10]範圍的一個隨機數了(1位隨機數)。依次類推,要產生2位的隨機數只需要將Math.random()乘以 90,然後加上10就可以了。 實現代碼: /** * 產生4位隨機數 * @return */

Java 電話號碼去除IP號、+86__Java

最近項目中需要對電話號碼進行過濾,去掉IP號("1790", "1791", "1793", "1795","1796", "1797", "1799"),+86等首碼,跟大家分享一下。 package com.example.offline;public class TrimNumberTest {private static final

Java 異常(Exception)&自訂異常__Java

一Java異常體繫結構 java.lang.Object ----java.lang.Throwable --------java.lang.Exception ------------java.lang.RuntimeException --------java.lang.Error ------------java.lang.ThreadDeath Throwable類是 Java 語言中所有錯誤或異常的超類。只有當對象是此類(或其子類之一)的執行個體時,才能通過 JAVA

總頁數: 4058 1 .... 1158 1159 1160 1161 1162 .... 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.