前言
春招,秋招,社招,我们 Java 程序员的面试之路,是挺难的,过了 HR,还得被技术面,小刀在去各个厂面试的时候,经常是通宵睡不着觉,头发都脱了一大把,还好最终侥幸能够入职一个独角兽公司,安稳从事喜欢的工作至今...近期也算是抽取出大部分休息的时间,为大家准备了一份通往大厂面试的小捷径,准备了一整套 Java 复习面试的刷题以及答案,我知道很多同学不知道怎么复习,不知道学习过程中哪些才是重点,其实,你们经历过的事情,小马也经历过,正应为经历过,所以不愿意看到还有万千学子为此伤神,也许这篇文章帮不到万千学子,但是能够在知乎这个平台上帮助到正在看这篇文章的那个迷茫的你! 我也就满足了!
我也花费好几个月收集整理了各大厂常见面试题 N 道,你想要的这里都有内容涵盖:Java、MyBatis、ZooKeeper、Dubbo、Elasticsearch、Memcached、Redis、MySQL、Spring、Spring Boot、Spring Cloud、RabbitMQ、Kafka、Linux 等技术栈!!
具体面试题如下:
一、Java 基础
-
1. JDK 和 JRE 有什么区别?
-
2. == 和 equals 的区别是什么?
-
3. 两个对象的 hashCode()相同,则 equals()也一定为 true,对吗?
-
4. final 在 java 中有什么作用?
-
5. java 中的 Math.round(-1.5) 等于多少?
-
6. String 属于基础的数据类型吗?
-
7. java 中操作字符串都有哪些类?它们之间有什么区别?
-
8. String str="i"与 String str=new String(“i”)一样吗?
-
9. 如何将字符串反转?
-
10. String 类的常用方法都有那些?
-
11. 抽象类必须要有抽象方法吗?
-
12. 普通类和抽象类有哪些区别?
-
13. 抽象类能使用 final 修饰吗?
-
14. 接口和抽象类有什么区别?
-
15. java 中 IO 流分为几种?
-
16. BIO、NIO、AIO 有什么区别?
-
17. Files 的常用方法都有哪些?
二、容器
-
18. java 容器都有哪些?
-
19. Collection 和 Collections 有什么区别?
-
20. List、Set、Map 之间的区别是什么?
-
21. HashMap 和 Hashtable 有什么区别?
-
22. 如何决定使用 HashMap 还是 TreeMap?
-
23. 说一下 HashMap 的实现原理?
-
24. 说一下 HashSet 的实现原理?
-
25. ArrayList 和 LinkedList 的区别是什么?
-
26. 如何实现数组和 List 之间的转换?
-
27. ArrayList 和 Vector 的区别是什么?
-
28. Array 和 ArrayList 有何区别?
-
29. 在 Queue 中 poll()和 remove()有什么区别?
-
30. 哪些集合类是线程安全的?
-
31. 迭代器 Iterator 是什么?
-
32. Iterator 怎么使用?有什么特点?
-
33. Iterator 和 ListIterator 有什么区别?
-
34. 怎么确保一个集合不能被修改?
三、多线程
-
35. 并行和并发有什么区别?
-
36. 线程和进程的区别?
-
37. 守护线程是什么?
-
38. 创建线程有哪几种方式?
-
39. 说一下 runnable 和 callable 有什么区别?
-
40. 线程有哪些状态?
-
41. sleep() 和 wait() 有什么区别?
-
42. notify()和 notifyAll()有什么区别?
-
43. 线程的 run()和 start()有什么区别?
-
44.创建线程池有哪几种方式?
-
45.线程池都有哪些状态?
-
46. 线程池中 submit()和 execute()方法有什么区别?
-
47. 在 java 程序中怎么保证多线程的运行安全?
-
48. 多线程锁的升级原理是什么?
-
49. 什么是死锁?
-
50. 怎么防止死锁?
-
51. ThreadLocal 是什么?有哪些使用场景?
-
52. 说一下 synchronized 底层实现原理?