随笔分类 - Java
摘要:说到克隆,其实是个比较简单的概念,跟现实生活正的克隆一样,复制一个一模一样的对象出来。clone()这个方法是从Object继承下来的,一个对象要实现克隆,需要实现一个叫做Cloneable的接口,这个接口没有什么方法,和Comparable接口差不多,仅仅是起一个标志作用,实现了这个接口你就能...
阅读全文
摘要:今天在看一本书的时候注意到一个String的intern()方法,平常没用过,只是见过这个方法,也没去仔细看过这个方法。所以今天看了一下。个人觉得给String类中加入这个方法可能是为了提升一点点性能,因为从常量池取数据比从堆里面去数据要快一些。(个人感觉) API上的那几句关于这个方法,其实...
阅读全文
摘要:1.JDK规定,equals相等的两个对象hashCode也必须相等,这两个方法都是从Object上面继承而来的,通过观察JDK源码可以发现Object的equals方法是对2个对象的地址(逻辑地址,也就是在JVM中映射一个物理地址)比较,而hashCode又是一个本地方法,其实hashCode就是内存中的一个地址,换句话说,2个相等的对象(地址相等)那么他们的hashCode也肯定是相等的,反过来hashCode不相等,equals也一定不相等,但是hashCode相等equals却不一定相等,因为在生成hashCode的时候可能有冲突,还有一种情况就是JDK的String、Intege..
阅读全文
摘要:package test;import java.util.Collection;import java.util.HashMap;import java.util.Map;import java.util.Map.Entry;import java.util.Set;import org.junit.Before;import org.junit.Test;/** * 对于Map的三种方式遍历 1.keySet() 2.values() 3.entrySet() * 三种方式得到Set之后,都可以使用 foreach或者iterator, 不能使用for,因为数据结构决定的 * * @aut
阅读全文
摘要:前奏: 比较三者之间的区别在与区别他们做相同的事情的时候的区别,那就是在我们常见的拼接字符串的时候,StringBuffer、StringBuilder调用的是appende()方法,而String很特别,是采用“+”号的方式。说明:如果想要搞的很清楚,建议去看看源码,写的比较清晰,并且自己测试几次。先看测试结果:测试次数String(毫秒)StringBuffer(毫秒StringBuilder(毫秒1万次 69 1 110万次 5822 2 120万次 22165 5 330万次 53970 8 550万次 186168 12 10结论:String > S...
阅读全文

浙公网安备 33010602011771号