java

Java 手冊[1]
-----------
更換預設的java版本
alternatives --config java,會發現系統中已有二個java
安裝新版java後,以下列指令以加入清單中:
alternatives --install /usr/bin/java java /opt/java/jdk1.6.0_03/jre/bin/java 3
再以alternatives --config java將預設java切換到新版本
以java -version指令檢查版本是否更換
------------
中文為方格
所以...根據update-alternatives --config java這行指令找出系統默認的Java位置
我的是/usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0/jre/lib
在這裡產生一個fonts的資料夾
在底下再生一個fallback資料夾
最後把系統的uming.ttc直接link到/usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0/jre/lib/fonts/fallback
也就是:
#ln -s /usr/share/fonts/cjkuni/uming.ttc
(若是網頁上的applet,則要重啟Firefox,光重載頁面無效)
========================
OpenJDK
Java Desktop System
在Eclipse內建Jad的Decompile功能[1]
Java Communications API
假如這個串列埠已經有了 pathname, 就可以把它當成檔案來讀寫
-----
JACOB-JAVA COM Bridge,用java控制MS Office(當然是在win下)
或Apach的POI
-----
動態功能:編譯、載入與執行
用ClassLoader,如JDBC,Class.forName("xxx.xxx.xxx")
另,URLClassLoader可重載類別,不需事先設定Classpath。
URL url1 = new URL("file:c:/TC/");
URLClassLoader urlClassLoader1 =new URLClassLoader(new URL[] {url1});
Class c2 = urlClassLoader1.loadClass("CLTest");
Object o=c2.newInstance();
CLI2 ci=(CLI2)o;
ci.say();[來源]


另,Beanshell,JAVA解譯器,在軟體加上該功能,就可以讓使用者自行寫指令去擴充軟體功能。如jEdit
=====
java webstart
iRreporter 報表軟體 [1]
Java 2D[1, 2]

ByteBuffer bb = ByteBuffer.allocate(4);
Byte[] buf = new Byte[4];
br.read(buf);
float f3 = ByteBuffer.wrap(buf).order(ByteBuffer.LITTLE.ENDIAN).getFloat();//反序位元組

byte[] array=new byte[2];
ByteBuffer bf=ByteBuffer.allocate(4);
bf.order(ByteOrder.LITTLE_ENDIAN);//****指定排序方式****
bf.putInt(number);
bf.flip();
bf.get(array);

byte b[] = new byte[2];
RandomAccessFile input = new RandomAccessFile(sampleFile, "r" );//可以用seek()移到絕對位置, skipBytes(n)移動相對位置
b[1] = input.readByte();//***以相反順序讀到陣到***
b[0] = input.readByte();
samples = ByteBuffer.wrap(b).getShort();

Integer.reverseBytes();//Short也有
samples[k] = Short.reverseBytes(input.readShort());



String s = "test\ntest2\ntest3";
char buf[] = new char[s.length()];
s.getChars(0, s.length(), buf, 0);

CharArrayReader in = new CharArrayReader(buf);
BufferedReader f = new BufferedReader(in);

String tempStr = f.readLine();
while ( tempStr != null){
System.out.println("readLine1: " + tempStr);
tempStr = f.readLine();
}

Math類別
Math.round(A * Math.pow(10, i)) /Math.pow(10, i);//i表示小數點後幾位
b = new BigDecimal(a).setScale(3, BigDecimal.ROUND_HALF_UP).doubleValue(); //>=5進位,ROUND_HALF_DOWN為>5進位(=5不進位)

(1)Math.round()
正數時四捨五入,負數時五捨六入
(2)DecimalFormat.format()
四捨六入五成雙。五成雙的意思是,當要進位或捨去的那一位數剛好是 5 時,在進位或捨去後必須尾數雙數
DecimalFormat format = new DecimalFormat("####.#");
        format.setRoundingMode(RoundingMode.HALF_UP);//控制轉換的方式
(3)BigDecimal(double).setScale()
基本上是四捨五入,但有時五會是捨,無法檢簡的歸出一個邏輯,主因是 double 的值有時實際上不是我們認為的值,而是非常接近我們認為的值
(3)BigDecimal(String).setScale()
精確的四捨五入
1、 ROUND_UP:遠離零方向舍入。向絕對值最大的方向舍入,只要舍棄位非0即進位。
2、 ROUND_DOWN:趨向零方向舍入。向絕對值最小的方向輸入,所有的位都要舍棄,不存在進位情況。
3、 ROUND_CEILING:向正無窮方向舍入。向正最大方向靠攏。若是正數,舍入行為類似於ROUND_UP,若為負數,舍入行為類似於ROUND_DOWN。Math.round()方法就是使用的此模式。
4、 ROUND_FLOOR:向負無窮方向舍入。向負無窮方向靠攏。若是正數,舍入行為類似於ROUND_DOWN;若為負數,舍入行為類似於ROUND_UP。
5、 HALF_UP:最近數字舍入(5進)。這是我們最經典的四舍五入。
6、 HALF_DOWN:最近數字舍入(5舍)。在這裏5是要舍棄的。
7、 HAIL_EVEN:銀行家舍入法。

新建資料夾
if(!file.exists())
{
file.getParentFile().mkdirs();
try {
file.createNewFile();