← 返回试题目录

Java并发与JVM练习题

共 38 道。点击题干免费试做,答案在提交后查看。

难度 2

类加载的过程是怎样的?什么是双亲委派模型?如何破坏双亲委派?

难度 3

常见的垃圾回收算法有哪些?G1 回收器的特点和工作过程?相比 CMS 有什么优势?

难度 3

如何判断对象是否可回收?可达性分析算法是什么?GC Roots 包括哪些?finalize() 的作用?

难度 2

JVM 运行时数据区有哪些?堆和方法区的区别?栈帧包含什么?

难度 3

ThreadLocal 的原理是什么?为什么 key 使用弱引用?线程池中使用 ThreadLocal 会导致什么问题,如何避免内存泄漏?

难度 2

创建线程有哪几种方式?线程有哪些状态及转换?sleep() 和 wait() 的区别?

难度 3

阻塞队列 ArrayBlockingQueue 和 LinkedBlockingQueue 的区别?为什么 ArrayBlockingQueue 用一把锁而 LinkedBlockingQueue 用两把锁?

难度 3

什么是 CAS?ABA 问题是什么、如何解决?AtomicStampedReference 的原理?

难度 2

什么是 Java 内存模型(JMM)?happens-before 原则有哪些?volatile 如何保证可见性和有序性,为什么不能保证原子性?

难度 3

ReentrantLock 和 synchronized 的区别?AQS 的核心思想是什么?公平锁和非公平锁如何实现?

难度 2

请说明 synchronized 的锁升级过程:无锁 → 偏向锁 → 轻量级锁 → 重量级锁。

难度 3

线程池的拒绝策略有哪些?如何合理设置核心线程数和最大线程数?

难度 3

线程池的核心参数有哪些?提交任务后的执行流程?为什么不建议用 Executors 创建线程池?

难度 3

G1 收集器可以单独管理大对象(Humongous 对象)。

难度 2

线程池 ThreadPoolExecutor 核心参数不包括?

难度 3

JVM 堆内存中,新生代与老年代的比例默认约为?

难度 3

volatile 关键字的作用是?

难度 3

synchronized 与 ReentrantLock 的主要区别?

Java并发与JVM练习题 第2页 - 生命科学与前沿科技学习平台 | 必学必会