8月12日网易严选一面

这次是8月12日进行的面试,面试的内容是比较全面的,而且问的确实都挺好的,目前为止面过的所有公司中,网易的这位小哥哥给我感觉是最有水平的(同样也是所有面试官中问问题问的最多的一位)

上来先自我介绍,这里就略去了。

接下来就是连环提问:

  • 这些项目中,你觉得哪些项目有挑战性?
  • 我看你做了好几个安卓的项目,但是你投递的是java岗,为什么?
  • Redis分布式锁的话有哪些实现方式,我提到了用lua操作,可以用lua脚本来保证获取锁和设置超时时间的原子性,面试官说,那lua脚本是不是彻底解决了这个问题,我有点懵
  • 有了解过redis里面的红锁吗?就是redlock。没有。
  • 你用Redis除了分布式锁,还用来做什么?
  • 缓存是用来做什么场景呢?
  • 使用Redis有遇到过数据一致性的问题吗?怎么解决呢?
  • 你在数据库更新数据之后,到redis中会进行什么操作呢?我回答是删掉Redis的数据。
  • 这样就不会有数据一致性问题吗?那有没有什么方式可以降低一致性问题。
  • 缓存的穿透、击穿和雪崩讲一下。
  • 击穿的情况下,我们如何去保护数据库?
  • 代码是如何去写的呢?具体的代码流程。
  • 那如果并发访问的时候,比如1000个,那会不会都没办法从redis缓存中读取到数据,然后大家都去竞争分布式锁呢?
  • mysql的事务的实现原理。
  • mysql里面的日志讲一下,binlog redolog和undolog
  • 建一张表,如何创建索引,你是怎么去考虑的
  • 数据库的分库分表有了解过吗?有哪些实现方式。
  • Redis的事务和mysql的事务有哪些区别。
  • RDB和AOF怎么去选择?它们俩对性能有影响吗?为什么我们现在是两个一起用呢?
  • 技术选型是自己做的吗?
  • 消息队列这块你为什么要用rabbitmq?
  • 消息队列能够给我们带来什么好处
  • 有遇到过分布式一致性问题吗?
  • TCC和两阶段提交,以及和数据库的XA有什么区别?
  • zookeeper有了解过吗?没有。
  • 用了这么多技术,你是怎么学习的?
  • 有了解过分布式的解决方案吗?
  • 高并发你觉得有哪些解决方案呢?
  • java虚拟机的G1相比于CMS,它的优势在哪里?
  • 分代的时候会有一个新生代到老年代的晋升,什么情况下会发生呢?
  • 栈内内存分配了解吗?一个对象不想放到堆里,而是放到自己的栈里,该怎么操作呢
  • 它只要空间足够就可以分配到栈上吗?我记得是的。是吗?
  • 讲一下ReentrantReadWriteLock吧。我不了解
  • 那讲一下ReentrantLock,从源码的角度讲一讲
  • java中的偏向锁,轻量级锁和重量级锁,分别讲一讲
  • java为什么要对锁这样做呢?
  • 平时有什么学习思路?
  • 你看源码都能看懂吗?
  • 源码看不懂的话,会一直往里面钻吗?
  • redis和rabbit这种技术,你是怎么学习的呢?

基本上到时间了。有什么问题吗?然后面试官突然就离开了…..

总结

基本上这波面试的感觉还是很棒的,无论是问题的深度还是广度,而且又找到了几个自己不太熟的点。

然后是给网易的建议:面试邀请能不能学一学别家的公司,直接发送链接就完事儿了,非要去自己的官网转一转….