1、java中,Integer和Integer類型比較時,是對象間的相等比較,不要直接用==,最好是其中一個調用一下intValue()方法,這樣,就變成了int與Integer比較,java 5的機制會保證二者的拆箱操作的。
2、對于一個字符串,調用split(":")這樣的形式,當作為分隔符的最后一個字段是空的時候,會直接忽略最后一個字段。此時可以考慮用:split(":",-1)。
3、定義double值時,注意對其進行加減操作的精度問題。比如:double a = 19.9,在實際存儲時,值為:19.89999999999999999999999999 (http://www.binaryconvert.com/result_double.html?decimal=056046057)。
4、StringBuffer 與 StringBuilder 中的方法和功能完全是等價的,只是StringBuffer 中的方法大都采用了 synchronized 關鍵字進行修飾,因此是線程安全的,而 StringBuilder 沒有這個修飾,可以被認為是線程不安全的。StringBuffer 始于 JDK 1.0,StringBuilder 始于 JDK 1.5。從 JDK 1.5 開始,帶有字符串變量的連接操作(+),JVM 內部采用的是StringBuilder 來實現的,而之前這個操作是采用 StringBuffer 實現的。通常情況下,使用StringBuilder即可。這里有一個性能考量的點:StringBuilder的構造函數中,推薦new StringBuilder(capability),采用這種方式需要預估StringBuilder大概需要容納的字符個數,估計量稍微偏大一點也比不估計的好。不然的話會出現原定容量不夠,字符串的頻繁拷貝的情形。此外,當我們需要截掉StringBuilder所代表的字符串最后一位時,可以直接采用setLength的方式。
5、當我們對Arrays.asList返回的List進行添加或刪除時將會報 java.lang.UnsupportedOperationException 異常。set(index,value)是可以的。