北京夕航Java一面-面筋卷

Posted 唐僧洗澡不秃头

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了北京夕航Java一面-面筋卷相关的知识,希望对你有一定的参考价值。

北京夕航一面40分钟

自我介绍
问了下论坛项目是不是自己做的,是不是从网上找的
问了下学习的经历
这次面试内容主要是围绕Zookeeper和集合类以及mysql

  1. 如何利用Zookeeper实现负载均衡/server/server1(Netty监听网络请求,首先需要实现一个服务的注册发现,然后对于每个次请求在指定服务目录/datacount/server1/下新建临时节点,本地存储一份服务的集合,统计各个服务的访问量,然后通过不同的负载均衡策略决定访问哪个服务)
  2. 负载均衡策略以及实现(轮询,最少访问优点,hash,一致性hash,随机)
  3. 分布式队列的实现(先进先出,poll和offer,offer插入是,创建临时顺序节点,然后在本地维护一个集合保存所有的节点,排序,使用watch监听节点的删除事件刷新集合,poll取出,每次拿最小的,拿了之后删除节点)
  4. Zookeeper如何保证分布式并发如何保证安全(通过一个事务ID以及内部有一个事务队列,保证事务执行的顺序性,以及ZAB的选主流程)
  5. Zookeeper的写请求leader和follow都能接收写请求吗
  6. 如果一个写请求给leader,leader是先写然后在再给follow吗(ZAB协议运行过程中,所有的客户端更新都发往Leader,Leader写入本地日志后再复制到所有的Follower节点。)
  7. 如果从节点本地写成功了,但是由于宕机或者网络问题,没有将写成功的信息发给leader,会怎么样(重连,数据同步)
  8. 主节点接收到所有从节点的ACK,之后宕机了,数据算是写成功还是写失败(我的答案是写失败,从节点如果长期未接收到主节点的心跳,会进行举行选主)
  9. 如果网络抖动的话临时节点会被删除吗(Leader节点运行后会周期性地向Follower发送心跳信息)
  10. java的队列是什么实现的,用数组怎么实现(两个指针,循环数组)
  11. 知道那些线程安全的集合(答HashTable,ConCurrentHashMap,以及current包下的一些集合),有看过相关源码吗
  12. ConCurrentHashMap比HashTable好在什么地方(答加锁的区别以及扩容)
  13. 说说ConCurrentHashMap是怎么加锁的(从put将起,CAS,和Node加锁),为什么这么做?(答性能方面)
  14. MySQL事务隔离级别,默认隔离级别,什么是可重复读,MySQL如何实现可重复读(MVCC->(缓存行的组成,undo log,ReadView组成,ReadView机制)))
  15. 设计一个类似微信的好友的一个系统,设计数据库,可以加好友,好友列表,共同好友等功能(答:user表,好友关系表(userID,friendID)主键是userID+friendID),共同好友通过 SELECT follower_id FROM follower WHERE user_id=1 AND follower_id IN(SELECT follower_id FROM follower WHERE user_id=2),查找好友数最多的用户( count group order by )

以上是关于北京夕航Java一面-面筋卷的主要内容,如果未能解决你的问题,请参考以下文章

同程上海Java实习一面-面筋卷

奇安信一面-面筋卷

杭州代码狗一面-面筋卷

面试群铁子尝试北京某厂Java开发岗,一面,标价20-25k

面试群铁子尝试北京某厂Java开发岗,一面,标价20-25k

面试群铁子尝试北京某厂Java开发岗,一面,标价20-25k