每天一套面试题Day32-八股高频(13)
71.数据库为什么使用B+树而不使用红黑树?
红黑树是一种自平衡的二叉查找树,通过颜色规则和旋转保持平衡。自平衡:插入/删除时自动调整,避免退化成链表。 效率保证:最坏情况下,查找、插入、删除都是 O(log n)。
数据库选择B+树是因为:
磁盘I/O是主要瓶颈,需要减少访问次数
B+树的矮胖结构更适合磁盘的块存取特性
范围查询在数据库中极为常见。
72.讲一下负载均衡。
载均衡是将网络请求合理分配到多个服务器,避免单点过载并提升系统性能与可用性的技术。 不知道想让回答的点是什么,学完分布式以后再补充。
73.ThreadLocal 内存泄露问题是怎么导致的?
每个线程都有类型为ThreadLocalMap的变量threadlocals,key是threadLocal对象,ThreadLocalMap的Entry设计:key是弱引用(指向ThreadLocal对象),value是强引用(指向我们存储的值) 当我不用这个threadLocal对象时,把引用他的引用指向null,由于ThreadLocalMap中的threadLocal是弱引用,所以GC垃圾回收会把这个对象回收掉。但是value是强引用,即使threadLocal已经置为null,value也会一直存在,但是由于key已经被回收了,我们是无法获取到value使用的,因此导致了内存泄漏。
74.说说你了解的线程同步方式。
synchronized
synchronized和Lock
每日一套面试真题 文章被收录于专栏
记录刷过的面试真题
查看26道真题和解析