300 道Java面试题整理
大家可以通过这些面试题查漏补缺。
ps:链接点进去就是答案
一、Java基础 44 道
5. Java 中是否可以重写一个 private 或者 static 方法?
7. 在 Java 中定义一个不做事且没有参数的构造方法有什么作用?
11. 12、short s1 = 1;s1 = s1 + 1;有什么错?那么 short s1 = 1; s1 += 1;呢?有没有错误?
14. switch 语句能否作用在 byte 上,能否作用在 long 上,能否作用在 String 上?
15. 16、final、finally、finalize 的区别
17. 两个对象的 hashCode() 相同,则 equals() 也一定为 true 吗?
18. 为什么重写 equals() 就一定要重写 hashCode() 方法?
21. Java 中的 Math.round(-1.5) 等于多少?
24. 什么是 Java 的序列化,如何实现 Java 的序列化?
26. Java 的泛型是如何工作的 ? 什么是类型擦除 ?
37. String、StringBuilder、StringBuffer 的区别?
39. String str = "i" 与 String str = new String("i") 一样吗?
41. final 修饰 StringBuffer 后还可以 append 吗?
42. Java 中的 IO 流的分类?说出几个你熟悉的实现类?
答案看这里:Java面试题必知必会(附答案)
二、Java异常 9 道
3. try-catch-finally 中,如果 catch 中 return 了,finally 还会执行吗?
4. try-catch-finally 中那个部分可以省略?
三、Java集合 24 道
2. ArrayList 和 LinkedList 的区别?
3. ArrayList 实现 RandomAccess 接口有何作用?为何 LinkedList 却没实现这个接口?
5. Array 和 ArrayList 有何区别?什么时候更适合用 Array?
6. HashMap 的实现原理/底层数据结构?JDK1.7 和 JDK1.8
10. HashMap 的 size 为什么必须是 2 的整数次方?
12. HashMap 的 get 方法能否判断某个元素是否在 map 中?
13. HashMap 与 HashTable 的区别是什么?
14. HashMap 与 ConcurrentHashMap 的区别是什么?
15. HashTable 和 ConcurrentHashMap 的区别?
16. ConcurrentHashMap 的实现原理是什么?
21. Iterator 和 ListIterator 有什么区别?
22. Iterator 和 Enumeration 接口的区别?
23. fail-fast 与 fail-safe 有什么区别?
24. Collection 和 Collections 有什么区别?
四、Java并发 42 道
11. Thread.interrupt() 方法的工作原理是什么?
14. 说一说自己对于 synchronized 关键字的了解?
16. 说说 JDK1.6 之后的 synchronized 关键字底层做了哪些优化,可以详细介绍一下这些优化吗?
17. 谈谈 synchronized 和 ReenTrantLock 的区别?
18. synchronized 和 volatile 的区别是什么?
20. 说下对 ReentrantReadWriteLock 的理解?
30. AQS 底层使用了模板方法模式,你能说出几个需要重写的方法吗?
32. CountDownLatch 和 CyclicBarrier 有什么区别?
37. 执行 execute() 方法和 submit() 方法的区别是什么呢?
40. 谈谈对 CopyOnWriteArrayList 的理解?
41. 谈谈对 BlockingQueue 的理解?分别有哪些实现类?
42. 谈谈对 ConcurrentSkipListMap 的理解?
五、Java JVM 42 道
5. 为什么要把堆和栈区分出来呢?栈中不是也可以存储数据吗?
19. 分代收集下的年轻代和老年代应该采用什么样的垃圾回收算法?
26. 谈谈你对内存分配的理解?大对象怎么分配?空间分配担保?
40. 为何 HotSpot 虚拟机要使用解释器与编译器并存的架构?
六、SSM框架 37 道
10. Spring 中的单例 Bean 的线程安全问题了解吗?
16. ApplicationContext 通常的实现有哪些?
22. 如何解决 POST 请求中文乱码问题,GET 的又如何处理呢?
23. SpringMVC 的控制器是不是单例模式,如果是会有什么问题,怎么解决?
26. SpringMVC 和 Struts2 的区别有哪些?
29. MyBatis 与 Hibernate 有哪些不同?
30. MyBatis 中 #{} 和 ${}的区别是什么?
31. MyBatis 是如何进行分页的?分页插件的原理是什么?
34. MyBatis 是否支持延迟加载?如果支持,它的实现原理是什么?
37. MyBatis 动态 SQL 是做什么的?都有哪些动态 SQL?能简述一下动态 SQL的执行原理不?
七、MySQL 31 道
5. varchar(10) 和 varchar(20) 的区别?
9. 为什么 InnoDB 存储引擎选用 B+ 树而不是 B 树呢?
15. 怎么知道创建的索引有没有被使用到?或者说怎么才可以知道这条语句运行很慢的原因?
31. MySQL 数据库 CPU 飙升到 500% 的话他怎么处理?
八、Redis 12 道
九、计算机网络 45 道
8. 在交互过程中如果数据传送完了,还不想断开连接怎么办,怎么维持?
22. TCP 和 UDP 分别对应的常见应用层协议有哪些?
23. 为什么 TIME-WAIT 状态必须等待 2MSL 的时间呢?
39. 谈下你对 HTTP 长连接和短连接的理解?分别应用于哪些场景?
十、操作系统 32 道
22. 一个程序从开始运行到结束的完整过程,你能说出来多少?
十一、消息队列与分布式 26 道
4. 如何保证消息不被重复消费?或者说,如何保证消息消费的幂等性?
5. 如何保证消息的可靠性传输?或者说,如何处理消息丢失的问题?
12. Kafka 可以脱离 zookeeper 单独使用吗?为什么?
22. 集群中有 3 台服务器,其中一个节点宕机,这个时候 Zookeeper 还可以使用吗?