我依然記得,曾經(jīng)在聽馬士兵的J2SE的課程時(shí),講到regex時(shí),有個(gè)方法叫"lookat",一向溫和的馬兄大怒,說SUN這個(gè)后知后覺的土鱉,這個(gè)名字取得多么垃圾。這個(gè)的人還混在sun里面,可以想見sun里面有多少這樣的貨色。又一年,sun被oracle收購,我大驚馬士兵的預(yù)見性
后來我在讀<<thinking in java>>時(shí),發(fā)現(xiàn)Bruce,也在罵SUN。居然罵的話和馬士兵一樣
這么當(dāng)然是馬士兵抄襲了。技術(shù)員也就這么點(diǎn)樂。無語。。。。。。
不要相信那誰誰的。只穿一手鞋,我后來想。似乎此話也引自馬士兵,不知馬士兵引自誰的。
從研究源碼開始吧。。。。。。
/**
*
*/
package com.wang.test;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintStream;
import java.nio.channels.Channel;
import java.util.Calendar;
import java.util.Iterator;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Properties;
import java.util.Set;
/**
* @author Sam Wang
* @since Mar 22, 2011
*/
public class TestSystem {
public static void main(String[] args) throws IOException {
// java居然可以打印錯(cuò)誤。很少用到。Console下是紅色的。估計(jì)java.util.logger是在其上包裝的。
System.err.println("err");
// 得到系統(tǒng)的環(huán)境。
Map<String, String> envs = System.getenv();
Set<Entry<String, String>> sets = envs.entrySet();
for (Iterator<Entry<String, String>> iterator = sets.iterator(); iterator
.hasNext();) {
Entry<String, String> entry = (Entry<String, String>) iterator
.next();
System.out.println(entry.getKey().toLowerCase() + ":"
+ entry.getValue().toLowerCase());
}
// 得到系統(tǒng)的Properties,大致的打印情況和getenv()差不多。
Properties props = System.getProperties();
System.out.println(props);
// 安全管理,神馬玩藝。
SecurityManager man = System.getSecurityManager();
// 對于特定的數(shù)字,打印的HashCode是一樣的。
// 有時(shí)間再了解了解HashCode
System.out.println(System.identityHashCode(0));// 19621457
// 這個(gè)Channel就是java.nio里面的。用作流處理的一類的東西的。
// 大致上和Input,System.io相關(guān)。
Channel channel = System.inheritedChannel();
// 得到系統(tǒng)以long形式表示的當(dāng)前時(shí)間。
long time = System.nanoTime();
System.out.println(time);
Calendar c = Calendar.getInstance();
c.setTimeInMillis(time);
System.out.println(c.getTime());
// 不太常見,表示不理解
System.runFinalization();
// System.err的包裝。
System.setErr(new PrintStream(new File("err.txt")));
System.err.println("我犯錯(cuò)了。");
System.setOut(new PrintStream(new File("out.txt")));
System.out.println("turn console to out.txt");
// System.in的包裝。
System.setIn(new FileInputStream("film.txt"));
InputStreamReader isr = new InputStreamReader(System.in);
BufferedReader br = new BufferedReader(isr);
String str = "";
while ((str = br.readLine()) != null) {
System.out.println(str);
}
Properties prop = new Properties();
// prop.load(new FileReader("test.properties"));
prop.loadFromXML(new FileInputStream("prop.xml"));
// 這個(gè)也沒什么用,得到系統(tǒng)配置,然后由系統(tǒng)設(shè)到一個(gè)prop.xml中。
// 其實(shí)也可以手動(dòng)做。
// 有些人就是懷疑系統(tǒng)(JVM)是不是能給我們做更多的事。
// 其實(shí)系統(tǒng)不完美。
System.setProperties(prop);
Properties props2 = System.getProperties();
System.out.println(props2);
// 見名知義。這個(gè)方法參數(shù)我都不想填了。
// Sytem類肯定是java開發(fā)api時(shí)最先想到要開發(fā)的類了。
// 這個(gè)方法放在System里面
// 而不是在Arrays里面。是個(gè)歷史遺留問題。
// System.arraycopy(src, srcPos, dest, destPos, length)
}
}