随笔分类 -  jdk-learnning

摘要:ConcurrentHashMap是HashMap的线程安全版本,内部也是使用(数组 + 链表 + 红黑树)的结构来存储元素。 相比于同样线程安全的HashTable来说,效率等各方面都有极大地提高。,在这里可以使用上篇那个代码进行测试, 根据结果可以知道ConcurrentHashMap是线程安全 阅读全文
posted @ 2019-04-17 14:11 菩提树下的丁春秋 阅读(144) 评论(0) 推荐(0)
摘要:s锁的作用是就是保证线程安全,但是从另外成都讲影响了效率: 1 synchronized关键字 这个是虚拟机底层实现的, java中的关键字,内部实现为监视器锁,主要是通过对象监视器在对象头中的字段来表明的。 synchronized从旧版本到现在已经做了很多优化了,在运行时会有三种存在方式:偏向锁 阅读全文
posted @ 2019-04-17 13:25 菩提树下的丁春秋 阅读(163) 评论(0) 推荐(0)
摘要:在以上代码中可以运行看出测试: hahsmap的多次运行结果不一样 concurrentHashmap结果一定是5000, hashtable也一定是5000, 阅读全文
posted @ 2019-04-17 13:17 菩提树下的丁春秋 阅读(155) 评论(0) 推荐(0)
摘要:java中引用分为,强,弱,虚,软 (1)强引用 使用最普遍的引用。如果一个对象具有强引用,它绝对不会被gc回收。如果内存空间不足了,gc宁愿抛出OutOfMemoryError,也不是会回收具有强引用的对象。 (2)软引用 如果一个对象只具有软引用,则内存空间足够时不会回收它,但内存空间不够时就会 阅读全文
posted @ 2019-04-17 13:14 菩提树下的丁春秋 阅读(157) 评论(0) 推荐(0)
摘要:WeakHashMap是一种弱引用map,内部的key会存储为弱引用, 当jvm gc的时候,如果这些key没有强引用存在的话,会被gc回收掉, 下一次当我们操作map的时候会把对应的Entry整个删除掉,基于这种特性,WeakHashMap特别适用于缓存处理。 (1)容量 容量为数组的长度,亦即桶 阅读全文
posted @ 2019-04-17 13:12 菩提树下的丁春秋 阅读(194) 评论(0) 推荐(0)
摘要:CopyOnWriteArrayList是ArrayList的线程安全版本,内部也是通过数组实现, 每次对数组的修改都完全拷贝一份新的数组来修改,修改完了再替换掉老数组 ,这样保证了只阻塞写操作,不阻塞读操作,实现读写分离 从里面增删改查来看还是调用最底层的方法: 调用的是操作系统的方法: 只是在实 阅读全文
posted @ 2019-04-17 12:35 菩提树下的丁春秋 阅读(143) 评论(0) 推荐(0)
摘要:ArrayList是一种以数组实现的List,与数组相比,它具有动态扩展的能力,因此也可称之为动态数组。 那么我们可以看看实现: 可以看出ArrayList实现了list,randomaccess,clonable接口, 其中 randomaccess,clonable接口,是没有响应的方法,只是一 阅读全文
posted @ 2019-04-17 11:07 菩提树下的丁春秋 阅读(247) 评论(0) 推荐(0)