java API学习实例

import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.io.RandomAccessFile;
import java.lang.ref.SoftReference;
import java.math.BigDecimal;
import java.math.BigInteger;
import java.net.FileNameMap;
import java.text.SimpleDateFormat;
import java.util.ArrayDeque;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.BitSet;
import java.util.Calendar;
import java.util.Collection;
import java.util.Collections;
import java.util.Date;
import java.util.EnumSet;
import java.util.Enumeration;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Hashtable;
import java.util.IdentityHashMap;
import java.util.Iterator;
import java.util.LinkedHashMap;
import java.util.LinkedHashSet;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
import java.util.PriorityQueue;
import java.util.Queue;
import java.util.Random;
import java.util.Set;
import java.util.Stack;
import java.util.StringTokenizer;
import java.util.TimeZone;
import java.util.Timer;
import java.util.TimerTask;
import java.util.TreeMap;
import java.util.TreeSet;
import java.util.UUID;
import java.util.Vector;
import java.util.WeakHashMap;
import java.util.concurrent.ConcurrentLinkedQueue;
import java.util.zip.ZipEntry;
import java.util.zip.ZipFile;
import java.util.zip.ZipOutputStream;

/**
 * 云守护
 * 2012-11-28 
 * @author qq:542335496
 *
 */
public class TestAPI {

	enum Sex {
		MAN, WOMEN
	}

	@SuppressWarnings("unused")
	private class Person {
		private Integer id;
		private String name;

		public Person() {
		};

		public Person(Integer id, String name) {

			this.id = id;
			this.name = name;
		}

		public Integer getId() {
			return id;
		}

		public void setId(Integer id) {
			this.id = id;
		}

		public String getName() {
			return name;
		}

		public void setName(String name) {
			this.name = name;
		}

	}

	@SuppressWarnings("unchecked")
	public static void main(String[] args) throws Exception {
		/** 集合 */
		Collection collection;
		{
			collection=new ArrayList();
			collection.addAll(Arrays.asList(1,2,3,4,5,6,7,8,9));
			
			/** 中断程序的运行,测试用*/
			if(true){
				return ;
			}
		}
		/** 列表 */
		List list;
		/** 数组列表 */
		ArrayList arrayList;
		/** 链表 */
		LinkedList linkedList;
		/** 链表实现的hashmap */
		LinkedHashMap linkedHashMap;
		{
			arrayList=new ArrayList();
			for(int i=0;i<15;i++){
				arrayList.add(i);
			}
			System.out.println(arrayList);
			linkedList=new LinkedList();
			linkedList.addAll(arrayList);
			System.out.println(linkedList);
			linkedHashMap=new LinkedHashMap();
			for(int i=0;i<15;i++){
				linkedHashMap.put(i, "value"+i);
			}
			System.out.println(linkedHashMap);
			System.out.println(arrayList.contains(14));
			System.out.println(linkedList.indexOf(11));
			System.out.println(linkedList.offer(100));
			System.out.println(linkedList.peekLast());
			System.out.println(linkedList.peek());
			System.out.println(linkedList.remove(2));
			System.out.println(linkedList);
			
			Set set=linkedHashMap.keySet();
			Set> entrySet=linkedHashMap.entrySet();
			Iterator iterator=set.iterator();
			while(iterator.hasNext()){
				Integer key=iterator.next();
				String value=linkedHashMap.get(key);
				System.out.print(" key="+key+" value="+value);
			}
			System.out.println();		
			if(true){
				return ;
			}
		}
		/** 队列 */
		Queue queue;
		/**双端队列 */
		ArrayDeque arrayDeque;
		/**优先级队列 */
		PriorityQueue priorityQueue;
		ConcurrentLinkedQueue concurrentLinkedQueue;
		{
			priorityQueue = new PriorityQueue();
			priorityQueue.addAll(Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9, 10));
			System.out.println(priorityQueue);
					
			arrayDeque=new ArrayDeque();
			arrayDeque.addAll(priorityQueue);
			System.out.println(arrayDeque.pop());
			System.out.println(arrayDeque.poll());
			//入队列
			arrayDeque.push(500);
			arrayDeque.push(200);
			//出队列
			System.out.println(arrayDeque.remove());
			//入队列
			System.out.println(arrayDeque.add(99));
			System.err.println(arrayDeque);
			// 出队列,这里顺序乱了?
			//priorityQueue.poll();
			show(priorityQueue);
			Iterator  iterator=priorityQueue.iterator();
			while(iterator.hasNext()){			
				Integer data=iterator.next();
				System.out.print("\t"+data);			
			}
			System.out.println();
			concurrentLinkedQueue=new ConcurrentLinkedQueue();
			concurrentLinkedQueue.addAll(priorityQueue);
			System.out.println(concurrentLinkedQueue);
		
			if(true){
				return ;
			}
		}

		

		/** 栈 */
		Stack stack;
		{
			stack = new Stack();
			for (int i = 0; i < 10; i++) {
				stack.add(i);
			}
			show(stack);
			stack.addElement(111);
			// 容量不足时,增长一倍
			System.out.println(stack.capacity());
			System.out.println(stack.size());
			System.out.println(stack.indexOf(111));
			System.out.println(stack.remove(1));
			System.out
					.println(stack.retainAll(Arrays.asList(3, 4, 5, 6, 7, 8)));
			System.out.println(stack.search(3));
			System.out.println(stack.toString());
			System.out.println(stack.peek());
			stack.pop();
			stack.pop();
			stack.push(100);
			System.out.println(stack.subList(1, 4));

			show(stack);
			stack.removeAllElements();
			System.out.println(stack.isEmpty());

		}
		/** 向量 */
		Vector vector;
		{

			vector = new Vector();
			for (int i = 0; i < 20; i++) {
				vector.add(i);
			}
			show(vector);
			vector.addElement(1999);
			// 容量不足时,增大一倍
			System.out.println(vector.capacity());
			System.out.println(vector.contains(1));
			System.out.println(vector.containsAll(Arrays.asList(1, 2, 3, 4, 5,
					6)));
			System.out.println(vector.lastIndexOf(19));
			System.out.println(vector.remove(1));
			System.out.println(vector.removeAll(Arrays.asList(1, 2, 3, 4, 5, 6,
					7, 8, 9)));
			System.out.println(vector.retainAll(Arrays.asList(10, 11, 12, 13,
					14, 15, 60)));
			System.out.println(vector.size());
			System.out.println(vector.elementAt(2));
			System.out.println(vector.firstElement());
			System.out.println(vector.lastElement());
			System.out.println(vector.subList(1, 5));
			vector.ensureCapacity(52);
			System.out.println(vector.size());
			vector.removeAllElements();
			System.out.println(vector.isEmpty());
			show(vector);

		}

		System.out.println("========map=======");
		Map map;
		Hashtable hashtable;
		HashMap hashMap;
		// EnumMap enumMap;
		/** 树实现的map */
		TreeMap treeMap;
		// ConcurrentHashMap concurrentHashMap;
		// ConcurrentMap concurrentMap;
		WeakHashMap weakHashMap;
		IdentityHashMap identityHashMap;
		{
			hashMap = new HashMap();
			hashtable = new Hashtable();
			treeMap = new TreeMap();
			weakHashMap = new WeakHashMap();
			identityHashMap = new IdentityHashMap();
			for (int i = 0; i < 20; i++) {
				hashMap.put(i, "云守护" + i);
			}
			show(hashMap);
			hashtable.putAll(hashMap);
			treeMap.putAll(hashMap);
			weakHashMap.putAll(hashMap);
			identityHashMap.putAll(hashMap);
			show(hashtable);
			show(treeMap);
			show(weakHashMap);
			show(identityHashMap);
			System.out.println(hashMap.containsKey(14));
			System.out.println(hashMap.containsValue("云守护5"));
			System.out.println(hashMap.values());
			System.out.println(hashtable.remove(1));
			System.out.println(hashtable.values());
			hashtable.clear();
			System.out.println(hashtable.isEmpty());

		}
		System.out.println("========set=======");
		// 集合Set的使用
		Set set;
		BitSet bitSet;

		EnumSet enumSet;

		HashSet hashSet;
		/** 树实现的set */
		TreeSet treeSet;
		/** 链表实现的hashset */
		LinkedHashSet linkedHashSet;

		Iterator iterator;
		{

			enumSet = EnumSet.noneOf(Sex.class);
			hashSet = new HashSet();
			treeSet = new TreeSet();
			linkedHashSet = new LinkedHashSet();
			// 自动排序??
			for (int i = 15; i > 0; i--) {
				hashSet.add(i);
			}
			treeSet.addAll(hashSet);
			linkedHashSet.addAll(hashSet);

			enumSet.add(Sex.MAN);
			enumSet.add(Sex.WOMEN);
			show(hashSet);
			show(treeSet);
			show(linkedHashSet);
			show(enumSet);
			System.out.println(enumSet.size());
			enumSet.clear();
			System.out.println(enumSet.size());
			System.out.println(enumSet.isEmpty());
			System.out.println(hashSet.contains(10));
			System.out.println(linkedHashSet.containsAll(hashSet));
			linkedHashSet.remove(14);
			System.out.println(linkedHashSet.containsAll(hashSet));
			hashSet.removeAll(linkedHashSet);
			show(hashSet);
			Object[] objs = treeSet.toArray();
			show(objs);
			Integer[] strs = treeSet.toArray(new Integer[0]);
			show(strs);
			for (Iterator iterator2 = treeSet.iterator(); iterator2
					.hasNext();) {
				Integer data = iterator2.next();
				System.out.print(data + "\t");
			}
			System.out.println();

		}
		// 要学习
		java.util.StringTokenizer stringTokenizer;
		{
			String[] temps = "1,2,3,4,5,6".split(",");
			show(temps);
			stringTokenizer = new StringTokenizer("1,2,3,4,5,6,7,8,9", ",");
			String[] datas = new String[stringTokenizer.countTokens()];
			int i = 0;
			while (stringTokenizer.hasMoreTokens()) {

				String str = stringTokenizer.nextToken();
				System.out.print(str + "\t");
				datas[i] = str;
				i++;
			}
			System.out.println();
			show(datas);
		}
		java.util.Calendar calendar;
		java.util.Date date;
		{
			calendar = Calendar.getInstance();
			int year = calendar.get(Calendar.YEAR);
			int month = calendar.get(Calendar.MONTH) + 1;
			int day = calendar.get(Calendar.DAY_OF_MONTH);
			int hours = calendar.get(Calendar.HOUR_OF_DAY);
			int minute = calendar.get(Calendar.MINUTE);
			int second = calendar.get(Calendar.SECOND);
			System.out.println(year + "-" + month + "-" + day + " " + hours
					+ ":" + minute + ":" + second);

			date = new Date();
			System.out.println(date.after(new Date(
					System.currentTimeMillis() + 1000)));
			System.out.println(date.compareTo(new Date(System
					.currentTimeMillis() - 1000)));
			SimpleDateFormat dateFormat = new SimpleDateFormat(
					"yyyy-MM-dd HH:mm:ss");
			String str = dateFormat.format(date);
			System.out.println(str);

		}

		java.util.Random random;
		{
			random = new Random();
			System.out.println(random.nextBoolean());
			System.out.println(random.nextDouble());
			System.out.println(random.nextFloat());
			System.out.println(random.nextInt());
			System.out.println(random.nextInt(15));
			System.out.println(random.nextLong());
			byte[] datas = new byte[10];
			random.nextBytes(datas);
			System.out.println(datas);
			random.setSeed(10000);
			System.out.println(random.nextInt());
			System.out.println(random.nextInt());

		}
		java.util.Scanner scanner;
		java.util.Timer timer;
		java.util.TimerTask timerTask;
		{

			timer = new Timer();
			timerTask = new TimerTask() {

				@SuppressWarnings("deprecation")
				@Override
				public void run() {

					System.out.println(new Date().toLocaleString());
				}

			};
			timer.schedule(timerTask, 1000, 1000);
			// timerTask.run();

		}
		java.util.TimeZone timeZone;
		{
			System.gc();
			System.out.println(UUID.randomUUID());
			timeZone = TimeZone.getDefault();
			System.out.println(timeZone.getDisplayName());
			/**
			 * String[] strs=timeZone.getAvailableIDs(); for(String str:strs){
			 * System.out.println(str); }
			 */

		}
		java.lang.Character character;
		{
			character = Character.valueOf('f');
			int data = Character.digit(character, 16);
			System.out.println(data);
			int data2 = Character.digit(5, 16);
			System.out.println(data2);
			System.out.println(Character.isDigit('b'));
			System.out.println(Character.reverseBytes('a'));

		}
		java.lang.Process process;
		{
			process = Runtime.getRuntime().exec("cmd /c dir", null,
					new File("."));
			BufferedReader bufferedReader = new BufferedReader(
					new InputStreamReader(process.getInputStream(), "GBK"));
			String line;
			while ((line = bufferedReader.readLine()) != null) {
				System.out.println(line);
			}
			// ///
			System.out.println("=======");
			ProcessBuilder builder = new ProcessBuilder("java");
			builder.directory(new File(
					"C:\\Program Files\\Java\\jdk1.6.0_30\\bin"));
			Process process2 = builder.start();
			BufferedReader bufferedReader2 = new BufferedReader(
					new InputStreamReader(process2.getInputStream(), "GBK"));
			while ((line = bufferedReader2.readLine()) != null) {
				System.out.println(line);
			}

		}
		java.lang.Class class1;
		java.lang.CharSequence charSequence;
		{
			java.lang.ClassLoader.getSystemResource("file.xml");

			charSequence = "wujianhua";
			System.out.println(charSequence.charAt(6));
			System.out.println(charSequence.length());
			System.out.println(charSequence.subSequence(2, 5));
			System.out.println(charSequence.hashCode());

		}

		java.lang.Number number;
		java.lang.Package package1;
		{
			/**
			 * Package[] datas=Package.getPackages(); for(Package
			 * package2:datas){ System.out.println(package2.getName()); }
			 */
			package1 = Package.getPackage("java.lang");
			System.out.println(package1.getImplementationTitle());
			System.out.println(package1.getImplementationVendor());
			System.out.println(package1.getImplementationVersion());
			System.out.println(package1.getSpecificationTitle());
			System.out.println(package1.getSpecificationVendor());
			System.out.println(package1.getSpecificationVersion());
			System.out.println(package1.getDeclaredAnnotations());
			System.out.println(package1.isSealed());

		}
		java.lang.String string;
		{
			System.out.println("".isEmpty());

		}

		// 学习的接口

		java.util.Comparator comparator;
		java.util.RandomAccess randomAccess;
		java.util.SortedMap sortedMap;
		java.util.SortedSet sortedSet;

		java.applet.Applet applet;
		java.io.File file;
		java.io.FileFilter fileFilter;

		java.io.PrintWriter printWriter;
		{
			try {
				printWriter = new PrintWriter(new BufferedWriter(
						new FileWriter("writer.txt")));
				printWriter.append("你好");
				printWriter.append(",");
				printWriter.append("云守护");
				printWriter.println();
				printWriter.print("呵呵");
				printWriter.write("测试");
				printWriter.println(new BigInteger("123456789"));

				printWriter.flush();
				printWriter = new PrintWriter(System.out);
				printWriter.println("问鼎天下");
				printWriter.write("顺手牵羊");
				printWriter.flush();
				printWriter.close();

			} catch (IOException e) {
				e.printStackTrace();
			}

		}
		java.io.RandomAccessFile randomAccessFile;
		{
			try {
				randomAccessFile = new RandomAccessFile("test.txt", "rw");
				randomAccessFile.write("雨无声".getBytes());
				randomAccessFile.writeUTF("男");
				randomAccessFile.write(22);
				// again
				randomAccessFile.write("云守护".getBytes());
				randomAccessFile.writeUTF("女");
				randomAccessFile.write(21);
				randomAccessFile.close();
				RandomAccessFile randomAccessFile2 = new RandomAccessFile(
						"test.txt", "rw");
				randomAccessFile2.skipBytes(6);
				System.out.println(randomAccessFile2.getFilePointer());
				System.out.println(randomAccessFile2.readUTF());
				randomAccessFile2.skipBytes(1);
				byte[] names = new byte[6];
				randomAccessFile2.read(names);
				System.out.println(new String(names));
				randomAccessFile2.seek(0);
				randomAccessFile2.read(names);
				System.out.println(new String(names));
			} catch (Exception e) {
				e.printStackTrace();
			}
			if (true) {
				return;
			}

		}

		/** 软引用 */
		java.lang.ref.SoftReference softReference;
		{
			Integer data = 0;
			softReference = new SoftReference(data);
			data = softReference.get();
			if (data == null) {
				data = softReference.get();
			}
			System.out.println(data);

		}
		java.math.BigDecimal bigDecimal = new BigDecimal("123456789");

		System.out.println("====bigInteger===");
		java.math.BigInteger bigInteger = new BigInteger("123456789");
		{
			System.out.println(bigInteger.abs() + "\t" + bigInteger.bitCount()
					+ "\t" + bigInteger.bitLength());
			System.out.println(bigInteger.doubleValue());
			System.out.println(bigInteger.floatValue());
			System.out.println(bigInteger.longValue());
			System.out.println(bigInteger.intValue());
			System.out.println(bigInteger.divide(new BigInteger("11111111")));
			// System.out.println(bigInteger);
			System.out.println(bigInteger.multiply(new BigInteger("2")));
			System.out
					.println(bigInteger.subtract(new BigInteger("111111111")));
			System.out.println(bigInteger.add(new BigInteger("111111111")));

		}
		java.net.HttpURLConnection httpURLConnection;
		java.net.Socket socket;
		java.net.URI uri;
		java.net.URLConnection urlConnection;

		java.net.FileNameMap fileNameMap = new FileNameMap() {

			@Override
			public String getContentTypeFor(String fileName) {

				return "txt";
			}

		};

		System.out.println(fileNameMap.getContentTypeFor("d:\test.txt"));

		java.util.regex.Matcher matcher;
		java.util.regex.Pattern pattern;

		System.out.println("====zipFile===");
		java.util.zip.ZipFile zipFile;
		{
			File file2 = new File(".");
			System.out.println(file2.getAbsolutePath());
			try {
				zipFile("file.doc", "file.zip", "file.doc");
				unZip("file.zip", "d:/test/");
			} catch (Exception e) {
				e.printStackTrace();
			}

		}
		javax.crypto.Cipher cipher;
		System.out.println("====collections===");
		Collections collections;
		{
			List list2 = new ArrayList();
			Collections.addAll(list2, 12, 45, 62, 98, 32, 41, 15, 24, 3, 4);
			Collections.sort(list2);// 排序
			show(list2);
			int pos = 0;
			if ((pos = Collections.binarySearch(list2, 15)) != -1) {

				System.out.println("二分查找到的位置:" + pos);
			}
			;
			// 初始化,让list3.size()>0,然后才可以进行深拷贝
			List list3 = new ArrayList(Arrays
					.asList(new Integer[list2.size()]));
			System.out.println(list3.size());
			Collections.copy(list3, list2);// 拷贝
			show(list3);
			System.out.println("最大值:" + Collections.max(list3));
			System.out.println("最小值:" + Collections.min(list3));
			// 枚举集合
			Enumeration enumerations = Collections.enumeration(list2);
			show(enumerations);
			List list4 = new ArrayList();
			// 返回一个安全的集合
			list4 = Collections.synchronizedList(list3);
			show(list4);
			// 反转集合
			Collections.reverse(list3);
			show(list3);

		}

	}

	@SuppressWarnings("unchecked")
	private static void show(Queue queue) {
		for (Object obj : queue) {
			System.out.print("\t" + obj);
		}
		System.out.println();

	}

	private static void show(Map maps) {
		Set keySet = maps.keySet();
		// Set> entrySet=maps.entrySet();
		for (Iterator iterator = keySet.iterator(); iterator.hasNext();) {
			Integer key = iterator.next();
			String value = maps.get(key);
			System.out.print("key=" + key + "\tvalue=" + value + "\t");
		}
		System.out.println();
	}

	private static void show(Object[] objs) {
		for (Object data : objs) {
			System.out.print(data + "\t");
		}
		System.out.println();
	}

	@SuppressWarnings("unchecked")
	private static void show(Set hashSet) {

		for (Object data : hashSet) {
			System.out.print(data + "\t");
		}
		System.out.println();

	}

	public static void show(List datas) {
		for (Integer data : datas) {
			System.out.print(data + "\t");
		}
		System.out.println();

	}

	public static void show(Vector datas) {

		for (Integer data : datas) {

			System.out.print(data + "\t");
		}
		System.out.println();

	}

	public static void show(Enumeration datas) {

		for (Enumeration e = datas; e.hasMoreElements();) {
			System.out.print(e.nextElement() + "\t");
		}
		System.out.println();

	}

	public static void show(String[] datas) {
		for (String data : datas) {
			System.out.print(data + "\t");
		}
		System.out.println();
	}

	/** 压缩 */
	public static void zipFile(String srcFilePath, String destZipFilePath,
			String fileName) throws Exception {
		File file = new File(destZipFilePath);
		int leng = 0;
		byte[] b = new byte[1024];
		// 压缩
		ZipOutputStream zos = new ZipOutputStream(new FileOutputStream(file));

		// 被压缩的文件
		FileInputStream fis = new FileInputStream(srcFilePath);
		// 在压缩包中的路径
		ZipEntry z1 = new ZipEntry(fileName);
		zos.putNextEntry(z1);

		while ((leng = fis.read(b)) != -1) {
			zos.write(b, 0, leng);
		}
		zos.close();
		fis.close();
	}

	@SuppressWarnings("unchecked")
	public static void unZip(String fileName, String unZipDir) throws Exception {
		// 先判断目标文件夹是否存在,如果不存在则新建,如果父目录不存在也新建
		File f = new File(unZipDir);
		if (!f.exists()) {
			f.mkdirs();
		}
		BufferedOutputStream dest = null;
		BufferedInputStream is = null;
		ZipEntry entry;
		ZipFile zipfile = new ZipFile(fileName);
		Enumeration e = zipfile.entries();
		while (e.hasMoreElements()) {
			entry = (ZipEntry) e.nextElement();
			// System.out.println("Extracting: " + entry);
			is = new BufferedInputStream(zipfile.getInputStream(entry));
			int count;
			byte data[] = new byte[1024];
			FileOutputStream fos = new FileOutputStream(unZipDir + "/"
					+ entry.getName());
			// System.out.println("entry.getName(): " + entry.getName());
			dest = new BufferedOutputStream(fos, 1024);
			while ((count = is.read(data, 0, 1024)) != -1) {
				dest.write(data, 0, count);
			}
			dest.flush();
			dest.close();
			is.close();
		}
	}

	public static boolean makeDir(String unZipDir) {
		boolean b = false;
		try {
			File f = new File(unZipDir);
			if (!f.exists()) {
				b = f.mkdirs();
			}
		} catch (Exception e) {
			e.printStackTrace();
			return b;
		}
		return b;
	}
}

你可能感兴趣的:(java)