2年半工作经验,中级Java岗位面试遇到的问题汇总
1.列举常见的算法及对应的时间复杂度
2.代码实现快速排序算法
3.ArrayList 和 LinkedList 比较
4.HashMap、HashTable、TreeMap、LinkedHashMap、ConcurrentHashMap 比较以及使用场景
5.HashMap实现机制
6.Java IO流
7.数据库隔离级别
8.JDBC
9.String、StringBuffer、StringBuilder 比较以及使用场景
10.Spring 的使用体验
11.Spring IOC、AOP 原理
12.SpringMVC 生命周期
13.Spring事务隔离级别
14.Spring事务管理的原理
15.Spring MyBatis整合机制
16.MyBatis映射机制,如何实现代码和SQL分离
17.MyBatis中#与$的使用区别
18.Sql优化(考虑哪些因素,使用的工具)
19.数据库分库分表
20.Oracle如何实现分页的
21.Java和Go语言的比较
22.进程、线程、协程的比较
23.多线程两种实现方式以及Java为何提供这两种实现方式
24.线程池
25.线程的状态
26.JVM的原理
27.计算机内存结构
28.常见设计模式和使用场景
29.抽象类和普通类的比较以及Java为什么要提供抽象类
30.分布式框架使用经验(dubbo zookeeper)
31.MQ如何处理消息重复
32.HTTP协议3次握手过程
33.列举HTTP常见的消息头
34.spring boot、spring cloud
35.Object 类下面有哪些方法?equals实现过程?为什么重写equals方法必须重写hashCode方法?notify和notifyAll有什么
区别?equals,toString,clone,wait,notify,notifyAll
36.Map的数据结构,什么情况下会使用链表?
37.Restful接口如何实现权限验证?
38.GET请求和POST请求区别和使用场景
39.死锁的必要条件,怎么处理死锁?
40.ThreadLocal的设计概念和作用
41.类加载的几个过程分别是什么?
42.什么是双亲委派模型?好处是?
43.Java的引用有哪几种
44.volatile是否能保证线程安全
45.用两种方法实现一个线程安全的计数器