javase
不会程序的JAVA程序媛
I'm willing to do anything but ordinary
展开
-
Java String intern() 方法
intern() 方法返回字符串对象的规范化表示形式。它遵循以下规则:对于任意两个字符串 s 和 t,当且仅当 s.equals(t) 为 true 时,s.intern() == t.intern() 才为 true。该方法返回一个字符串,内容与此字符串相同,但一定取自具有唯一字符串的池。例子public class Test { public static void main(String args[]) { String Str1 = new String("abc")原创 2020-08-13 23:13:49 · 133 阅读 · 0 评论 -
JAVA中的深拷贝与浅拷贝以及引用拷贝
JAVA中的深拷贝与浅拷贝以及引用拷贝文章目录JAVA中的深拷贝与浅拷贝以及引用拷贝背景浅拷贝含义实例结果深拷贝含义结果引用拷贝结果背景最近在看JDK源码,看到集合的时候,大部分集合都继承了Cloneable,并且集合中的clone()调用Cloneable里面的clone(),并且注释里面有一句话是Returns a shallow copy of thisxxx,也就是浅拷贝这让我不得不产生了下面的疑问什么是浅拷贝?为什么集合用的是浅拷贝?浅拷贝含义被复制对象的所有属性原创 2020-06-18 21:24:59 · 1352 阅读 · 0 评论 -
JDK1.8 HashMap源码研读
HashMap源码研读文章目录HashMap源码研读前面注释翻译和理解属性Node子类Static utilitieshash(Object key)comparableClassFor(Object x)compareComparables(Class<?> kc, Object k, Object x)tableSizeFor(int cap)tableSizeFor解析Public operations构造器putMapEntries(Map<? extends K, ? exte原创 2020-06-08 18:14:17 · 1217 阅读 · 0 评论 -
HashMap中的compute (),merge (),putIfAbsent (),computeIfPresent (),computeIfAbsent()的区别和用法
HashMap中的compute (),putIfAbsent (),computeIfPresent (),computeIfAbsent()的区别和用法测试代码 @Test public void test1 () { HashMap<String, Integer> map = new HashMap<> (); HashMap<String, Integer> map1 = new HashMap<> ()原创 2020-06-08 17:41:26 · 1373 阅读 · 0 评论 -
HashMap源码研读之putVal()和resize()
putVal(int hash, K key, V value, boolean onlyIfAbsent, boolean evict) /** * Implements Map.put and related methods * 实现Map.put和相关方法 * @param hash hash for key 键的哈希值 * @param key the key 键 * @param value the value to put 值原创 2020-06-08 14:46:41 · 1135 阅读 · 0 评论 -
容器中迭代器的fail-fast机制
容器中迭代器的fail-fast机制研究过ArrayList或HashMap源码的朋友就会发现,这两个类中都提到了fail-fast机制fail-fast机制理解ArrayList或HashMap集合在迭代时,机制如果有其他线程在修改,会触发迭代器的fail-fast,从而抛ConcurrentModificationException。fail-fast机制实现原理ArrayList或HashMap(一些是非线程安全的集合类)都是通过modCount字段来记录ArrayList或HashM原创 2020-06-07 15:32:53 · 1202 阅读 · 0 评论 -
ArrayList源码研读
ArrayList源码研读文章目录ArrayList源码研读属性构造器public ArrayList (int initialCapacity)public ArrayList ()public ArrayList (Collection<? extends E> c)容量削减public void trimToSize ()扩容ensureCapacity (int minCapacity)calculateCapacity (Object[] elementData, int minCa原创 2020-06-04 23:22:02 · 1132 阅读 · 0 评论 -
java中this关键字
this关键字对于两个相同类型的对象 a 和 b,你可能在想如何调用这两个对象的 peel() 方法:// housekeeping/BananaPeel.javaclass Banana { void peel(int i) { /*...*/ }}public class BananaPeel { public static void ma...原创 2020-03-29 14:40:31 · 875 阅读 · 0 评论