![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
面试题
蜗牛6662035
开发
展开
-
HashMap在并发下引起的死循环
问题的症状 从前我们的Java代码因为一些原因使用了HashMap这个东西,但是当时的程序是单线程的,一切都没有问题。后来,我们的程序性能有问题,所以需要变成多线程的,于是,变成多线程后到了线上,发现程序经常占了100%的CPU,查看堆栈,你会发现程序都Hang在了HashMap.get()这个方法上了,重启程序后问题消失。但是过段时间又会来。而且,这个问题在测试环境里可能很难重现。 但是在这里我们可以来研究一下原因。 Hash表数据结构 HashMap通常会用一个指针数组(假设为table[])来做分散所转载 2020-10-10 10:49:20 · 267 阅读 · 0 评论 -
面试题:为什么redis集群的最大槽数是16384个?
redis作者在github上给出了原因,地址https://github.com/antirez/redis/issues/2576 1、普通心跳数据包携带节点的完整配置,该配置可以用旧配置以幂等方式替换,以便更新旧配置。这意味着它们包含原始形式的节点的槽配置,16k的槽配置需要使用2k内存空间,但是使用65k槽将使用8k的内存空间。 2、同时,由于其他设计折衷,Redis集群不可能扩展到超过...原创 2019-10-21 19:54:04 · 3898 阅读 · 1 评论 -
面试题:Spring中都用到了哪些设计模式?
Spring框架用到了很多设计模式,比如:工厂模式、单例模式、代理模式、模板模式、装饰器模式、责任链模式、观察者模式、策略模式、构建模式、原型模式、适配器模式等。 工厂模式 BeanFactory、ApplicationContext 单例模式 AbstractBeanFactory、DefaultSingletonBeanRegistry Spring依赖注入Bean实例默认是单例的,Sprin...原创 2019-10-21 10:35:44 · 480 阅读 · 0 评论 -
HashMap面试题整理
一、谈一下HashMap的特性? 1.HashMap存储键值对实现快速存取,允许为null。key值不可重复,若key值重复则覆盖。 2.非同步,线程不安全。 3.底层是hash表,不保证有序(比如插入的顺序) 二、谈一下HashMap的底层原理是什么? 基于hashing的原理,jdk8后采用数组+链表+红黑树的数据结构。 我们通过put和get存储和获取对象。当我们给put()方法传递键和值时...转载 2019-10-11 17:55:44 · 261 阅读 · 0 评论