每天一套面试题Day30-八股高频(11)
61.你知道哪些线程安全的集合?举例你是怎么使用的?
ConcurrentHashMap 链接:https://www.nowcoder.com/questionTerminal/beb3188055e240e486ae425fbed1e0e6?examPageSource=25mianshitop 来源:牛客网
常见线程安全的集合包括ConcurrentHashMap、CopyOnWriteArrayList和BlockingQueue系列。例如在多线程统计时使用ConcurrentHashMap的compute方法保证原子计数,用CopyOnWriteArrayList维护监听器列表避免遍历时加锁,通过LinkedBlockingQueue实现生产者-消费者任务队列。Java并发包中的集合通过分段锁或写时复制机制实现高效线程安全。
62.说说Bean的生命周期。
63.SpringBoot 自动配置原理。
64.String、StringBuffer、Stringbuilder有什么区别?
65.请你说说==与equals()的区别
== 运算符
- 基本数据类型:比较的是值本身
- 引用数据类型:比较的是对象的内存地址(是否指向同一个对象)
equals()方法 Object类的默认实现
// Object类的equals方法源码
public boolean equals(Object obj) {
return (this == obj); // 默认就是==,比较地址
}
但是,很多类(如String、Integer等)重写了equals方法,使其比较的是对象的内容是否相等。因此,对于这些类,equals方法用于比较两个对象的内容是否相同。 重写自己类的equals方法时,必须同时重写hashCode()方法,这是为了满足equals和hashCode之间的契约(例如在HashMap、HashSet等集合中正常工作)。HashMap在散列的时候哈希值相同后会调用equals方法,不重写的话,原本认为相同的对象的哈希值不同,直接散列到了不同的位置。
#面试真题#每日一套面试真题 文章被收录于专栏
记录刷过的面试真题

