最新 最热

多线程HashMap安全问题

描述:1:我们在在多线程情况下用HashMap hashMap=new HashMap();;在put(paramKey,paramValue)添加信息常遇到ConcurrentModificationException 即并发修改异常 原因:多个线程争抢修改信息时候,当一个线程正在修改却被...

2022-05-13
1

HashSet底层是HashMap分析

当HashSet调用add时候实际上调用的是new的map,其实是把值存到了hashmap里的key里,而这时候这个value为一个object类型的常量

2022-05-13
1

强引用/软引用/弱引用/虚引用解析和应用场景分析

我们平常普通写的 Object a=new object(); 创建对象就是一种强引用 当内存不足,JVM开始垃圾回收,对于强引用的对象,就算是出现了OOM也不会对该对象进行回收...

2022-05-13
1

Redis好处以及常见性能问题

(1) 速度快,因为数据存在内存中,类似于HashMap,HashMap的优势就是查找和操作的时间复杂度都是O(1)

2022-05-13
1

jdk1.8关于方法区的变化

1、 java7之前,方法区位于永久代(PermGen),永久代和堆相互隔离,永久代的大小在启动JVM时可以设置一个固定值,不可变; 2、 java7中,static变量从永久代移到堆中; 3、 java8中,取消永久代,方法存放于元空间(Metaspace),元空间仍然...

2022-05-13
1

超硬核HashMap底层构成以及扩容原理

JDK1.8 之前 HashMap 底层是node数组和链表结合在一起使用也就是链表散列。HashMap 通过 key 的 hashCode 经过扰动函数处理过后得到 hash 值,然后通过(n-1)&hash判断当前元素存放的位置(这里的n指的是数组的长度),如...

2022-05-13
1

ConcurrentHashMap详解,以及各map的相互比较

并发环境下HashMap是不安全的,容易造成并发修改异常或者死锁现象 而Collections下提供的synchionizedMap虽然因为加了synchionized而变得安全,却也因此极大的降低了性能 由于以上情况,就使得ConcurrentHashMap应运而...

2022-05-13
1

设计RandomPool结构

【题目】 设计一种结构,在该结构中有如下三个功能: insert(key):将某个key加入到该结构,做到不重复加入。 delete(key):将原本在结构中的某个key移除。 getRandom():等概率随机返回结构中的任何一个key。 【要求】 Insert、...

2022-05-13
1

ThreadLocal--以副本的方式解决并发以及隔离问题

论是轻量级的Atomic、volatile,还是synchronized,其实都是采用同步的方式解决了线程安全问题。本节我们将介绍另外一种解决线程安全问题的思路,线程封闭。...

2022-05-13
1

HashMap与Hashtable区别

Hashtable是线程安全的,它的每一个方法都是同步(synchronize)的。在多线程中我们可以直接使用Hashtable,多个线程可以共享Hashtable,而不需要我们来给它创建同步;...

2022-05-12
1