携程二面
自我介绍
针对项目开始问问题
项目里面用到了多级缓存,请问是怎么设计的
用到了本地缓存Caffeine + Redis做了多级缓存
为什么要用到本地缓存呢?
用计算机cpu中的多级缓存举例,为了提高数据访问的效率,Redis可以单机部署,在执行服务的机器中添加本地缓存能进一步提高数据访问的效率
本地缓存、Redis缓存和数据库的一致性是如何保证的?
本地缓存只是会用,但是具体一致性问题不是很了解,于是和面试聊了一下Redis和MySQL的一致性问题。
面试官让我详细介绍了一下如何处理Redis和MySQL的一致性问题。(聊得很细,让我详细描述了一下会出现的问题,以及具体流程)
先更新数据库,用消息队列成功删除redis缓存之后,数据一致性一定能保证吗?
我回答是的,然后面试官说还是会出现数据一致性的问题,他解释了一下原因,然后我补充了一下可以用延迟双删来解决。
八股集合
如何创建类对象的实例
ArrayList和LinkedList的区别
HashMap的put的过程
类加载的机制
Java线程的可见性是什么
volatile是如何保证可见性的
synchronized语法一般用于什么场景,一般怎么用
String对象用来做对象锁吗
synchronized锁内报异常了,锁能否释放
数据库三大范式是什么
MySQL的隔离级别分别有什么,能解决什么问题
数据库的索引建立应该考虑什么
小插曲
面试官人挺年轻的,面完之后和面试官聊天,和他交流了一下关于压力面试的问题(上次面试有些阴影),然后面试官举了个百度和阿里面试官互相面试的例子来鼓励我,和我说:“我们出去面试也是要被别人这样子面的,大部分的面试都和聊天一样的,但是也有存在会刁难的,也很正常,慢慢就习惯了”。有一说一,这两次携程面试感觉都挺好的,希望能拿到它的offer。
有个很艹的事情,晚上加的交流群,居然有兄弟把面试官给我讲的故事发出来了,哈哈哈哈!