Time of Update: 2017-01-19
概述歸併(Merge)排序法是將兩個(或兩個以上)有序表合并成一個新的有序表,即把待排序序列分為若干個子序列,每個子序列是有序的。然後再把有序子序列合并為整體有序序列。歸併排序採用的是遞迴來實現,屬於“分而治之”,將目標數組從中間一分為二,之後分別對這兩個數組進行排序,排序完畢之後再將排好序的兩個數組“歸併”到一起,歸併排序最重要的也就是這個“歸併”的過程,歸併的過程中需要額外的跟需要歸併的兩個數組長度一致的空間。效果圖:步驟申請空間,使其大小為兩個已經排序序列之和,該空間用來存放合并後的序列設
Time of Update: 2017-01-19
關於遺傳演算法的詳細原理以及具體的定義這裡就不多介紹,想瞭解的可以自行百度,下面就簡單介紹下自己對遺傳演算法的理解,本文對基因的編碼採用二進位規則。演算法思想: 遺傳演算法參照達爾文的進化論,認為物種都是向好的方向去發展(適者生存),因此可以認為到足夠的代數之後,得到的最值可實際的最值很接近。演算法步驟: 1)隨機產生一個種群; 2)計算種群的適應度、最好適應度、最差適應度、平均適應度等指標;
Time of Update: 2017-01-19
引入:前段時間去銀行辦業務,排隊的人那是真多,自己正式辦理業務也就不到5分鐘,但是卻足足等了兩個小時(相信很多人都遇到過這種情況),對這種服務水平真的是無語了,但是問題又來了,銀行應該開幾個視窗,既能保證整體的服務品質,又能保證資源資源的利用率呢?下面我們就通過排隊論來類比這個問題。排隊論簡介
Time of Update: 2017-01-19
前言現如今幾乎大多數Java應用,例如我們耳熟能詳的tomcat, struts2, netty...等等數都數不過來的軟體,要滿足通用性,都會提供設定檔供使用者定製功能。甚至有一些例如Netty這樣的網路架構,幾乎完全就是由配置驅動,這樣的軟體我們也通常稱之為"微核心架構"的軟體。你把它配置成什麼,它就是什麼。It is what you configure it to be.最常見的設定檔格式是XML,
Time of Update: 2017-01-19
線程狀態圖線程共包括以下5種狀態。1. 建立狀態(New) : 線程對象被建立後,就進入了建立狀態。例如,Thread thread = new Thread()。2. 就緒狀態(Runnable): 也被稱為“可執行狀態”。線程對象被建立後,其它線程調用了該對象的start()方法,從而來啟動該線程。例如,thread.start()。處於就緒狀態的線程,隨時可能被CPU調度執行。3.
Time of Update: 2017-01-19
眾所周知,隨機數是任何一種程式設計語言最基本的特徵之一。而產生隨機數的基本方式也是相同的:產生一個0到1之間的隨機數。看似簡單,但有時我們也會忽略了一些有趣的功能。我們從書本上學到什嗎?最明顯的,也是直觀的方式,在Java中產生隨機數只要簡單的調用:java.lang.Math.random()在所有其他語言中,產生隨機數就像是使用Math工具類,如abs, pow, floor,
Time of Update: 2017-01-19
本文執行個體講述了Java互斥鎖。分享給大家供大家參考。具體分析如下:互斥鎖,常常用於多個線程訪問獨佔式資源,比如多個線程同時寫一個檔案,雖然互斥訪問方式不夠高效,但是對於一些應用情境卻很有意義//沒有互斥鎖的情況(可以自己跑跑看運行結果):public class LockDemo { // private static Object lock = new Object();// static確保只有一把鎖 private int i = 0; public void increaseI(
Time of Update: 2017-01-19
描述符描述符是你添加到那些定義中來改變他們的意思的關鍵詞。Java 語言有很多描述符,包括以下這些: 可訪問描述符 不可訪問描述符 應用描述符,你可以在類、方法、變數中加入相應關鍵字。描述符要先於聲明,如下面的例子所示(斜體):public class className { // ...}private boolean myFlag;static final double weeks = 9.5;protected static final int BOXWIDTH =
Time of Update: 2017-01-19
iText下載頁面: http://sourceforge.net/projects/itext/files/1.建立簡單的PDF檔案package console.pdf;import java.io.FileNotFoundException;import java.io.FileOutputStream;import com.itextpdf.text.Document;import com.itextpdf.text.DocumentException;import
Time of Update: 2017-01-19
這篇文章介紹了Java+Nginx實現POP、IMAP、SMTP郵箱代理服務,我們本次使用的環境為Centos7下,java程式我們通過eclipse匯出的war包運行在linux下的tomcat下執行的,具體見下:環境介紹:Hostname:java.iternalsoft.comIP:192.168.2.163Roles: Proxy Server OS:Centos7我們通過以下命令來修改新安裝的伺服器資訊:Hostnamectl set-hostname customname
Time of Update: 2017-01-19
Java
Time of Update: 2017-01-19
廢話不多說了,直接給大家分享java操作sql資料庫常見的串連問題。1.串連,查詢,更新,關閉這幾個資料基礎操作,所以放到一起,寫成一個工具類的模式,也就是model2模式的sql工具.這裡本想把其他動作都加進去,比如交易處理,但是目前還沒想到比較完美的方法,具體看代碼吧,注釋很詳細import java.sql.*;import java.util.Iterator;import java.util.Map;import java.util.Set;/*** Created by nl101
Time of Update: 2017-01-19
本文執行個體講述了Java列出2到100之間所有素數的方法。分享給大家供大家參考。具體實現方法如下://TestPrime.java:public class TestPrime { public static boolean isPrime(int num) { for(int i = 2; i <= Math.sqrt(num); i++) { //程式預設2是素數,當j=2時,迴圈不執行 if(num % i == 0) { return false; } }
Time of Update: 2017-01-19
本文執行個體講述了Java建立ZIP壓縮檔的方法。分享給大家供大家參考。具體如下:這裡注意:建議使用org.apache.tools.zip.*包下相關類,否則可能會出現中文亂碼問題。/** * 壓縮檔夾 * @param sourceDIR 檔案夾名稱(包含路徑) * @param targetZipFile 產生zip檔案名稱 * @author liuxiangwei */public static void zipDIR(String sourceDIR, String
Time of Update: 2017-01-19
定義:用原型執行個體指定建立對象的種類,並通過拷貝這些原型建立新的對象。類型:建立類模式類圖:原型模式主要用於對象的複製,它的核心是就是類圖中的原型類Prototype。Prototype類需要具備以下兩個條件:實現Cloneable介面。在java語言有一個Cloneable介面,它的作用只有一個,就是在運行時通知虛擬機器可以安全地在實現了此介面的類上使用clone方法。在java虛擬機器中,只有實現了這個介面的類才可以被拷貝,否則在運行時會拋出CloneNotSupportedExcepti
Time of Update: 2017-01-19
下面一段代碼準確的介紹了java實現單鏈表逆序,具體內容就不做詳解了,有需要的朋友可以直接拷貝了package com.ckw.mianshi;/** * java 實現單鏈表的逆序 * @author Administrator * */public class SingleLinkedReverse { class Node{ int data; Node next; public Node(int data){ this.data = data; } } public static
Time of Update: 2017-01-19
本文執行個體講述了Java使用Deque實現堆棧的方法。分享給大家供大家參考。具體如下:import java.util.ArrayDeque;import java.util.Deque;public class IntegerStack { private Deque<Integer> data = new ArrayDeque<Integer>(); public void push(Integer element) {
Time of Update: 2017-01-19
本文執行個體講述了Java線程同步的用法。分享給大家供大家參考。具體分析如下:多線程的使用為我們的程式提供了眾多的方便,同時它也給我們帶來了以往沒有考慮過的麻煩。當我們使用多執行緒共用資源時意外將會發生:比如我們一起外出就餐,每個人都是一個線程,餐桌上的食物則是共用資源,當我看到紅燒雞腿上桌後立即拿起筷子直奔目標,眼看著就得手的時候,突然~~~雞腿消失了,一個距離盤子更近的線程正在得意地啃著。為了避免上述問題的發生,Java為我們提供了“synchronized(同步化)修飾符”來避免資源衝突,
Time of Update: 2017-01-19
裡氏替換原則,OCP作為OO的高層原則,主張使用“抽象(Abstraction)”和“多態(Polymorphism)”將設計中的靜態結構改為動態結構,維持設計的封閉性。“抽象”是語言提供的功能。“多態”由繼承語義實現。裡氏替換原則包含以下4層含義: 子類可以實現父類的抽象方法,但是不能覆蓋父類的非抽象方法。 子類中可以增加自己特有的方法。 當子類覆蓋或實現父類的方法時,方法的前置條件(即方法的形參)要比父類方法的輸入參數更寬鬆。
Time of Update: 2017-01-19
定義1:如果對每一個類型為 T1的對象 o1,都有類型為 T2 的對象o2,使得以 T1定義的所有程式 P 在所有的對象 o1 都代換成 o2 時,程式 P 的行為沒有發生變化,那麼類型 T2 是類型 T1