首页
学习
活动
专区
工具
TVP
发布

爱明依

专栏成员
190
文章
257580
阅读量
25
订阅数
HashMap 底层分析
容量的默认大小是 16,负载因子是 0.75,当 HashMap 的 size > 16*0.75 时就会发生扩容(容量和负载因子都可以自由调整)。
爱明依
2022-04-01
2250
LinkedHashMap 底层分析
众所周知 HashMap 是一个无序的 Map,因为每次根据 key 的 hashcode 映射到 Entry 数组上,所以遍历出来的顺序并不是写入的顺序。
爱明依
2022-04-01
2550
HashSet` 是一个不允许存储重复元素的集合,它的实现比较简单,只要理解了 `HashMap`,`HashSet` 就水到渠成...
HashSet 是一个不允许存储重复元素的集合,它的实现比较简单,只要理解了 HashMap,HashSet 就水到渠成了。
爱明依
2022-04-01
4290
日常使用的 Cache 组件来看看 Google 大牛们是如何设计
我平时用的也挺频繁,这次就借助日常使用的 Cache 组件来看看 Google 大牛们是如何设计的。
爱明依
2022-04-01
2950
ConcurrentHashMap 实现原理
由于 HashMap 是一个线程不安全的容器,主要体现在容量大于总量*负载因子发生扩容时会出现环形链表从而导致死循环。
爱明依
2022-04-01
2860
Java面试葵花宝典打印版【1】
1.面向对象的特征有哪些方面 抽象:抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面。抽象并不打算了解全部问题,而只是选择其中的一部分, 暂时不用部分细节。抽象包括两个方面,一是过程抽象, 二是数据抽象。 继承:继承是一种联结类的层次模型,并且允许和鼓励类的重用,它提供了一种明确表述共性的方法。对象的一个新类可以从现有的类中派生,这个过程称为类继承。新类继承了原始类的特性,新类称为原始类的派生类(子类),而原始类称为新类的基类(父类)。派生类可以从它的基类那里继承方法和实
爱明依
2022-04-01
2490
知识点、线程池、spring 代理机制、RPC、事务、负载均衡、HA、联合索引
所谓的线程池指的就是一组线程对象被统一的一个外部对象包装(池对象),而后在这个池里面就可以利用这些线程对象一起完成更高效的程序开发,也就是所有的任务的执行都是
爱明依
2022-04-01
3280
阿里java电话面试题
1、Elastic search Elastic Search是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。Elastic search是用Java开发的,并作为Apache许可条款下的开放源码发布,是第二流行的企业搜索引擎。设计用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便。 2、Priority Queue 的底层数据结构 优先队列是队列的一种,不过它可以按照自定义的一种方式(数据的优先级)来对队列中的数据进行动态的排序。 每次的push和pop操作,队列都会动态的调整,以达到我们预期的方式来存储。 3、spring、jdk源码 4、spring 依赖注入实现方式 接口注入: 接口注入模式因为历史较为悠久,在很多容器中都已经得到应用。但由于其在灵活性、易用性上不如其他两种注入模式,因而在 IOC 的专题世界内并不被看好。 Setter 注入: 对于习惯了传统 javabean 开发的程序员,通过 setter 方法设定依赖关系更加直观。 如果依赖关系较为复杂,那么构造子注入模式的构造函数也会相当庞大,而此时设值注入模式则更为简洁。 如果用到了第三方类库,可能要求我们的组件提供一个默认的构造函数,此时构造子注入模式也不适用。 构造器注入: 在构造期间完成一个完整的、合法的对象。所有依赖关系在构造函数中集中呈现。依赖关系在构造时由容器一次性设定,组件被创建之后一直处于相对“不变”的稳定状态。 只有组件的创建者关心其内部依赖关系,对调用者而言,该依赖关系处于“黑盒”之中。
爱明依
2022-04-01
1840
JVM-concurrent-HashSet-problem Java 并发问题
上午刚到公司,准备开始一天的摸鱼之旅时突然收到了一封监控中心的邮件。 心中暗道不好,因为监控系统从来不会告诉我应用完美无 bug,其实系统挺猥琐。 打开邮件一看,果然告知我有一个应用的线程池队列达到阈值触发了报警。 由于这个应用出问题非常影响用户体验;于是立马让运维保留现场 dump 线程和内存同时重启应用,还好重启之后恢复正常。于是开始着手排查问题。
爱明依
2019-04-01
8490
现在有一个非常庞大的数据,假设全是 int 类型。现在我给你一个数,你需要告诉我它是否存在其中(尽量高效)
我想大多数想到的都是用 HashMap 来存放数据,因为它的写入查询的效率都比较高。
爱明依
2019-03-19
6640
Least Recently Used 常用的 Redis 就有以下几种策略
LRU 是 Least Recently Used 的简写,字面意思则是最近最少使用。
爱明依
2019-03-13
4070
hashMap 的工作原理
hashMap的特性 a 可以接受null键值和值 b 线程不是安全的。 c存储的是键值对等等。 hashMap 的工作原理 基于线性数组实现,为何还能随机存取。 hashMap对于存储和取值的实现: ## 存储 ## Int hashCode=key.hashCode(); int index=hash%Entry[].length; Entry[index]=value; ## 取值 ## Int
爱明依
2019-03-12
2500
HashMap 和 concurrentHaspMap 的陷阱与区别
在多线程并发编程中,我们对于共享的数据对象或者是容器会采用线程安全的集合来存储。Java中 提供了一些线程安全的容器和对象,有些事支持并发的,java.util.concurrent 包中 有很多这样的类。这种方式的效率会比简单的加互斥锁的实现更好,但是有时通过加锁把使用线程不安全的容器代码改为使用线程安全容器的代码时,会遇到一个陷阱。 在一个使用map 存储信息后 ,统计总数的例子中。 一:map 中的value 整型使用线程不安全的hashMap代码时这样写的。
爱明依
2019-03-12
4440
没有更多了
社区活动
【纪录片】中国数据库前世今生
穿越半个世纪,探寻中国数据库50年的发展历程
Python精品学习库
代码在线跑,知识轻松学
博客搬家 | 分享价值百万资源包
自行/邀约他人一键搬运博客,速成社区影响力并领取好礼
技术创作特训营·精选知识专栏
往期视频·千货材料·成员作品 最新动态
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档