8.23百度一面凉经
1. 自我介绍
2. 实习里面碰到的技术难点并且是怎么解决的?
a. es
b. 为什用es替代mysql,他俩有啥不一样?
c. 如果你没有搜索的需求,一开始为什么要用数据库呢?
d. 数据量不大的话也是要走全表扫描的,跟你数据量大不大有什么关系?
e. mysql里面的模糊搜索跟es里面的模糊搜索有什么不一样的?
f. 我要模糊搜索一个词,我在es里面没有对其进行分词,那我是不是就搜索不到了?
g. 你们是怎么判断哪些是要搜的词的,你们能知道世界上所有的词呢?
3. mysql
a. 隔离级别
b. 可重复读
c. 版本控制可以解决幻读问题,能不能讲一下是怎么解决的?
ⅰ. 也就是说每一条数据都要存到历史版本?那具体是怎么来存的?
ⅱ. 如果把每条数据都要存历史版本,如果存到日志里边,那这个日志是不是越来越大,这个历史版本什么时候清掉?
4. redis
a. 怎么做持久化的?
ⅰ. rdb
ⅱ. aof
1. 讲讲日志的写入流程?
2. redi每个操作都要写一下日志,那会对性能有什么影响,然后通过什么方式来避免这种影响?
3. 宕机为什么会导致数据丢失,丢失的是哪些数据?
4. 了解操作系统里面的page cache吗?
5. aof日志写到page cache里边,异步的把内存里的日志数据写入到磁盘/s
5. java
a. aio、bio、nio的区别?https://blog.csdn.net/meism5/article/details/89469101
b. 阻塞、非阻塞?
c. 同步、异步?
6. go和java对比
a. go struct和java 类有什么不一样的?
b. 一个struct想要复用另外一个struct的成员的话怎么做?
c. java里面实现接口和go实现接口有啥区别?
d. go里面struct怎么实现一个接口?写出来
7. 算法
a. 2385. 感染二叉树需要的总时间
#Java研发工程师实习# #百度实习#附录音: https://www.bilibili.com/audio/au3168287?type=1