vivo面试题目分享~java岗 社招
底层结构,什么时候扩容,为什么负载因子是0.75等
2、ConcurrentHashMap
底层结构,1.7和1.8有什么不同,为什么是线程安全
3、线程池的创建
七个参数,核心线程数和最大线程数根据什么设置
4、MySQL默认的隔离的机制,怎么解决幻读的?
5、Spring中AOP的实现原理
6、一般什么场景用AOP
7、Redis用于排序的数据结构
8、ZSet底层是怎么实现的
9、Redis实现分布式锁
10、setnx和过期时间分开两个语句设置会出现什么问题
11、还了解哪些分布式锁的实现
12、项目的代码结构
各层之间是怎么调用的(一下忘记忘记了),实体类什么时候调用
13、事务怎么用,是用在哪一层
14、深挖项目功能点,遇到什么难处,解决方法是什么
二面
1.java 创建线程的方式,runnable和callable 区别(参数不同)1. java线程的状态有哪些;线
程的几种状态
2说一下公平锁和非公平锁的原理;
3锁有哪些
4问了如何保证多线程通信
5 CAS 的原理给我讲一下,他是怎么保证内存的可见性的。CAS会产生什么问题
6多线程如何保持同步?
7linux中如何查看CPU负载top
8.protobuf 了解不,grpc 了解不,用的什么协议,HTTP2和HTTP1 区别,websocket建立连
接过程
9.RPC你了解过吗?
10 排序算法有哪些,简述冒泡和归并排序,冒泡算法的优化,讲讲归并排序,冒泡的优化知道
吗;回答相等不交换,还有flag做已排序标志的优化;直接插入排序,写一下伪代码或者说
一下思路,插入排序,时间复杂度