JAVA基础 七月 05, 2019

java基础之HashMap与ConcurrentHashMap重点解读

文章字数 3.4k 阅读约需 3 mins.

HashMap 说明
底层结构 1. JDK1.8之前:数组+链表
2. JDK1.8:数组+链表/红黑树
链表与红黑树之间的转换:
链表->红黑树:链表长度大于等于8且数组长度(hash桶)大于等于64的时候
红黑树->链表:红黑树的节点数量小于等于6的时候退化为链表
元素特性 key、value可以为null,只能有一个key为null的键值对,允许有多个value为null的键值对
hash桶的数量 默认16,加载因子默认0.75(HashMap也许是按照lazy-load原则,在首次put元素时在resize()方法中初始化)
扰动函数 1. JDK1.8之...
查看全文

JAVA基础 六月 28, 2019

Java基础之intern方法

文章字数 2.3k 阅读约需 2 mins.

String.intern() 方法可以使得所有含相同内容的字符串都共享同一个内存对象。

JVM 中,存在一个字符串常量池,字符串的值都存放在这个池中。当调用 intern 方法时,如果字符串常量池中已经存在该字符串,那么返回池中的字符串;否则将此字符串添加到字符串常量池中,并返回字符串的引用。

JDK1.6 中,常量池在方法区。JDK1.7 中,常量池移到堆区了。

JDK1.6

  • 字符串常量池有该字符串,则返回字符串常量池中的引用。
  • 字符串常量池没有该字符串,会拷贝字符串至字符串常量池。

JDK1...

查看全文
0%