
八股合集
文章平均质量分 81
java、集合 、JVM、多线程 、MySQL、Redis、计算机 408等等
轻舟未过万重山ing
日拱一卒,功不唐捐。日常分享技术记录,点点关注不迷路。
展开
-
如何实现单例模式及不同实现方法分析-设计模式
【面试官问什么是单例模式时,千万不要答非所问,给出单例模式有两种类型之类的回答,要围绕单例模式的定义去展开。单例模式是指在内存中只会创建且仅创建一次对象的设计模式。在程序中多次使用同一个对象且作用相同时,为了防止频繁地创建对象使得内存飙升,单例模式可以让程序仅在内存中创建一个对象,让所有需要调用的地方都共享这一单例对象。单例模式(Singleton Pattern)是一种常用的设计模式,保证一个类在内存中只有一个实例,并提供一个全局访问点。单例模式通常用于管理共享资源、控制全局状态或提供全局服务。原创 2024-06-04 22:12:06 · 932 阅读 · 1 评论 -
Synchronized和ReentrantLock有什么区别?
两种锁都支持可重入性,synchronized支持隐性的重进入,比如 线程可以在递归执行同步块里的代码而不被阻塞,ReentrantLock需要显式调用lock()方法;原创 2024-05-23 11:45:38 · 996 阅读 · 0 评论 -
Spring框架中bean的生命周期
Bean在开始加载之前要从上下文和一些配置中去解析并且查找Bean有关扩展的实现,比如像‘init-method’,容器在初始化Bean的时候或调用的一个方法,destroy-method,容器在销毁Bean的时候会调用的一些方法,以及BeanFactoryPostProcessor这一类的Bean加载过程中的一些前置和后置的一些处理扩展实现,这些类和配置其实是Springr提供给开发者用来去实现Bean加载过程中的一些扩展,在很多和Spring集成的中间件也比较常见,比如Dubbo,这样一些中间件。原创 2024-05-23 11:46:55 · 964 阅读 · 0 评论 -
JVM垃圾回收器G1大总结-详解
1.停顿时间模型??作为CMS收集器的替代者和继承人,G1是基于“停顿时间模型”诞生的的垃圾收集器,停顿时间模型的意思是能够支持指定在一个长度为M毫秒的时间片段内,消耗在垃圾收集上的时间大概率不超过N毫秒这样的目标.2.G1摒弃了以往对堆中区域分代的划分思想,而是将堆划分为大小相同的区(Region),原创 2024-05-05 20:15:44 · 1166 阅读 · 0 评论 -
JVM六种常见的垃圾回收器-重点含CMS过程详解
解决了STW时间过长的问题,使垃圾回收时用户的等待时间变短。原创 2024-05-05 20:01:04 · 750 阅读 · 0 评论 -
ThreadLocal内存泄露问题&&key的弱引用相关问题总结
ThreadLocal 是一个强大的多线程编程工具,但在使用时需要格外小心,以避免引发内存泄露等问题。通过及时清理 ThreadLocal、使用弱引用以及注意线程池中的潜在问题,我们可以更安全地使用 ThreadLocal,确保应用程序的性能和稳定性。同时,利用内存分析工具和单元测试,可以更早地发现和解决潜在的内存泄露问题。希望通过本文的讨论,读者能更深入地理解 ThreadLocal 内存泄露问题,并在实际开发中避免相关风险。原创 2024-04-19 17:11:18 · 1060 阅读 · 0 评论 -
深入理解Java中的字段与属性的区别
于是就加上了属性,简单说属性实现了字段的封装,属性有get、set 方法来控制字段,该字段的属性只有set方法没有get方法,就只可以对该方法进行赋值操作,没有读操作,反之亦然。JavaBean在Java EE开发中,通常用于封装数据,对于遵循以上写法的JavaBean组件,其它程序可以通过反射技术实例化JavaBean对象(内省机制),并且通过反射那些遵循命名规范的方法,从而获知JavaBean的属性,进而调用其属性保存数据。字段和常量描述了类的数据(域),当这些数据的某些部分不允许外界访问时,原创 2024-04-10 21:32:09 · 516 阅读 · 0 评论 -
关于集合HashMap面试常问问题合集
在源码中,ConcurrentHashMap通过`Segment`类实现了分段锁,每个Segment类似于一个小的HashMap,具有自己的锁,不同的Segment可以同时被不同的线程操作,从而提高了并发性能。`get`过程:根据键的哈希码找到对应的桶,然后在链表或红黑树中查找对应的值。- 当插入的键在桶中已经存在时,1.8版本采用了尾插法,即将新的键值对插入到链表或红黑树的末尾,而不是头插法,这样可以保持链表或红黑树中键值对的插入顺序,避免了扩容后链表顺序逆转导致的死循环。原创 2024-04-13 21:40:25 · 689 阅读 · 0 评论 -
关于哈希表(Hash Table)数据结构
然而,如果哈希函数设计不当或者数据分布不均匀,可能会导致哈希冲突增多,降低了性能。3. **哈希冲突(Hash Collision)**:由于哈希函数的映射范围可能小于键的实际取值范围,不同的键可能映射到同一个桶中,导致哈希冲突。1. **数组(Array)**:哈希表的核心是一个数组,这个数组的每个元素称为一个桶(Bucket)。每个桶可以存储一个或多个键值对。2. **哈希函数(Hash Function)**:哈希函数是一个算法,它接受一个键作为输入,并返回该键对应的哈希码(Hash Code)。原创 2024-04-13 21:57:11 · 288 阅读 · 1 评论