2013年11月24日
摘要: 对于HashSet而言,系统采用Hash算法决定集合元素的存储位置,这样可以保证快速存取集合元素;对于HashMap,系统将value当成key的附属,系统根据Hash算法来决定key的存储位置,这样可以保证快速存取集合key,而value总是紧随key存储。(这些集合虽然号称存储的是java对象,但实际上并不会真正将java对象放入set集合中,而只是在Set集合中保留这些对象的引用。当程序视图将多个key-value 放入HashMap中时,采用一种“Hash算法”来决定每个元素的存储位置。 1 public V put(K key, V value) 2 { 3 if(key =... 阅读全文
posted @ 2013-11-24 17:14 happinessqi 阅读(486) 评论(0) 推荐(0) 编辑
摘要: 看到HashSet的源代码的时候,有一个关键字不太认识它。。transient,百度整理之:Java的Serialization提供了一种持久化对象实例的机制,当持久化对象时,可能有一些特殊的对象数据成员,我们不想使用Serialization机制来保存它,可以在这个field之前加上关键字transient,表示这个field不是该对象串行化的一部分。例如password。Volatile修饰的成员变量在每次被线程访问时,都强迫从主内存中重读该成员变量的值。而且,当成员变量发生变化时,强迫线程将变化值回写到主内存。这样在任何时刻,两个不同的线程总是看到某个成员变量的同一个值。Java语言规范 阅读全文
posted @ 2013-11-24 14:53 happinessqi 阅读(162) 评论(0) 推荐(0) 编辑