Time of Update: 2017-01-19
策略模式屬於對象的行為模式。其用意是針對一組演算法,將每一個演算法封裝到具有共同介面的獨立的類中,從而使得它們可以相互替換。策略模式使得演算法可以在不影響到用戶端的情況下發生變化。策略模式的結構 策略模式是對演算法的封裝,是把使用演算法的責任和演算法本身分割開來,委派給不同的對象管理。策略模式通常把一個系列的演算法封裝到一系列的策略類裡面,作為一個抽象策略類的子類。用一句話來說,就是:“準備一組演算法,並將每一個演算法封裝起來,使得它們可以互換”。下面就以一個示意性的實現講解策略模式執行個體的
Time of Update: 2017-01-19
API中對隊列的說明: public interface Queue<E>extends Collection<E>在處理元素前用於儲存元素的 collection。除了基本的 Collection 操作外,隊列還提供其他的插入、提取和檢查操作。每個方法都存在兩種形式:一種拋出異常(操作失敗時),另一種返回一個特殊值(null 或 false,具體取決於操作)。插入操作的後一種形式是用於專門為有容量限制的 Queue
Time of Update: 2017-01-19
什麼是Socket網路上的兩個程式通過一個雙向的通訊串連實現資料的交換,這個雙向鏈路的一端稱為一個Socket。Socket通常用來實現客戶方和服務方的串連。Socket是TCP/IP協議的一個十分流行的編程介面,一個Socket由一個IP地址和一個連接埠號碼唯一確定。但是,Socket所支援的協議種類也不光TCP/IP一種,因此兩者之間是沒有必然聯絡的。在Java環境下,Socket編程主要是指基於TCP/IP協議的網路編程。Socket通訊的過程Server端Listen(監聽)某個連接埠是
Time of Update: 2017-01-19
前言寫背景程式的時候,經常需要儲存當前伺服器的時間戳記,使用時間戳也很方便,用戶端和伺服器端都可以根據自己的需求做各自的轉換在php裡,擷取目前時間戳使用time()函數,格式化輸出通過Date()函數即可,Java裡相對複雜一些,這裡簡單介紹一下Java語言中的Calendar,Date,DateFormat組成了Java標準的一個基本但是非常重要的部分。日期是商業邏輯計算一個關鍵的部分,所有的開發人員都應該能計算未來的日期,定製日期的顯示格式,並將文本資料解析成日期對象擷取UNIX時間戳記在
Time of Update: 2017-01-19
本文為大家分享的java演算法計算階乘,在學習Java課程時經常會遇到求階乘問題,今天接跟大家一起探討一下代碼如下:package com.xu.main; import java.util.Scanner; public class P9 { static long fact(int n) { if(n <= 1) { return 1; } else { return n * fact(n - 1);
Time of Update: 2017-01-19
事務事務是一步或多步組成操作序列組成的邏輯執行單元,這個序列要麼全部執行,要麼則全部放棄執行。事務的四個特性:原子性(Atomicity)、一致性(Consistency)、隔離性(IsoIation)和持久性(Durability)原子性(Atomicity):事務應用最小的執行單元,不可再分。是事務中不可再分的最小邏輯執行體。一致性(Consistency):事務的執行結果,必須使資料庫的從一個一致性的狀態變到另一個一致性的狀態。隔離線(IsoIation):各個事務的執行互不干擾,任意一個
Time of Update: 2017-01-19
讀取檔案流時,經常會遇到亂碼的現象,造成亂碼的原因當然不可能是一個,這裡主要介紹因為檔案編碼格式而導致的亂碼的問題。首先,明確一點,文字檔與二進位檔案的概念與差異。文字檔是基於字元編碼的檔案,常見的編碼有ASCII編碼,UNICODE編碼、ANSI編碼等等。二進位檔案是基於值編碼的檔案,你可以根據具體應用,指定某個值是什麼意思(這樣一個過程,可以看作是自訂編碼。)因此可以看出文字檔基本上是定長編碼的(也有非定長的編碼如UTF-8)。而二進位檔案可看成是變長編碼的,因為是值編碼嘛,多少個位元代表一
Time of Update: 2017-01-19
今天為大家分享的一個經驗就是java的定時任務,就是說在一天的某個時間點執行以下代碼。public class TimerManager { //時間間隔 private static final long PERIOD_DAY = 24 * 60 * 60 * 1000; public TimerManager() { Calendar calendar = Calendar.getInstance(); /*** 定製每日2:00執行方法 ***/
Time of Update: 2017-01-19
這篇文章將給出兩種從ArrayList中重複資料刪除元素的方法,分別是使用HashSet和LinkedHashSet。ArrayList是Java中最常用的集合類型之一。它允許靈活添加多個null元素,重複的元素,並保持元素的插入順序。在編碼時我們經常會遇到那種必須從已建成的ArrayList中重複資料刪除元素的要求。方法1:使用HashSet刪除ArrayList中重複的元素在該方法中,我們使用HashSet來重複資料刪除的元素。如你所知,HashSet不允許有重複的元素。我們使用HashSe
Time of Update: 2017-01-19
最近做了微信公眾號支付的開發,由於是第一次做也摸索了幾天的時間,也只是達到了實現功能的水平,並沒有太多考慮到效能問題,所以這篇文章比較適合初學者。 微信公眾號支付的總體其實很簡單,大致就分為三步。第一步需要擷取使用者授權;第二步調用統一下單介面擷取預支付id;第三步H5調起微信支付的內建的js。下面介紹具體每一步的開發流程。一
Time of Update: 2017-01-19
java中實現多線程的方法有兩種:繼承Thread類和實現runnable介面。1.繼承Thread類,重寫父類run()方法 public class thread1 extends Thread { public void run() { for (int i = 0; i < 10000; i++) { System.out.println("我是線程"+this.getId()); } } public
Time of Update: 2017-01-19
如何藉助SimpleDateFormat類實現“年-月-日 上午/下午時:分:秒”日期的格式化:import java.text.SimpleDateFormat; import java.util.Date; public class Test { public static void main(String[] args) { System.out.println(new SimpleDateFormat("yyyy-MM-dd ahh:mm:ss").format(new
Time of Update: 2017-01-19
目前有兩種流行Spring定時器配置:Java的Timer類和OpenSymphony的Quartz。1.Java Timer定時首先繼承java.util.TimerTask類實現run方法import java.util.TimerTask; public class EmailReportTask extends TimerTask{ @Override public void run() { ... } }在Spring定義...配置Spring定時器&
Time of Update: 2017-01-19
Java小例子:求素數素數(質數)指的是不能被分解的數,除了 1 和它本身之外就沒有其它數能夠整除。這裡是一個小例子,說明如何求取十萬以內的所有素數。 素數的分布沒有規律可言,所以要檢驗一個數是不是素數,就必須將它同所有小於它的數作除法。不過有一個簡便的方法,就是不需要檢驗所有小於它的數,而只要檢驗所有小於它的素數。如果所有小於它的素數都不能將其整除,那麼它就是素數。public class Primes { public static void main(String[]
Time of Update: 2017-01-19
Mark一下,同時可以很好的結合hashCode()和equals()方法,覆蓋equals方法時最好覆蓋hashcode(),保證equals的兩個對象,hashcode也相等,反過來:hashcode()不等,一定能推出equals()也不等;hashcode()相等,equals()可能相等,也可能不等。因為HashMap在get時,先比較hashcode,再比較equals,hashcode==&&equals,兩者都為true,則認為是相同的key1.  
Time of Update: 2017-01-19
本文執行個體講述了java之swing表格實現方法。分享給大家供大家參考。具體如下:import java.awt.*;import java.awt.event.*;import javax.swing.*;import javax.swing.tree.*;public class test extends JApplet{ public void init(){ Container contentPane = getContentPane();
Time of Update: 2017-01-19
本文執行個體講述了java之swing下拉式功能表實現方法。分享給大家供大家參考。具體如下:import java.awt.*;import javax.swing.*;import java.awt.event.*;public class test extends JAppletimplements ItemListener{ JLabel jtf; ImageIcon a1, a2, a3; public void init(){ Container contentPane =
Time of Update: 2017-01-19
本文執行個體講述了java之swing實現複選框的方法。分享給大家供大家參考。具體如下:import java.awt.*;import javax.swing.*;import java.awt.event.*;public class test extends JAppletimplements ItemListener{ JTextField jtf; public void init(){ Container contentPane = getContentPane();
Time of Update: 2017-01-19
面試的時候,棧和隊列經常會成對出現來考察。本文包含棧和隊列的如下考試內容:(1)棧的建立(2)隊列的建立(3)兩個棧實現一個隊列(4)兩個隊列實現一個棧(5)設計含最小函數min()的棧,要求min、push、pop、的時間複雜度都是O(1)(6)判斷棧的push和pop序列是否一致1、棧的建立:我們接下來通過鏈表的形式來建立棧,方便擴充。代碼實現:public class Stack {public Node head; public Node current;//方法:入棧操作
Time of Update: 2017-01-19
為什麼要線程同步因為當我們有多個線程要同時訪問一個變數或對象時,如果這些線程中既有讀又有寫操作時,就會導致變數值或對象的狀態出現混亂,從而導致程式異常。舉 個例子,如果一個銀行賬戶同時被兩個線程操作,一個取100塊,一個存錢100塊。假設賬戶原本有0塊,如果取錢線程和存錢線程同時發生,會出現什麼結果 呢?取錢不成功,賬戶餘額是100.取錢成功了,賬戶餘額是0.那到底是哪個呢?很難說清楚。因此多線程同步就是要解決這個問題。一、不同步時的代碼Bank.java package