前言

小编分享的这份春招Java后端开发面试总结包含了JavaOOP、Java集合容器、Java异常、并发编程、Java反射、Java序列化、JVM、Redis、Spring MVC、MyBatis、MySQL数据库、消息中间件MQ、Dubbo、Linux、ZooKeeper、 分布式&数据结构与算法等25个专题技术点,都是小编在各个大厂总结出来的面试真题,已经有很多粉丝靠这份PDF拿下众多大厂的offer,今天在这里总结分享给到大家!

小编这篇分享篇幅可能有点长,观看的朋友可以先了解一下目录

  1. JavaOOP面试题
  2. Java集合/泛型面试题
  3. Java异常面试题
  4. Java中的IO与NIO面试题
  5. Java反射面试题
  6. Java序列化面试题
  7. Java注解面试题
  8. 多线程&并发面试题
  9. JVM面试题
  10. Mysql面试题
  11. Redis面试题
  12. Memcached面试题
  13. MongoDB面试题
  14. String面试题
  15. Spring Cloud面试题
  16. RabbitMQ面试题
  17. Dubbo 面试题
  18. MyBatis 面试题
  19. ZooKeeper 面试题
  20. 数据结构面试题
  21. 算法面试题
  22. Elasticsearch 面试题
  23. Kafka 面试题
  24. 微服务 面试题
  25. Linux面试题


一、JavaOOP面试题

1、short s1 = 1; s1 = s1 + 1;有错吗? short s1 = 1; s1 += 1; 有错吗?

2、重载和重写的区别

3、数组实例化有几种方式?

4、Java中各种数据默认值

5、Object类常用方法有那些?

6、java中是值传递引用传递?

7、形参与实参区别

8、构造方法能不能重写?能不能重载?

9、内部类与静态内部类的区别?

10、Static关键字有什么作用?

11、final在java中的作用,有哪些用法?

12、String str=”aaa”,与String str=new String(“aaa”)一样吗?

13、讲下java中的math类有那些常用方法?

14、Char类型能不能转成int类型?能不能转化成string类型,能不能转成double类型

15、什么是拆装箱?

16、Java中的包装类都是那些?

17、一个java类中包含那些内容?

18、那针对浮点型数据运算出现的误差的问题,你怎么解决?

19、面向对象的特征有哪些方面?

20、访问修饰符 public,private,protected,以及不写(默认) 时的区别?

21、接口有什么特点?

22、抽象类和接口的区别?

23、Hashcode的作用

24、普通类与抽象类有什么区别?

25、什么是接口?为什么需要接口?

26、接口有什么特点?

27、拷贝和浅拷贝的区别是什么?

28、JDBC操作的步骤

29、什么时候用assert

30、数组有没有length()这个方法? String有没有length()这个方法

31、用最有效率的方法算出2乘以8等于几?

32、String 和 StringBuilder、StringBuffer 的区别?

33、接口是否可继承(extends)接口?抽象类是否可实现(implements)接口?抽象类是否可继承具体类(concreteclass)?

34、一个”.java”源文件中是否可以包含多个类(不是内部类)?有什么限制?

35、Java 中的 final 关键字有哪些用法?

二、Java集合/泛型面试题


1、ArrayList和linkedList的区别

2、HashMap排序题

3、Collection包结构,与Collections的区别

4、带集合参数的构造器

5、说说List,Set,Map三者的区别

6、并发集合和普通集合如何区别?

7、Map有什么特点

8、集合类存放于 Java.util 包中, 主要有几 种接口

9、什么是list接口

10、说说ArrayList(数组)

11、Vector( 数组实现、 线程同步)

12、说说LinkList(链表)

13、什么Set集合

14、HashSet( Hash 表)

15、什么是TreeSet(二叉树)

16、List 和 Map、Set 的区别?

17、数组和链表分别比较适合用于什么场景,为什么?

18、说说ConcurrentHashMap

19、Java中ArrayList和LinkedList区别?

20、TreeMap(可排序)

21、请用两个队列模拟堆栈结构?

22、Map中的key和value可以为null?

23、数据结构基础之双向链表

24、HashMap的底层实现

25、ConcurrentHashMap 和 Hashtable 的区别

26、说出ArrayList,Vector,LinkedList的存储性能和特性

27、你所知道的集合类都有哪些?主要方法?

28、HashMap原理,java8做了什么改变

29、poll()方法和 remove()方法的区别?

30、写一段代码在遍历 ArrayList 时移除一个元素

三、Java异常面试题

1、Java中异常分为哪两种?

编译时异常

运行时异常

2、异常的处理机制有几种?

异常捕捉:try…catch…finally,异常抛出:throws。 public class Box<T> { private T t; public void add(T t) { this.t = t; }public T get() { return t; } }

3、如何自定义一个异常

继承一个异常类,通常是RumtimeException或者Exception

4、try catch fifinally,try里有return,finally还执行么?

执行,并且finally的执行早于try里面的return

结论:

1、不管有木有出现异常,finally块中代码都会执行;

2、当try和catch中有return时,finally仍然会执行;

3、finally是在return后面的表达式运算后执行的(此时并没有返回运算后的值,而是先把要返回的值保存起来,管finally中的代码怎么样,返回的值都不会改变,任然是之前保存的值),所以函数返回值是在finally执行前确定的;

4、finally中最好不要包含return,否则程序会提前退出,返回值不是try或catch中保存的返回值。

5、 Excption与Error包结构

6、Thow与thorws区别

7、Error与Exception区别?

8、error和exception有什么区别

9、final、finally、finalize 的区别?

10、Java 异常处理机制的理解?

11、说出最常见的5个RuntimeException?

12、throw 和 throws 的区别?

13、JAVA 中Exception和Error 面试问题

14、在Java异常处理的过程中,你遵循的那些最好的实践是什么?

15、throw 和 throws这两个关键字在java中有什么不同?

16、你曾经自定义实现过异常吗?怎么写的?

17、你遇到过 OutOfMemoryError 错误嘛?你是怎么搞定的?

18、Java中的异常处理机制的简单原理和应用。

19、最常见到的5个runtime exception。

20、JAVA语言如何进行异常处理,关键字:throws,throw,try,catch,finally分别代表什么意义?在try块中可以抛出异常吗?

四、Java中的IO与NIO面试题

1、Java 中 IO 流?

2、字节流如何转为字符流?

3、常用io类有那些

4、如何将一个 java 对象序列化到文件里?

5、阻塞 IO 模型

6、字节流和字符流的区别?

7、多路复用 IO 模型

8、如何实现对象克隆?

9、异步 IO 模型

10、什么是 java 序列化,如何实现 java 序列化?

11、NIO 的缓冲区

12、面向Stream和面向Buffer

13、Channel

14、NIO和IO对应用的设计有何影响

15、Selector

16、Java IO与 NIO的区别

17、字节流与字符流的区别

18、非阻塞 IO 模型

19、信号驱动 IO 模型

20、NIO 的非阻塞

21、Buffer

22、JAVA NIO

五、Java反射面试题

1、什么是反射?

2、Java反射创建对象效率高还是通过new创建对象的效率高?

3、什么叫对象序列化,什么是反序列化,实现对象序列化需要做哪些工作?

4、哪里会用到反射机制?

5、反射机制的优缺点?

6、实现Java反射的类:

7、动态代理是什么?有哪些应用?

8、Java 反射 API

9、如何使用Java的反射?

10、获取 Class 对象有几种方法

11、除了使用new创建对象之外,还可以用什么方法创建对象?

12、java反射的作用

13、反射的实现方式:

14、反射使用步骤(获取 Class 对象、调用对象方法)

六、Java序列化面试题

1、什么是java序列化?

2、保存(持久化)对象及其状态到内存或者磁盘

3、序列化对象以字节数组保持-静态成员不保存

4、Serializable 实现序列化

5、序列化 ID

6、序列化用户远程对象传输

7、writeObject 和 readObject 自定义序列化策略

8、序列化并不保存静态变量

9、序列化(深 clone 一中实现)

10、Transient 关键字阻止该变量被序列化到文件中

11、如何实现java序列化?

12、Transient 关键字阻止该变量被序列化到文件中

13、静态变量的序列化?

七、Java注解面试题

1、4种标准元注解是哪四种?

2、什么是注释?他们的典型用例是什么?

3、从标准库中描述一些有用的注释。

4、注解是什么?

5、可以从注释方法声明返回哪些对象类型?

6、哪些程序元素可以注释?

7、有没有办法限制可以应用注释的元素?

8、什么是元注释?

9、什么是重复注释?

10、你怎么能检索注释?这与保留政策有何关系?

11、Q11,是否可以扩展注释?

需要获取面试答案得话麻烦一键三连+评论,然后添加VX(tkzl6666)即可免费领取

八、多线程&并发面试题

JAVA 并发知识库

1、什么是线程?

2、继承 Thread 类

3、如何在java中实现线程

4、ExecutorService、 Callable、 Future 有返回值线程

5、实现多线程 Thread 和 Runnable区别?

6、4 种线程池

7、解释java中的volatile变量

8、notify()和notifyAll()有什么区别?

9、sleep()和wait() 有什么区别?

10、volatile 是什么?可以保证有序性吗?

11、Thread 类中的start() 和 run() 方法有什么区别?

12、为什么wait, notify 和 notifyAll这些方法不在thread类里面?

13、共享锁和独占锁

14、Java中interrupted 和 isInterruptedd方法的区别?

15、Java中synchronized 和 ReentrantLock 有什么不同?

16、有三个线程T1,T2,T3,如何保证顺序执行?

17、SynchronizedMap和ConcurrentHashMap有什么区别?

18、什么是线程安全

19、重量级锁(Mutex Lock)

20、Java线程池中submit() 和 execute()方法有什么区别?

21、偏向锁

22、说说自己是怎么使用 synchronized 关键字,在项目中用到了吗synchronized关键字最主要的三种使用方式

23、什么是线程安全?Vector是一个线程安全类吗?

24、Java中实现多线程有几种方法

25、实现 Runnable 接口。

26、基于线程池的方式

27、如何停止一个正在运行的线程

28、线程基本方法

29、线程让步(yield)

30、线程唤醒(notify)

需要获取面试答案得话麻烦一键三连+评论,然后添加VX(tkzl6666)即可免费领取

九、JVM面试题


1、JVM 运行时内存

2、64 位 JVM 中,int 的长度是多数?

3、新生代、老年代、永久代

4、32 位和 64 位的 JVM,int 类型变量的长度是多数?

5、JAVA8 与元数据

6、分代收集算法

7、怎样通过 Java 程序来判断 JVM 是 32 位 还是 64位?

8、分代收集算法

9、JRE、JDK、JVM 及 JIT 之间有什么不同?

10、解释 Java 堆空间及 GC?

11、JVM 内存区域

12、JAVA强引用、软引用、弱引用、虚引用

13、虚拟机栈(线程私有)

14、分代收集算法

15、你能保证 GC 执行吗?

16、怎么获取 Java 程序使用的内存?堆使用的百分比?

17、在老年代-标记整理算法

18、描述一下 JVM 加载 class 文件的原理机制

19、Serial Old 收集器(单线程标记整理算法

20、堆(Heap-线程共享) -运行时数据区

21、G1 收集器

22、JVM 类加载机制

23、堆和栈的区别

24、什么是Java虚拟机?为什么Java被称作是“平台无关的编程语言”?

25、Parallel Old 收集器(多线程标记整理算法)

26、垃圾收集算法

27、Minor GC与Full GC分别在什么时候发生?

28、你知道哪些JVM性能调优

29、说一下 JVM 的主要组成部分及其作用?

30、队列和栈是什么?有什么区别?

十、Mysql面试题


1、MySQL 中有哪些不同的表格?

2、TokuDB( Fractal Tree-节点带数据)

3、MySQL 中 InnoDB 支持的四种事务隔离级别名称,以及逐级之间的区别?

4、Memory

5、myisamchk 是用来做什么的?

6、MyISAM 表格将在哪里存储,并且还提供其存储格式?

7、索引

8、常见索引原则有

9、如何显示前 50 行?

10、第一范式(1st NF - 列都是不可再分)

11、第二范式(2nd NF- 每