ohmyblog

#Java 后端

经典题解析:深拷贝和浅拷贝,复制一个对象有多难

先说明属性:这是一篇经典题解析,题目出自本地历史面试资料,与任何公司的当前招聘无关。「深拷贝和浅拷贝的区别」题面朴素,背后却是线上事故的常客:请求上下文复制给异步任务处理,副本里改了个嵌套字段,主流程的数据跟着变了——这就是共享引用惹的祸。

经典题解析:ArrayList 和 LinkedList 怎么选,别只背查询快插入快

先说明属性:这是一篇经典题解析,题目出自本地历史面试资料,与任何公司的当前招聘无关。「ArrayList 和 LinkedList 有什么区别」是 Java 集合面试的开胃题,标准答案人人会背:数组查询快、链表插入快。但这句话只说对了一半,而且是最容易误导人的一半。

经典题解析:Java NIO 三件套,和 BIO 差在哪

先说明属性:这是一篇经典题解析,题目出自本地历史面试资料,与任何公司的当前招聘无关。它表面考三个类的用法,实际考的是线程模型:为什么 BIO 一个连接要配一个线程,NIO 凭什么一个线程能看住成百上千条连接。

经典题解析:线程的六种状态,一张状态机图说清楚

先说明属性:这是一篇经典题解析,题目出自本地历史面试资料,与任何公司的当前招聘无关。这道题表面考背诵,实际考的是排障地图:线上线程转储里的每一行状态,都要能翻译成「这个线程此刻在等什么」。

经典题解析:垃圾回收的四种基础算法,各有什么代价

先说明属性:这是一篇经典题解析,题目出自本地历史面试资料,与任何公司的当前招聘无关。「说说垃圾回收算法」是 JVM 面试的保留曲目,平庸的答案是背四个名字,加分的答案是讲清每种算法用什么东西换了什么东西。

经典题解析:重写 equals 为什么必须重写 hashCode

先说明属性:这是一篇经典题解析,题目出自本地历史面试资料,与任何公司的当前招聘无关。equals 与 hashCode 是 Java 面试的钉子户,几乎人人会背「两个要一起重写」,但能讲清「不一起重写会在哈希容器里炸出什么故障」的人少得多。

经典题解析:String、StringBuffer、StringBuilder 到底怎么选

先说明属性:这是一篇经典题解析,题目出自本地历史面试资料,与任何公司的当前招聘无关。String 三兄弟是 Java 面试的出场率之王,题面一句话,但它串联着不可变性、内存分配、线程安全三条主线,答出层次和背出定义是两回事。

经典题解析:乐观锁、悲观锁、读写锁,原理和选型一次说清

先说明属性:这是一篇经典题解析,题目出自本地历史面试资料,与任何公司的当前招聘无关。题面:乐观锁、悲观锁、互斥锁、读写锁的原理、实现与区别,分别怎么选?

经典题解析:CountDownLatch 和 CyclicBarrier,到底差在哪

先说明属性:这是一篇经典题解析,题目出自本地历史面试资料,与任何公司的当前招聘无关。CountDownLatch 和 CyclicBarrier 都在 java.util.concurrent 包里,名字都绕口,用法都像「等一等」,于是成了并发面试的高频对比题。

经典题解析:双亲委派为什么要存在,能不能打破、怎么打破

先说明属性:这是一篇经典题解析,题目出自本地历史面试资料,与任何公司的当前招聘无关。「说说你了解的类加载器,可以打破双亲委派吗,怎么打破」——这道题表面考类加载,实际考的是你对「约定为什么存在、何时该开例外」的工程判断力。