![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java源码
「已注销」
这个作者很懒,什么都没留下…
展开
-
java源码:LinkedHashSet
1. LinkedHashSet概述: LinkedHashSet是具有可预知迭代顺序的Set接口的哈希表和链接列表实现。此实现与HashSet的不同之处在于,后者维护着一个运行于所有条目的双重链接列表。此链接列表定义了迭代顺序,该迭代顺序可为插入顺序或是访问顺序。 注意,此实现不是同步的。如果多个线程同时访问链接的哈希Set,而其中至少一个线程修改了该Set,则它必转载 2016-08-05 22:59:33 · 268 阅读 · 0 评论 -
【Java集合源码剖析】ArrayList源码剖析
ArrayList简介 ArrayList是基于数组实现的,是一个动态数组,其容量能自动增长,类似于C语言中的动态申请内存,动态增长内存。 ArrayList不是线程安全的,只能用在单线程环境下,多线程环境下可以考虑用Collections.synchronizedList(List l)函数返回一个线程安全的ArrayList类,也可以使用concurrent并发包下转载 2016-09-02 20:48:44 · 257 阅读 · 0 评论 -
【Java集合源码剖析】LinkedList源码剖析
LinkedList简介 LinkedList是基于双向循环链表(从源码中可以很容易看出)实现的,除了可以当做链表来操作外,它还可以当做栈、队列和双端队列来使用。 LinkedList同样是非线程安全的,只在单线程下适合使用。 LinkedList实现了Serializable接口,因此它支持序列化,能够通过序列化传输,实现了Cloneable接口,能被克转载 2016-09-02 20:42:44 · 260 阅读 · 0 评论 -
java HashMap源码分析(JDK8)
这两天在复习JAVA的知识点,想更深层次的了解一下JAVA,所以就看了看JAVA的源码,把自己的分析写在这里,也当做是笔记吧,方便记忆。写的不对的地方也请大家多多指教。 JDK1.6中HashMap采用的是位桶+链表的方式,即我们常说的散列链表的方式,而JDK1.8中采用的是位桶+链表/红黑树的方式,也是非线程安全的。当某个位桶的链表的长度达到某个阀值的时候,这个链表就将转换成红黑树。转载 2016-08-30 16:59:40 · 524 阅读 · 0 评论 -
Java String 源码浅析
引言 从一段代码说起: public void stringTest(){ String a = "a"+"b"+1; String b = "ab1"; System.out.println(a == b); } 大家猜一猜结果如何?如果你的结论是true。好吧,再来一段代码: public void stringTest(){ String a =原创 2016-08-19 19:44:37 · 5970 阅读 · 0 评论 -
源码角度解析:StringBuffer、StringBuilder、String
长久以来,我们被教导字符串的连接最好用StringBuffer、StringBuilder,但是我们却不知道这两者之间的区别.跟字符串相关的一些方法中总是有CharSequence、StringBuffer、StringBuilder、String,他们之间到底有什么联系呢? 1、从类的定义看CharSequence、StringBuffer、StringBuilder、String的关系原创 2016-08-19 19:45:50 · 551 阅读 · 0 评论 -
Eclipse下查看jdk源码
不会看JDK源代码,相当于没学过JAVA。 从百度上找到一篇帮助我解决了如何在Eclipse下查看JDK源代码 的文章。 在Eclipse中查看JDK类库的源代码!!! 设置: 1.点 “window”-> "Preferences" -> "Java" -> "Installed JRES" 2.此时"Installed JRES"右边是原创 2016-08-19 10:01:27 · 477 阅读 · 0 评论 -
Java源码:ArrayList的实现原理
1. ArrayList概述: ArrayList是List接口的可变数组的实现。实现了所有可选列表操作,并允许包括 null 在内的所有元素。除了实现 List 接口外,此类还提供一些方法来操作内部用来存储列表的数组的大小。 每个ArrayList实例都有一个容量,该容量是指用来存储列表元素的数组的大小。它总是至少等于列表的大小。随着向ArrayList中不断添加元素,其容量原创 2016-07-28 22:22:11 · 457 阅读 · 0 评论 -
java源码:hashSet
1. HashSet概述: HashSet实现Set接口,由哈希表(实际上是一个HashMap实例)支持。它不保证set 的迭代顺序;特别是它不保证该顺序恒久不变。此类允许使用null元素。 2. HashSet的实现: 对于HashSet而言,它是基于HashMap实现的,HashSet底层使用HashMap来保存所有元素,因此HashSet原创 2016-07-28 22:40:49 · 287 阅读 · 0 评论 -
java源码:LinkedHashMap
1. LinkedHashMap概述: LinkedHashMap是Map接口的哈希表和链接列表实现,具有可预知的迭代顺序。此实现提供所有可选的映射操作,并允许使用null值和null键。此类不保证映射的顺序,特别是它不保证该顺序恒久不变。 LinkedHashMap实现与HashMap的不同之处在于,后者维护着一个运行于所有条目的双重链接列表。此链接列表定义了迭代顺序,该迭代转载 2016-08-05 22:58:02 · 275 阅读 · 0 评论 -
java源码:HashMap实现原理
1. HashMap概述: HashMap是基于哈希表的Map接口的非同步实现。此实现提供所有可选的映射操作,并允许使用null值和null键。此类不保证映射的顺序,特别是它不保证该顺序恒久不变。 2. HashMap的数据结构: 在java编程语言中,最基本的结构就是两种,一个是数组,另外一个是模拟指针(引用),所有的数据结构都可以用这两个基本转载 2016-08-05 22:49:55 · 438 阅读 · 0 评论 -
java源码:==,equals,hashcode
在java编程或者面试中经常会遇到 == 、equals()的比较。自己看了看源码,结合实际的编程总结一下。 1. == java中的==是比较两个对象在JVM中的地址。比较好理解。看下面的代码: 1 public class ComAddr{ 2 public static void main(String[] args) throws Exception {转载 2016-08-05 23:04:40 · 274 阅读 · 0 评论 -
【Java集合源码剖析】Vector源码剖析
Vector简介 Vector也是基于数组实现的,是一个动态数组,其容量能自动增长。 Vector是JDK1.0引入了,它的很多实现方法都加入了同步语句,因此是线程安全的(其实也只是相对安全,有些时候还是要加入同步语句来保证线程的安全),可以用于多线程环境。 Vector没有丝线Serializable接口,因此它不支持序列化,实现了Cloneab转载 2016-09-02 20:51:23 · 321 阅读 · 0 评论