java源码阅读
天道酬勤程序人生
这个作者很懒,什么都没留下…
展开
-
java 源码阅读总结之 List
list接口继承了collection接口的所有功能方法,并做了一定的扩展。 List接口对Collection接口做了扩展,主要在 add(..),remove(..)等方法做了重载,新增了get(),index()方法等。 List接口的实现类主要包括了ArrayList 、 LinkedList、vector。 1.Arraylist是List一个实现类,底层是以数组实现的列表。所...原创 2019-02-20 09:39:09 · 139 阅读 · 0 评论 -
java源码阅读总结-set集合
set接口是继承与Collection接口,所以有Collection的所有方法函数。 Set内部实现是基于Map的。 HashSet的值是HashMap的key,所以遍历HashSet的值,也就是遍历HashMap的KeyEntry Set取值时不保证数据和存入的时候顺序一致,并且不允许空值,不允许重复值。 调用HashSet的无参构造函数,那么就会使用默认的Has...原创 2019-02-20 10:06:06 · 150 阅读 · 0 评论 -
java源码阅读总结——map集合
HashMap 经常遇到需要使用键值对存储的场景,而HashMap是用得最多的一种键值对存储的集合。 特点:HashMap允许空键值,并且它是非线程安全的,所以插入、删除和定位元素会比较快。 TreeMap是基于红黑树实现的,适用于按自然顺序遍历key。 HashTable是基于HashCode实现的,大部分方法前有synchronized修饰,它是线程安全的,所以会比HashMap效率低...原创 2019-02-20 11:01:17 · 175 阅读 · 0 评论 -
HashMap和Hashtable的区别
HashMap和Hashtable的区别 HashMap和Hashtable都实现了Map接口,但决定用哪一个之前先要弄清楚它们之间的分别。主要的区别有:线程安全性,同步(synchronization),以及速度。 HashMap几乎可以等价于Hashtable,除了HashMap是非synchronized的,并可以接受null(HashMap可以接受为null的键值(key)和值(val...原创 2019-02-20 15:53:45 · 129 阅读 · 0 评论 -
hashMap /hashTable /concurrentHashmap的区别
HashTable 底层数组+链表实现,无论key还是value都不能为null,线程安全,实现线程安全的方式是在修改数据时锁住整个HashTable,效率低,ConcurrentHashMap做了相关优化 初始size为11,扩容:newsize = olesize*2+1 计算index的方法:index = (hash & 0x7FFFFFFF) % tab.length Ha...原创 2019-02-20 17:29:42 · 153 阅读 · 0 评论 -
jvm 虚拟机技术(一)
jvm的发展: HotSpot VM(sun公司)以前使用最广泛的 ,边编译边运行,热点数据/多次运行的会翻译成二进制保存本地。 JRocket(bea)号称最快的jvm ,启动后把字节码文件编译成二进制文件,运行,运行速度快,但是启动慢 J9 VM(IBM) Oracle 收购这两家,发布新版本,目前HotSpo...原创 2019-06-05 15:07:29 · 186 阅读 · 0 评论 -
jvm 虚拟机技术(二)
对象分配过程 1检查加载 根据new的参数是否能在常量池中定位到一个符号引用,没有则没有加载该类,进行类加载 2分配内存 根据方法区信息为该类分配空间大小 方法:a指针碰撞 ,内存空间连续规整时候使用,内存中指针作为已用内存和可用内存的分界点指示器,分配内存时候只需要把指针向空闲空间移动对象大小的内存位置,成为指针碰撞 ...原创 2019-06-05 15:50:57 · 95 阅读 · 0 评论