我依然記得,曾經在聽馬士兵的J2SE的課程時,講到regex時,有個方法叫"lookat",一向溫和的馬兄大怒,說SUN這個后知后覺的土鱉,這個名字取得多么垃圾。這個的人還混在sun里面,可以想見sun里面有多少這樣的貨色。又一年,sun被oracle收購,我大驚馬士兵的預見性
后來我在讀<<thinking in java>>時,發現Bruce,也在罵SUN。居然罵的話和馬士兵一樣
這么當然是馬士兵抄襲了。技術員也就這么點樂。無語。。。。。。
不要相信那誰誰的。只穿一手鞋,我后來想。似乎此話也引自馬士兵,不知馬士兵引自誰的。
從研究源碼開始吧。。。。。。
/**
*
*/
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居然可以打印錯誤。很少用到。Console下是紅色的。估計java.util.logger是在其上包裝的。
System.err.println("err");
// 得到系統的環境。
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());
}
// 得到系統的Properties,大致的打印情況和getenv()差不多。
Properties props = System.getProperties();
System.out.println(props);
// 安全管理,神馬玩藝。
SecurityManager man = System.getSecurityManager();
// 對于特定的數字,打印的HashCode是一樣的。
// 有時間再了解了解HashCode
System.out.println(System.identityHashCode(0));// 19621457
// 這個Channel就是java.nio里面的。用作流處理的一類的東西的。
// 大致上和Input,System.io相關。
Channel channel = System.inheritedChannel();
// 得到系統以long形式表示的當前時間。
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("我犯錯了。");
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"));
// 這個也沒什么用,得到系統配置,然后由系統設到一個prop.xml中。
// 其實也可以手動做。
// 有些人就是懷疑系統(JVM)是不是能給我們做更多的事。
// 其實系統不完美。
System.setProperties(prop);
Properties props2 = System.getProperties();
System.out.println(props2);
// 見名知義。這個方法參數我都不想填了。
// Sytem類肯定是java開發api時最先想到要開發的類了。
// 這個方法放在System里面
// 而不是在Arrays里面。是個歷史遺留問題。
// System.arraycopy(src, srcPos, dest, destPos, length)
}
}