Time of Update: 2017-01-19
複製代碼 代碼如下:(測試類別) package com.badu; public class Tste { public static void main(String[] args) { Class5 sa=new Class5("周阿郎",3,2,24);
Time of Update: 2017-01-19
舉個例子:int[] array = {2,4,9,7,6,5};第一輪2和4進行比較,2<4,位置不變。再4和9進行比較,4<9,位置不變。再9和7進行比較,9>7,9和7的位置互換。再9和6進行比較,9>6,9和6的位置互換。再9和5進行比較,9>5,位置互換。第一輪比較的結果就是2 4 7 6 5 9。第二輪2和4進行比較,2<4,位置不變。再4和7進行比較,4<7,位置不變。再7和5進行比較,7>6,7和6的位置互換。再7和5進行比較,7&
Time of Update: 2017-01-19
代碼:複製代碼 代碼如下:import java.io.BufferedOutputStream;import java.io.File;import java.io.FileInputStream;import java.io.FileOutputStream;import org.apache.tools.zip.ZipEntry;import org.apache.tools.zip.ZipOutputStream;/** * @project: Test *
Time of Update: 2017-01-19
一、問題描述生產者消費者問題是一個典型的線程同步問題。生產者生產商品放到容器中,容器有一定的容量(只能順序放,先放後拿),消費者消費商品,當容器滿了後,生產者等待,當容器為空白時,消費者等待。當生產者將商品放入容器後,通知消費者;當消費者拿走商品後,通知生產者。二、解決方案對容器資源加鎖,當取得鎖後,才能對互斥資源進行操作。複製代碼 代碼如下:public class ProducerConsumerTest { public static void
Time of Update: 2017-01-19
Java Lambda 運算式是 Java 8 引入的一個新的功能,可以說是類比函數式編程的一個文法糖,類似於 Javascript 中的閉包,但又有些不同,主要目的是提供一個函數化的文法來簡化我們的編碼。Lambda 基本文法Lambda 的基本結構為 (arguments) -> body,有如下幾種情況: 參數類型可推導時,不需要指定類型,如 (a) -> System.out.println(a) 當只有一個參數且類型可推導時,不強制寫 (), 如 a ->
Time of Update: 2017-01-19
使用foreach迴圈遍曆數組和集合時,無需獲得數組和集合的長度,無鬚根據索引來訪問數組元素和集合元素,foreach迴圈自動遍曆數組和集合的每一個元素。複製代碼 代碼如下:foreach的語句格式: for(type variableName : array|connection){ //variable自動迭代訪問每一個元素} 例子:複製代碼 代碼如下:public class ForEachTest{public static void
Time of Update: 2017-01-19
在jdk文檔中對RandomAccess介面的定義如下: public interface RandomAccess下面是jdk的註解翻譯List 實現所使用的標記介面,用來表明其支援快速(通常是固定時間)隨機訪問。此介面的主要目的是允許一般的演算法更改其行為,從而在將其應用到隨機或連續訪問列表時能提供良好的效能。將操作隨機訪問列表的最佳演算法(如 ArrayList )應用到連續訪問列表(如 LinkedList
Time of Update: 2017-01-19
這裡實現我使用到了struts2類比一個登入功能來驗證java實現的驗證碼功能。Java實現驗證碼的步驟:1、建立RandomImageGenerator.java類,該類實現驗證碼圖片的產生2、建立一個servlet類,RandomImageServlet.java,將產生的驗證碼輸出到頁面3、建立一個Action類,LoginAction.java,控制登入4、配置struts.xml一個web.xml檔案5、編寫頁面具體實現用代碼錶達1、建立RandomImageGenerator.jav
Time of Update: 2017-01-19
今天公司有個需求,需要做一些指定網站查詢後的資料的抓取,於是花了點時間寫了個demo供示範使用。思想很簡單:就是通過Java訪問的連結,然後拿到html字串,然後就是解析連結等需要的資料。技術上使用Jsoup方便頁面的解析,當然Jsoup很方便,也很簡單,一行代碼就能知道怎麼用了:Document doc = Jsoup.connect("http://www.oschina.net/") .data("query", "Java") // 請求參數 .userAgent("I ' m
Time of Update: 2017-01-19
本文主要接著前面多線程的兩篇文章總結Java多線程中的安全執行緒問題。一.一個典型的Java安全執行緒例子public class ThreadTest { public static void main(String[] args) { Account account = new Account("123456", 1000); DrawMoneyRunnable drawMoneyRunnable = new DrawMoneyRunnable(account, 700);
Time of Update: 2017-01-19
本文承接上一篇文章《Java多線程執行個體詳解(一)》。四.Java多線程的阻塞狀態與線程式控制制上文已經提到Java阻塞的幾種具體類型。下面分別看下引起Java線程阻塞的主要方法。1.join()join —— 讓一個線程等待另一個線程完成才繼續執行。如A線程線程執行體中調用B線程的join()方法,則A線程被阻塞,知道B線程執行完為止,A才能得以繼續執行。public class ThreadTest { public static void main(String[] args) {
Time of Update: 2017-01-19
String 字串常量StringBuffer 字串變數(安全執行緒)StringBuilder 字串變數(非安全執行緒) 簡要的說, String 類型和 StringBuffer 類型的主要效能區別其實在於 String 是不可變的對象, 因此在每次對 String 類型進行改變的時候其實都等同於產生了一個新的 String 對象,然後將指標指向新的 String 對象,所以經常改變內容的字串最好不要用 String
Time of Update: 2017-01-19
今天突然想起來,java產生隨機數的問題,上機試了一下,找到了一點區別,在這裡總結一下;直接調用Math.random()是產生一個[0,1)之間的隨機數,如果用java.util.Random random=new Random();random.nextInt()這樣產生一個長整型的隨機數並且與上一次是一樣的,如果過一會再產生就不會一樣了,例如:for (int i = 0; i < 10; i++) { Random random=new Random();
Time of Update: 2017-01-19
最近在研究JSON,Java中有很多處理JSON的類庫,lib-json、sf-json、fastjson還有Jackson Json。第一個就不說了,效能和功能都沒有什麼亮點。sf-json最大的優點就是隨機讀取方便。代碼很簡單:JSONObject json=
Time of Update: 2017-01-19
解析xml檔案有兩種方式,一種是利用Dom去解析,這種方式寫起代碼比較麻煩,對於剛入手的程式員來說比較容易出問題;第二種就是使用Dom4j包去解析在要使用Dom4j包的時候,肯定要先引入包複製代碼 代碼如下:import java.io.File;import java.io.FileWriter;import java.io.IOException;import java.io.Writer;import java.util.Iterator;import
Time of Update: 2017-01-19
首先,查到java裡檔案重新命名的方法為:renameTo();我將180張圖片放在d:\\backup下,用下面的程式進行重新命名:複製代碼 代碼如下:public void reName(){ String dir = "D:\\backup\\"; File file = new File(dir);
Time of Update: 2017-01-19
在[高並發Java 二] 多線程基礎中,我們已經初步提到了基本的線程同步操作。這次要提到的是在並發包中的同步控制工具。1. 各種同步控制工具的使用1.1 ReentrantLock
Time of Update: 2017-01-19
dom4j是一個非常優秀的Java XML API,具有效能優異、功能強大和極端易用使用的特點,同時它也是一個開放源工具。可以在這個地址http://dom4j.sourceforge.net進行下載。這裡我們使用到的dom4j是dom4j-1.6.1這個版本,我們只需要使用到如下兩個jar包:複製代碼 代碼如下:dom4j-1.6.1.jarcommons-io-2.4.jar1、dom4j讀取xml字串複製代碼 代碼如下:import org.dom4j.Document;import
Time of Update: 2017-01-19
複製代碼 代碼如下:mockery.checking(new Expectations() { { one(new
Time of Update: 2017-01-19
複製代碼 代碼如下:public class Change{ public static void main(String args[]){ final long L1=24* 60 * 60 * 1000 * 1000;final long L2=24* 60 * 60 * 1000;System.out.println(L1/L2); } }/*** output: 5*/ 為什麼輸出的是5呢?再看下面的代碼輸出:複製代碼 代碼如下: