省朝夕

 

Java基础备注

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)是可以的。

posted on 2013-01-07 21:15 hejianchao 阅读(410) 评论(0)  编辑  收藏 所属分类: java基础


只有注册用户登录后才能发表评论。


网站导航:
 

导航

统计

留言簿

文章分类

文章档案

搜索

最新评论