Time of Update: 2018-12-05
一、簡介 BlockingQueue介面定義了一種阻塞的FIFO queue,每一個BlockingQueue都有一個容量,讓容量滿時往BlockingQueue中添加資料時會造成阻塞,當容量為空白時取元素操作會阻塞。ArrayBlockingQueue是對BlockingQueue的一個數組實現,它使用一把全域的鎖並行對queue的讀寫操作,同時使用兩個Condition阻塞容量為空白時的取操作和容量滿時的寫操作。二、具體實現
Time of Update: 2018-12-05
一、簡介 LinkedBlockingQueue是BlockingQueue的一種使用Link List的實現,它對頭和尾(取和添加操作)採用兩把不同的鎖,相對於ArrayBlockingQueue提高了輸送量。它也是一種阻塞型的容器,適合於實現“消費者生產者”模式。二、具體實現 LinkedBlockingQueue底層的定義如下:public class LinkedBlockingQueue<E> extends AbstractQueue<E>
Time of Update: 2018-12-05
一、簡介 ConcurrentHashMap是Map的一種並發實現,在該類中元素的read操作都是無鎖了,而write操作需要被同步。這非常適合於讀操作遠大於寫操作的情況。在實現過程中,ConcurrentHashMap將所有元素分成了若干個segment,每個segment是獨立的,在一個segment上加鎖並不影響其他segment的操作。segment本身是一個hashtable,對於一個加入ConcurrentHashMap的<key,
Time of Update: 2018-12-05
import org.junit.Test;public class ConstructorTest {@Test @SuppressWarnings("unchecked")public void testConstructor(){try {Class clazz = Class.forName("cn.vicky.utils.User");Method method = clazz.getDeclaredMethod("getName");Constructor<? extends
Time of Update: 2018-12-05
這裡,我不用什麼理論方式講述記憶體回收機制原理.我只通過2個簡單的程式,探討我對Java 記憶體回收機制的理解.畢竟很多東西,理論的術語可能沒有直觀的測試更好. package cn.vicky.chapt14;/** * * @author Vicky.H */public class FinalizeTest { public static void main(String[] args) throws InterruptedException {
Time of Update: 2018-12-05
時候,我們需要產生一個資料,這個資料儲存了使用者的資訊,但加密後仍然有可能被人使用,即便他人不確切的瞭解詳細資料...好比,我們在上網的時候,很多網頁都會有一個資訊,是否儲存登入資訊,以便下次可以直接登入而不必再次輸入賬戶,密碼等...而通常這樣需要Cookie儲存使用者資訊,當然,這個資訊是加密資訊,且一般都加了時間戳記等驗證資訊的...
Time of Update: 2018-12-05
import java.io.BufferedReader;import java.io.InputStreamReader;import java.lang.reflect.Method;import java.lang.reflect.Modifier;public class test { public static void main(String[] args) throws Exception {// BufferedReader bb=new
Time of Update: 2018-12-05
在JVM中如果98%的時間是用於GC且可用的 Heap size 不足2%的時候將拋出此異常資訊。 JVM堆的設定是指java程式運行過程中JVM可以調配使用的記憶體空間的設定.JVM在啟動的時候會自動化佈建Heap size的值,其初始空間(即-Xms)是實體記憶體的1/64,最大空間(-Xmx)是實體記憶體的1/4。可以利用JVM提供的-Xmn -Xms -Xmx等選項可進行設定。 我用的是MyEclipse 8.6,解決方案如下:
Time of Update: 2018-12-05
用Java編寫應用時,有時需要在程式中調用另一個現成的可執行程式或系統命令,這時可以通過組合使用Java提供的Runtime類和Process類的方法實現。下面是一種比較典型的程式模式: ... Process process = Runtime.getRuntime().exec(".//p.exe"); process.waitfor( ); ...
Time of Update: 2018-12-05
1.List轉換成為數組。(這裡的List是實體是ArrayList) 調用ArrayList的toArray方法。 toArray public <T> T[] toArray(T[]
Time of Update: 2018-12-05
package testEmail;import java.util.*;import javax.mail.internet.*;import javax.mail.*;public class JavaMail163 { static class MailAuthenticator extends javax.mail.Authenticator { String authenName; String authenPass; public
Time of Update: 2018-12-05
NIO 有一個主要的類Selector,這個類似一個觀察者,只要我們把需要探知的socketchannel告訴Selector,我們接著做別的事情,當有 事件發生時,他會通知我們,傳回一組SelectionKey,我們讀取這些Key,就會獲得我們剛剛註冊過的socketchannel,然後,我們從
Time of Update: 2018-12-05
1.寫一個類繼承與FileFilter package com.dream.musicplayer;import java.io.File;import java.io.FileFilter;public class MP3FileFilter implements FileFilter {@Overridepublic boolean accept(File file) {// TODO Auto-generated method stub//return
Time of Update: 2018-12-05
java 類比html表單(form)提交資料 包含多檔案 上傳 表單提交 for j2me j2se android我們先來看一下用html寫簡單的表單(form)是什麼樣的,如下:<html><head><title>上傳檔案測試頁面</title><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/></head><body>
Time of Update: 2018-12-05
Java IO 多種方式讀檔案一、多種方式讀檔案內容。1、按位元組讀取檔案內容2、按字元讀取檔案內容3、按行讀取檔案內容4、隨機讀取檔案內容import java.io.BufferedReader;import java.io.File;import java.io.FileInputStream;import java.io.FileReader;import java.io.IOException;import java.io.InputStream;import
Time of Update: 2018-12-05
"聲明一個boolean公開變數,表明當前httpconnection是否得到伺服器回應。 你的連接線程中在串連之前置這個變數為false; 另起一個監視線程,拿到那個HttpConnection的連線物件,並迴圈監視這個boolean公開變數。如果指定時間內(20秒後)你的boolean公開變數還是false,那麼就主動置httpconnection=null。這樣,那邊連接線程就會拋出異常退出來。" -----zhengyun 寫了Timer類來實現.(學習國外一個網站上的寫法)
Time of Update: 2018-12-05
1、Fibonacci-費式數列問題說明: Fibonacci為1200年代的歐洲數學家,在他的著作中曾經提到:若有一隻兔子每個月生一隻小兔子,一個月後小兔子也開始生產。起初只有一隻兔子,一個月後就有兩隻兔子,兩個月後有三隻兔子,三個月後有五隻兔子(小兔子投入生產)…… 2、巴斯卡三角形(Pascal) 問題說明: 巴斯卡(Pascal)三角形基本上就是在解nCr ,因為三角形上的每一個數字各對應一個nCr ,其中n為row,而r為colnmu
Time of Update: 2018-12-05
使用ant編譯打包java檔案1.獨立使用ant1.1得到ant與安裝到http://ant.apache.org/去下載。然後,解壓在c:/ant下。(文檔寫出,路徑盡量短)1.2配置設定環境變數:ANT_HOME:c:/antPATH: ;c:/ant/bin;1.3.使用建立一個檔案夾project.1.2.1建立工程。在其下建產src,用來存放原始碼。Lib用來存放要用到的jar包。1.2.2建立一個xml檔案example.xml
Time of Update: 2018-12-05
package com.softeem.jbs.lesson4;import java.util.Random;/** * 排序測試類別 * * 排序演算法的分類如下: * 1.插入排序(直接插入排序、折半插入排序、希爾排序); * 2.交換排序(冒泡泡排序、快速排序); * 3.選擇排序(直接選擇排序、堆排序); * 4.歸併排序; * 5.基數排序。 * * 關於排序方法的選擇: * (1)若n較小(如n≤50),可採用直接插入或直接選擇排序。 * 當記錄規模較小時,直接插入排序較好;
Time of Update: 2018-12-05
io操作的目標IO的流向IO中的核心類核心類的核心方法 int len 是 len是lengthimport java.io.*;public class Test {public static void main(String args[]){//聲明輸入資料流引用FileInputStream fis = null;try{//產生代表輸入資料流的對象fis = new FileInputStream("E:/baidu