工作快三年了,也待过几家公司,有了一些面试的经验,整理了一下面试经常遇到的问题,当然答案不完全对,希望相互讨论吧!
Java基础相关
- 1 集合相关
arraylist 和linkedlist的区别,以及内部实现
hashmap的数据结构,hashmap的扩容,hashmap是否线程安全,如何保证线程安全
currenthashmap如何实现
copyonwritearraylist的实现
arrayblockingqueue等阻塞队列的实现 - 2 多线程相关
线程的状态以及相互转化
线程的创建的两种方式
线程的常用方法sleep,yeild,join等等
synchronzied的使用,synchronized和lock的区别
线程通信,写出生产者和消费者
wait和sleep的区别,wait 和notify的区别
reentrantlock的实现原理
countdownlatch和cyclicbarrier的区别,以及现实中的使用
线程池的原理,线程池的参数意义,线程池的拒绝策略有哪些分别有什么区别,线程池的分类有哪些分别在上面情况下使用 - 3 其他相关
static的使用
final的使用
volitale的使用以及原理
单例的写法
JVM相关
垃圾回收算法有哪些,分别怎么回收
jvm的内存结构画出来
JVM参数怎么调优
怎么处理线上oom问题
数据库相关
分页sql怎么写
数据库的left join 和right join 和join的区别,以及left join on 和 join where 的区别
数据库索引分类有哪些,联合索引如何使用,索引的原理是什么?
如何在100w的数据里快速分页,找出90w 之后的10条
数据库事务的隔离级别
脏读幻读不可重读读分别怎么出现
innodb和myisam区别
缓存相关
memcache 和 redis 如何做分布式锁
memcache 和redis有什么区别
redis 有哪些优点和缺点,memcache 有哪些优点和缺点
memcache 和redis 使用的时候遇到的那些坑
emcache 如何集群,redis 如何实现集群
springMVC和Mybatis相关
springmvc 什么叫aop,aop的原理是什么
springmvc 什么叫做ioc,原理是什么
springmvc 事务的传播行为和事务的隔离级别
springmvc一个请求的完整路径画出来
mybatis的# 和$有什么区别
RPC和消息相关和分布式
dubbo 的组成
dubbo 的底层实现
dubbo的负载均衡算法
消息的作用,消息的使用
分布式锁如何实现
分布式session如何实现
数据结构和算法相关
- 1 链表相关
a:链表的逆序
b: 不知道长度链表找中间元素
c: 两个有序链表合并一个链表 - 2 排序相关
a: 冒泡排序
b: 比较排序
c: 插入排序
d: 快速排序
e: 堆排序
f: 希尔排序
g: 归并排序 - 3 树
a: 二叉树遍历 前中后序(递归非递归)
b: 红黑树
c:求树的深度和叶子节点个数等等 - 4 算法相关
a: 递归算法(斐波尼奇数列)
b: 二分查找
c: top k算法
d: 字符串中求只出现一次的字符 O(n)
e:一个数组里,元素只有一个出现一次,其余出现两次找出出现一次的数字 O(n)
网友评论