百度后端一面
简直就是一场酣畅淋漓的八股拷打
基础的我不写了,我只写我觉得稍微有难度的
一.八股
1.i++是原子操作吗?
2.a=Interger(200)和b=Interger(200),ab相同吗,a=Interger(0)和b=Interger(0)呢
2.1 为什么要有包装数据类型
2.2 基本数据类型存储在哪里,引用数据存储在哪里(有例外吗)
3.String可变吗,StringBuilder可变吗,具体你用哪个,java里面运算符可以重载吗(我说变的频繁就用StringBuilder,面试官跟我说现在String优化了,源码里面对于String的+操作被重载了,重载为使用StringBuilder,所以大部分情况用String就行了)
4.重载和重写区别,构造方法可以重写吗,构造方法可以重载吗?
5.Redis实现延时队列?说出两种以上方法
6.sql中执行一个update语句加了哪些锁?(我答出来加了行锁,面试官说不止,还有其他的。)
7.给我一段代码,看什么问题,具体是单例模式的饿汉式加载,我说没有用两次判断,以及单例对象没有用volatile修饰。
8.进程和线程的区别,协程是什么
9.cpu操作内存主要些什么?
10.虚拟内存有什么好处?
11.spring中说出五种设计模式?
二.项目
项目没怎么问,感觉是跟他们的平时的业务不太相关。
1.为什么动态配置中心要用redis的发布订阅呢,为什么不用MQ。
2.讲一讲接口限流怎么实现的。
三.手撕
实现一个数据结构,O(1)时间实现插入,删除,和返回一个随机值。