
JDK
iteye_13911
这个作者很懒,什么都没留下…
展开
-
String与StringBuffer中substring性能分析
在jdk1.6中,substring的使用要格外引起注意,首先我们来看看substring是如何实现的: 通过源代码我们看到,直接返回了String对象,我们继续看一下String类的这个构造函数: 通过源代码我们清晰的看到其实就是直接修改了offset,和count,那就面临一个问题,如果我当前对象长度是1000,但是我只需要前2个,那么就会浪费掉998,通过给出的注释我们...2014-09-10 20:34:27 · 881 阅读 · 1 评论 -
ArrayList中的retainAll和removeAll(JDK1.7)
在进行集合操作的时候ArrayList类中有两个非常方便的方法: 正如你所见,两个方法同时调用了一个batchRemove方法, 由于两个操作在进行contains判断时正好是逻辑上相反的关系,所以jdk1.7中对于removeAll 和 retainAll两个操作的共同点进行了抽象,使用一个boolean型参数巧妙的将两个方法合二为一...原创 2014-09-11 12:48:20 · 669 阅读 · 0 评论 -
JDK中 instance几种判断方式
每次阅读源代码的时候都会发现JDK中包含一些判断Instance的方法及关键字,有的时候就会被这些判断方式绕的晕晕的,今天我们就对这三种方式进行一些归纳总结。 isInstance 其实这个方法的注释说的还是很清楚的,简单一句话,后面那个Object变量能不能转成前面的Class类型,说好了它可不支持接口的判断,传入接口无论如何返回的都是FALSE。当然要求not-null ...2014-09-27 22:14:34 · 386 阅读 · 0 评论 -
Dangerous! Java中的HashMap
HashMap中是通过Entry存放键值对,通过hash算法计算出一个hashCode,然后存储到对应的位置,这样的工作方式决定了,在使用可变对象做为HashMap 的key的时候,如果没有override equals方法和hashCode方法,很有可能导致对象中元素的改变,使得产生不同的hash值,最终导致在当前的hashMap中找不到之前放入的值。所以在了解了hashMap...2014-11-01 17:27:18 · 109 阅读 · 0 评论