- 博客(4)
- 收藏
- 关注
原创 HashMap的优化
HashMap结构的优化HashMap的复杂度 查找/获取 添加/删除 空间 ArrayList O(1) O(N) O(N) LinkedList O(N) O(1) O(N) HashMap O(N/Buckets) O(N/Buckets) O(N) ArrayList 和 LinkedList 可以看作是HashMap的两个极端。若HashMap的所有元素都不发生哈希冲突,就变成了数组存储的Arra.
2020-11-27 14:01:29
9
原创 CPU密集型和IO密集型的多线程总结
首先要明白多线程在单核和多核CPU的运行机制:多线程在单核CPU运行时,同一时间只能处理一个线程,系统会切换线程,给每个线程分配时间片来跑。由于线程间的切换会增加系统的开销,所以多线程在多核CPU上跑时,除了能够在同一时间处理多个线程,还能避免线程间切换带来的开销。CPU密集型程序一个计算量很大的程序(也称作CPU密集型程序),多线程跑的时候,不存在阻塞的情况,可以充分利用所有的CPU的核。假如当前CPU只有四核,要使程序运行的效率最高,需使线程池的容量为4,同时跑4个线程的计算任务。如
2020-11-12 23:36:28
27
原创 Redis进阶
Redis的过期策略redis采用的是定期删除+惰性删除策略。为什么不用定时删除?定时删除,也可以说是实时删除,用一个定时器监控key,过期则删除。虽然即使释放了内存空间,但十分消耗CPU资源。定期删除,redis默认每100ms检查是否有key过期。不是每隔100ms便将所有key检查一遍,而是随机抽取进行检查。因此,如果只采用定期删除策略,会导致很多key到时间后没有被删除。惰性删除,在获取某个key时,redis会检查这个key是否过期,如果过期了此时就会被删除。...
2020-11-07 17:04:54
17
原创 Spring Boot的自动配置原理
1. 引言Spring Boot作为目前最常用的项目配置框架,其自动配置原理可以说是精髓所在。Spring Boot自动配置的原理一般只在面试中会被问到,但作为一名框架使用者,对这种工具的原理有深入理解也是很有必要的。Spring Boot最主要的作用就是帮我们快速构建庞大的Spring项目,并且尽可能地减少一切xml配置,让我们更关注业务而非配置。2. Spring Boot的配置文件我们知道,使用Spring Boot的项目中有一个全局配置文件:application.propertie
2020-11-06 18:11:29
156
空空如也
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人 TA的粉丝