Java面试题大全(全网最全,持续更新)高级(2)

1. JVM 与内存管理

1.1. 解释垃圾回收机制(GC)的工作原理。

垃圾回收器负责自动回收不再使用的对象内存。主要算法包括:

  • 标记-清除:标记所有存活对象,然后清除未标记的对象。
  • 复制算法:将活跃对象复制到新空间,释放旧空间。
  • 分代回收:将堆内存分为新生代和老年代,新生代对象频繁回收,老年代对象较少回收。

1.2. 描述 Java 中的内存泄漏。

内存泄漏是指由于程序错误,某些对象无法被 GC 回收,导致内存持续占用。常见原因包括:

  • 长时间持有对对象的引用。
  • 不正确的静态变量使用。
  • 监听器未正确移除。

2. 高并发编程

2.1. CallableRunnable 有什么区别?

  • Runnable:无返回值,不能抛出检查性异常。
  • Callable:可以返回值,并且允许抛出检查性异常。
Callable<Integer> task = () -> {
    return 123;
};
Future<Integer> future = executor.submit(task);

2.2. 什么是并发包中的 CountDownLatchCyclicBarrier

  • CountDownLatch:允许一个或多个线程等待,直到一组操作完成。适用于一个线程等待其他多个线程的场景。
  • CyclicBarrier:让一组线程等待彼此,直到所有线程都达到屏障点,适用于多个线程彼此等待的场景。

3. 分布式系统

3.1. 什么是分布式事务?如何保证分布式事务的一致性?

分布式事务涉及多个不同的数据库或服务,需要确保所有操作要么全部成功,要么全部失败。常用方案包括:

  • 两阶段提交协议(2PC)
  • 基于消息队列的最终一致性方案
  • TCC(Try-Confirm-Cancel)模式

3.2. 如何设计高并发系统的限流机制?

限流常用的算法有:

  • 漏桶算法:流出速度恒定,流量超过容量则丢弃。
  • 令牌桶算法:按照固定速率生成令牌,只有持有令牌的请求才能通过,适合突发流量。

想要更大提升,点击使用小奈AI,免费创造无限可能 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值