Time of Update: 2017-01-19
本文執行個體講述了java讀取wav檔案(波形檔案)並繪製波形圖的方法。分享給大家供大家參考。具體如下:因為最近有不少網友詢問我波形檔案讀寫方面的問題,出於讓大家更方便以及讓代碼能夠得到更好的改進,我將這部分(波形檔案的讀寫)代碼開源在GitHub上面。地址為https://github.com/sintrb/WaveAccess/,最新的代碼、例子、文檔都在那上面,我會在我時間精力允許的前提下對該項目進行維護,同時也希望對這方面有興趣的網友能夠加入到該開源項目上。以下內容基本都到期了,你可以直
Time of Update: 2017-01-19
本文執行個體講述了Java中計算時間差的方法。分享給大家供大家參考。具體如下:假設現在是2004-03-26 13:31:40過去是:2004-01-02 11:30:24要獲得兩個日期差,差的形式為:XX天XX小時XX分XX秒方法一:DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");try{ Date d1 = df.parse("2004-03-26 13:31:40"); Date d2 = df.parse("20
Time of Update: 2017-01-19
本文執行個體講述了java讀取properties檔案的方法。分享給大家供大家參考。具體分析如下:1.不在項目中讀取:Properties properties = new Properties();BufferedReader read = new BufferedReader(new InputStreamReader(new FileInputStream("檔案的路徑"),"utf-8"));properties.load(read);properties
Time of Update: 2017-01-19
/** * 選擇排序的思想: * 每次迴圈前,數組左邊都是部分有序的序列, * 然後選擇右邊待排元素,將其值儲存下來 * 依次和左邊已經排好的元素比較 * 如果小於左邊的元素,就將左邊的元素右移一位 * 直到和最左邊的比較完成,或者待排元素不比左邊元素小 */ package al; public class InsertionSort { public static void main(String[] args) { InsertionSort
Time of Update: 2017-01-19
/** * 選擇排序的思想: * 每次從待排序列中找到最小的元素, * 然後將其放到待排的序列的最左邊,直到所有元素有序 * * 選擇排序改進了冒泡排序,將交換次數從O(N^2)減少到O(N) * 不過比較次數還是O(N) */ package al; public class SelectSort { public static void main(String[] args) { SelectSort selectSort = new
Time of Update: 2017-01-19
/** * 漢諾塔大學的時候就學過,但是根本沒搞明白,唯一知道的就是要用遞迴的方法來求解。 * 問題描述: * 有三根杆子A,B,C。A杆上有N個(N>1)穿孔圓盤,盤的尺寸由下到上依次變小。 * 要求按下列規則將所有圓盤移至C杆: * 1.每次只能移動一個圓盤; * 2.大盤不能疊在小盤上面。 * 提示:可將圓盤臨時置於B杆,也可將從A杆移出的圓盤重新移回A杆, * 但都必須尊循上述兩條規則。 * 問:如何移?最少要移動多少次? * 解決方案: *
Time of Update: 2017-01-19
/** * 考拉茲猜想:Collatz Conjecture * 又稱為3n+1猜想、冰雹猜想、角穀猜想、哈塞猜想、烏拉姆猜想或敘拉古猜想, * 是指對於每一個正整數,如果它是奇數,則對它乘3再加1, * 如果它是偶數,則對它除以2,如此迴圈,最終都能夠得到1。 */ package al; public class CollatzConjecture { private int i = 1; public static void main(String[] args) {
Time of Update: 2017-01-19
/** * 快速計算位元中1的個數(Fast Bit Counting) * 該演算法的思想如下: * 每次將該數與該數減一後的數值相與,從而將最右邊的一位1消掉 * 直到該數為0 * 中間迴圈的次數即為其中1的個數 * 例如給定"10100“,減一後為”10011",相與為"10000",這樣就消掉最右邊的1 * Sparse Ones and Dense Ones were first described by Peter Wegner in * “A Technique
Time of Update: 2017-01-19
/** * 三角數字: * 比達哥斯拉領導下的古希臘數學家發現了一個有趣的數字序列1, 3, 6, 10, 15, 21,... * 你能看出他們有什麼規律嗎? * 對了它的規律就是f(x) = x+ f(x-1) * 想想是不是很像小時候打算盤從1一直加到100啊 */ package al; public class Triangle { public static void main(String[] args) { Triangle triangle = new
Time of Update: 2017-01-19
/** * 冒泡排序估計是每本演算法書籍都會提到的排序方法。 * 它的基本思路是對長度為N的序列,用N趟來將其排成有序序列。 * 第1趟將最大的元素排在序列尾部,第2趟將第2大的元素排在倒數第二的位置, * 即每次把未排好的最大元素冒泡到序列最後端。 * 該排序方法實際上分為兩重迴圈,外層迴圈:待排元素從數組的第1個元素開始。 * 內層迴圈:待排元素從數組的第1個元素開始,直到數組尾端未排過的元素。 * 在內迴圈中,如果遇到前面元素比其後的元素大就交換這兩個元素的位置。 *
Time of Update: 2017-01-19
/** * 樸素字串演算法通過兩層迴圈來尋找子串, * 好像是一個包含模式的“模板”沿待查文本滑動。 * 演算法的思想是:從主串S的第pos個字元起與模式串進行比較, * 匹配不成功時,從主串S的第pos+1個字元重新與模式串進行比較。 * 如果主串S的長度是n,模式串長度是 m,那麼Brute-Force的時間複雜度是o(m*n)。 * 最壞情況出現在模式串的子串頻繁出現在主串S中。 * 雖然它的時間複雜度為o(m*n),但在一般情況下匹配時間為o(m+n), *
Time of Update: 2017-01-19
本文執行個體講述了java自訂攔截器及其用法。分享給大家供大家參考。具體如下:LoginInterceptor.java檔案如下:package com.tq365.util;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpSession;import org.apache.struts2.ServletActionContext;import
Time of Update: 2017-01-19
本文執行個體講述了JAVA獲得網域名稱IP地址的方法。分享給大家供大家參考。具體如下:import java.net.InetAddress;import java.net.UnknownHostException;public class TestInetAddress {InetAddress myIpAddress = null;InetAddress[] myServer = null;public static void main(String args[])
Time of Update: 2017-01-19
本文執行個體講述了JAVA實現FTP斷點上傳的方法。分享給大家供大家參考。具體分析如下:這裡主要使用apache中的net包來實現。網址http://commons.apache.org/net/。具體包的下載和API文檔請看官網。 斷點上傳就是在上傳的過程中設定傳輸的起始位置。並設定二進位傳輸。import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.
Time of Update: 2017-01-19
現在項目中用到需要定時去檢查檔案是否更新的功能。timer正好用於此處。用法很簡單,new一個timer,然後寫一個timertask的子類即可。代碼如下:package comz.autoupdatefile; import java.util.Timer; import java.util.TimerTask; public class M { public static void main(String[] args) { // TODO todo.generated by
Time of Update: 2017-01-19
定義:封裝某些作用於某種資料結構中各元素的操作,它可以在不改變資料結構的前提下定義作用於這些元素的新的操作。類型:行為類模式類圖:例子:例如,思考一下添加不同類型商品的購物車,當點擊結算的時候,它計算出所有不同商品需付的費用。現在,計算邏輯即為計算這些不同類型商品的價格。或者說通過訪問者模式我們把此邏輯轉移到了另外一個類上面。讓我們實現這個訪問者模式的例子。為了實現訪問者模式,最先需要做的是建立能夠被添加到購物車中代表不同類型商品(itemElement)的類。ItemElement.javap
Time of Update: 2017-01-19
迴圈控制可能存在一種情況,當我們需要執行的代碼塊數次,通常被稱為一個迴圈。Java有非常靈活的三迴圈機制。可以使用以下三種迴圈之一: while 迴圈 do...while 迴圈 for 迴圈截至Java5,對增強for迴圈進行了介紹。這主要是用於數組。while 迴圈while迴圈是一個控制結構,可以重複的特定任務次數。文法while迴圈的文法是:while(Boolean_expression){ //Statements}在執行時,如果布林運算式的結果為真,則迴圈中的動作將被執行。
Time of Update: 2017-01-19
Java語言的一個優點就是取消了指標的概念,但也導致了許多程式員在編程中常常忽略了對象與引用的區別,本文會試圖澄清這一概念。並且由於Java不能通過簡單的賦值來解決對象複製的問題,在開發過程中,也常常要要應用clone()方法來複製對象。本文會讓你瞭解什麼是影子clone與深度clone,認識它們的區別、優點及缺點。 看到這個標題,是不是有點困惑:Java語言明確說明取消了指標,因為指標往往是在帶來方便的同時也是導
Time of Update: 2017-01-19
本文將討論以下4個問題 1. java Cloneable介面實現深拷貝 2. java 序列化實現深拷貝 3. 號稱最快的深拷貝二方庫cloning源碼分析 4. 幾種拷貝方式速度的比較深拷貝的概念本文就不說了。在C++中實現深拷貝一般情況下重載賦值操作符 “=”
Time of Update: 2017-01-19
本文執行個體講述了java實現的五子棋遊戲代碼,分享給大家供大家參考,具體代碼如下package gyb.exam; import java.awt.BorderLayout;import java.awt.Color;import java.awt.Dimension;import java.awt.Font;import java.awt.Graphics;import java.awt.Point;import java.awt.Toolkit;import java.awt.event.