随笔分类 -  java技术

摘要:高并发下的HashMap 1.ReHash rehash是HashMap扩容时的一个步骤,Hashmap的长度有限,不断插入数据,当hashmap达到一定饱和时,hash冲突概率会提高。这时候hashmap就需要进行扩容,也就是Resize。 影响发生Resize的因素有两个: 1.Capacity 阅读全文
posted @ 2018-05-07 10:49 jokermo 阅读(116) 评论(0) 推荐(0)
摘要:1.区别 HashTable是线程安全的,HashmMap是非线程安全的 HashTable不允许键和值为null,HashMap允许键和值为null HashMap提供了可供应用迭代的键的集合,所以HashMap是快速失败的,HashTable提供对键的枚举,是安全失败的 扩容的参数不一样,Has 阅读全文
posted @ 2018-05-05 21:36 jokermo 阅读(138) 评论(0) 推荐(0)
摘要:注:本文属于《深入理解java虚拟机》读书笔记,想详细了解请自行看书。 1.Java堆溢出 Java堆用于存储对象实例,只要不断创建对象,并且保证GC Roots到对象之间有可到达路径来避免垃圾回收机制清除这些对象,那么对象数量达到容量限制后就会产生内存溢出异常。 首先通过内存映像分析工具(如Ecl 阅读全文
posted @ 2018-05-02 16:40 jokermo 阅读(151) 评论(0) 推荐(0)
摘要:0. 前言 转载请注明出处:http://www.cnblogs.com/jokermo/ volatile和synchronized都是解决多线程安全问题的方法,为了了解与使用这两个修饰符,首先需要了解什么是多线程安全问题。即多线程安全问题发生的原因。多线程安全问题产生的原因可以概括为两点: 线程 阅读全文
posted @ 2018-04-24 21:57 jokermo 阅读(164) 评论(0) 推荐(0)