Java核心技术面试题
测试开发工程师 Java 核心考察范围 | 基础 + 进阶 + 并发
一、Java 基础
- 1. Java 和 Python 的区别?Java 有什么特点?
- 2. 面向对象四大特性?
- 3. 重载(Overload)和重写(Override)的区别?
- 4. String、StringBuilder、StringBuffer 的区别?
- 5. try-catch-finally 中,如果 return 在 finally 之前执行,finally 还会执行吗?
- 6. public、protected、default、private 的区别?
- 7. final、finally、finalize 的区别?
- 8. 抽象类和接口的区别?
- 9. == 和 equals() 的区别?
- 10. hashCode() 和 equals() 的关系?
- 11. Java 是值传递还是引用传递?
- 12. Object 类有哪些常用方法?
- 13. 什么是反射(Reflection)?应用场景?
- 14. 什么是注解(Annotation)?常用的注解?
二、Java 进阶
- 1. List、Set、Map 的区别和常用实现类?
- 2. HashMap 为什么线程不安全?
- 3. 线程的创建方式?start() 和 run() 的区别?
- 4. synchronized 和 Lock 的区别?
- 5. 什么是死锁?如何避免?
- 6. volatile 关键字的作用?
- 7. ThreadLocal 是什么?应用场景?
- 8. 线程池的核心参数?线程池的工作流程?
- 9. JDK 常见的线程池有哪些?
- 10. sleep() 和 wait() 的区别?
- 11. 什么是守护线程(Daemon Thread)?
- 12. 生产者和消费者模式如何实现?
三、JVM 与内存管理
- 1. JVM 内存区域划分?
- 2. 什么是 OOM(OutOfMemoryError)?常见类型?
- 3. Minor GC 和 Full GC 的区别?触发条件?
- 4. 常见的垃圾回收算法?
- 5. Java 内存泄漏(Memory Leak)和内存溢出的区别?