Java面试精选八股文合集(题目+答案) 一
Java基础
- 1. Java 中的几种基本数据类型是什么?对应的包装类型是什么?各自占用多少字节呢?
- 2. String、StringBuffer 和 StringBuilder的区别是什么?String为什么是不可变的?
- 3. String s1 = new String(“abc”); 这段代码创建了几个字符串对象?
- 4. == 与 equals?hashCode 与 equals ?
- 5. 包装类型的缓存机制了解么?
- 6. 自动装箱与拆箱了解吗?原理是什么?
- 7. 深拷贝和浅拷贝区别了解吗?什么是引用拷贝?
- 8. 谈谈对 Java 注解的理解,解决了什么问题?
- 9. Exception 和 Error 有什么区别?
- 10. Java 反射?反射有什么缺点?你是怎么理解反射的(为什么框架需要反射)?
- 11. Java 泛型了解么?什么是类型擦除?介绍一下常用的通配符?
- 12. 内部类了解吗?匿名内部类了解吗?
- 13. BIO,NIO,AIO 有什么区别?
Java集合
- 1. 说说 List,Set,Map 三者的区别?三者底层的数据结构?
- 2. 有哪些集合是线程不安全的?怎么解决呢?
- 3. 比较 HashSet 、LinkedHashSet 和 TreeSet 三者的异同?
- 4. HashMap 和 Hashtable 的区别?HashMap 和 HashSet 区别? HashMap 和 TreeMap 区别?
- 5. HashMap 的底层实现?
- 6. HashMap 的长度为什么是 2 的幂次方?
- 7. ConcurrentHashMap 和 Hashtable 的区别?
- 8. ConcurrentHashMap 线程安全的具体实现方式/底层具体实现?
Java多线程(上)
- 1. 什么是线程和进程? 线程与进程的关系和区别?
- 2. 为什么要使用多线程?
- 3. 什么是线程上下文切换?
- 4. 什么是线程死锁?如何避免死锁?
- 5. 乐观锁和悲观锁了解么?如何实现乐观锁?
- 6. 说说 sleep() 方法和 wait() 方法区别和共同点?
- 7. 讲一下 JMM(Java 内存模型) ?
- 8. Java 内存区域和 JMM 有何区别?
- 9. Java中如何创建线程?
- 10. 实现Runnable接口和实现Callable接口的区别?
Java多线程(下)
- 1. synchronized 关键字的作用?
- 2. volatile 关键字的作用?
- 3. synchronized 和 volatile 的区别?
- 4. synchronized 和 ReentrantLock 的区别?
- 5. ThreadLocal有什么用?
- 6. 线程池有什么用?为什么不推荐使用内置线程池?
- 7. 如何自定义线程池?
- 8. Java线程池有哪些参数?阻塞队列有几种?拒绝策略有几种?
- 9. 线程池处理任务的流程了解吗?
- 10. 如何给线程池命名?为什么建议给线程池命名?
JVM(上)
- 1. JVM由哪几部分组成?
- 2. 运行时数据区中包含哪些区域?
- 3. 栈和堆中分别存放什么数据?
- 4. 为什么要将永久代 (PermGen) 替换为元空间 (MetaSpace) ?
- 5. 堆空间的基本结构了解吗?什么情况下对象会进入老年代?
- 6. 大对象放在哪个内存区域?
- 7. Java对象的创建过程?
JVM(下)
- 1. 为什么需要GC?
- 2. 有哪些常见的GC?
- 3. Minor GC 和 Full GC有什么区别?
- 4. 如何判断一个对象是否死亡?
- 5. 讲一下可达性分析算法的流程?
- 6. 如何判断一个常量是废弃常量? 如何判断一个类是无用的类?
- 7. 垃圾收集有哪些算法,各自的特点?
- 8. 默认的垃圾回收器是哪一个?
- 9. 说一下G1垃圾收集器的步骤,有什么缺点?
- 10. 什么是类加载?何时类加载?类加载流程?
- 11. 知道哪些类加载器?类加载器之间的关系?
Spring
- 1. 简单介绍一下Spring?
- 2. Spring的核心模块有哪些?
- 3. 什么是Spring IoC ?
- 4. 什么是依赖注入?有哪几种方式可以进行依赖注入?
- 5. 什么是Spring AOP ?
- 6. 什么是Spring Bean ? 说一下Bean的生命周期?
- 7. Spring中Bean的作用域有哪些?
- 8. 什么是Spring中的代理(Proxy)?JDK动态代理和CGLIB代理有什么区别?
- 9. Spring是怎么解决循环依赖的?
- 10. 说一下你对Spring MVC的理解?Spring MVC的工作原理?
- 11. Spring中是如何实现事务管理的?
- 12. 拦截器和过滤器了解吗?
SpringBoot
- 1. Spring 和 Spring Boot有什么区别?
- 2. Spring Boot 的主要优点是什么?
- 3. 什么是Spring Boot Starter?
- 4. 介绍一下@SpringBootApplication注解?
- 5. Spring Boot是如何实现自动配置的?
- 6. Spring Boot中读取配置文件的方式有哪些?
- 7. Spring Boot中加载配置文件的优先级是怎样的?
- 8. 如何在Spring Boot中实现日志记录?
MyBatis
- 1. 什么是MyBatis?它与Hibernate有什么区别?
- 2. 说一下MyBatis的执行流程?
- 3. MyBatis是否支持延迟加载?
- 4. MyBatis中一级缓存和二级缓存的区别?
- 5. MyBatis中的动态SQL是什么?
- 6. 如何在MyBatis中实现分页?
- 7. MyBatis如何实现大规模数据插入MySQL数据库中?
- 8. MyBatis-Plus了解吗?