26年2月极兔极致供应链 Java开发工程师 二面

大厂JAVA面经目录 —— 包含八股文、真实面经、内推信息

https://www.nowcoder.com/discuss/859441734932000768

本专栏在精不在多,内容分为八股文、大厂真实面经,面试通过后将面试题私发给我,可退还专栏的收益部分费用。欢迎大家共建专栏。

面试题会持续更新,订阅专栏后永远都可看最新的真实面经

11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111

1. Java中“值传递”本质:对象作为参数传递时,修改属性为何外部可见?

思路

先明确Java“值传递”的核心(传递的是变量的副本),再区分“对象引用副本”和“对象本身”的关系。

回答示例

Java只有值传递,对象作为参数传递时的核心逻辑:

  1. 值传递的本质:传递的是“对象引用的副本”(而非对象本身),比如void test(User u),传入的是u这个引用变量的副本,两个引用都指向堆中同一个对象;
  2. 修改属性外部可见的原因

一句话总结:传递的是引用副本,修改副本指向的对象属性,等同于修改原对象;修改副本本身,与原对象无关。

2. CopyOnWriteArrayList写操作全程加锁,为何读操作无需加锁?

思路

核心讲“写时复制”机制,读操作访问的是不可变的旧数组,无线程安全问题。

回答示例

CopyOnWriteArrayList的核心是写时复制(COW),读无需加锁的原因:

  1. 写操作逻辑
  2. 读操作逻辑

代价:写操作有复制数组的性能开销,适合读多写少场景。

3. ThreadLocal内存泄漏的根源:弱引用仅作用于Key,Value如何清理?

思路

先讲ThreadLocalMap的结构(Key=弱引用ThreadLocal,Value=强引用),再讲Value泄漏的原因和清理机制。

回答示例

1. 内存泄漏根源

ThreadLocalMap中:

  • Key:对ThreadLocal的弱引用(GC时若无强引用指向ThreadLocal,Key会被回收);
  • Value:对实际值的强引用(即使Key被回收,Value仍被ThreadLocalMap强引用,无法回收);
  • 最终导致:ThreadLocalMap中出现“Key为null、Value不为null”的无效条目,长期占用内存→内存泄漏。

2. Value的清理机制

  1. 主动清理:调用ThreadLocal.remove(),会删除当前ThreadLocal对应的Key和Value,是最推荐的方式;
  2. 被动清理

核心建议:使用完ThreadLocal后务必调用remove(),尤其是线程池场景。

4. JDK8后方法区由元空间实现,元空间内存溢出的典型触发场景?

思路

先讲元空间存储内容(类元数据、常量池等

剩余60%内容,订阅专栏后可继续查看/也可单篇购买

本专栏在精不在多,内容分为八股文、大厂真实面经,面试通过后将offer和面试题私发给我,可退还专栏的收益部分费用。欢迎大家共建专栏

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务