八月11号晚上七点阿里会议视频面,总时长约100分钟。
- 讲讲ArrayList
- HashMap底层结构,它put一个数据的流程是什么?
- hashcode不同的话,两个对象的值一定不同吗?
- hashmap是线程安全的吗?线程安全的hashmap有哪些,介绍一下?
- concurrentHashMap线程安全的原理是什么?JDK1.7 和 1.8 的区别是什么?
- CAS原理是什么?
- synchronize原理是什么?
- 利用java现有的东西,让你设计一个对象,实现类似synchronize的功能,使得多个线程不冲突,你如何设计?(开始没什么头绪,后来面试官提醒可以参考ThreadLocal...)
- synchronize锁定.class和锁定一个实例有什么区别?(不会)
- 数据库索引介绍一下
- 慢查询如何优化
-
explain中的key字段的值等于ref时,有没有触发索引?
- 介绍实习做的事情,问如何实现单点登录,如何实现权限控制,用户密码泄露后如何保证安全性
- springboot的启动过程说一下(我对springboot底层原理不是很了解)
- springboot 和 spring 的区别是什么?
- springboot为什么能简化配置,如何实现的?
- spring中bean的初始化过程
- spring中循环依赖如何解决?如果让你来实现你怎么做?(我给面试官说了原理,然后他继续问我具体实现。。。)
- 输入一个网络地址会发生什么?
- DNS说一下?
- 如果我的服务器ip地址变了,客户端如何感知到呢?
- 项目的负载均衡是怎么做的?(我回答轮询)
- 轮询的负载均衡的缺点是什么?如何改进?(按照用户的id或者ip地址哈希映射到相应的服务器上)
-
让你来实现真正的负载均衡,你如何做?(我回答记录每台服务器在最近的一段时间内接收的请求的数量,每次都把请求发送给数量最小的服务器,后来面试官提醒我还应当考虑每个请求耗费的时间)
- 秒杀项目中静态资源CDN怎么做?(这一块我其实没有亲自做,申请域名太麻烦了,结果面试官问我在哪申请域名,我只好说自己没亲自做这个内容,然后面试官问我CDN的过程)
- css文件能放到CDN上吗?(我觉得能,但是面试官认为这样不方便修改样式)
- 秒杀缓存如何与数据库的数据保持一致性?
- 如何线程1去缓存中查找某商品的价格数据,缓存中没这个数据,于是线程1去数据库拿,这时价格的值为A,线程1拿到价格的值后本来是需要放到缓存中的,但这时线程1卡了一段时间,然后在此期间这个价格被修改为B,这时线程2去数据库拿到价格的值为B,并将其设置到缓存中。然后线程1走到了设置缓存的代码处,并将商品的价格A覆盖了B。这样会导致旧的数据覆盖新的数据,如何解决?(我回答给数据增加对应的时间戳,只有当前拿到的数据的时间戳大于缓存中的数据的时间戳才去更新缓存)
- 通过广播的方式去更新每个节点的缓存,如果某个节点的缓存更新失败,那么如何排查是哪个节点呢?
有些问题我可能忘记了,总之这一面问了一堆场景题,太难了,感觉可能挂了,面试官觉得我基础不是很牢,但是经过提示能想出解决办法,还是比较聪明。。。
全部评论
(3) 回帖