网易有道 后端 暑期实习
网易有道 一面
- 时间:55分钟
- info:自我介绍+八股+编程题
- 面试官是位小哥哥,特别好,面试体验感太棒了。
- redis是单线程吗?
- redis的持久化方法
- redis的zset的实现方式是什么?
- 介绍一下redis中的跳表,跳表一般有几层*?
- Spring中一个请求经过拦截器、过滤器、AOP的顺序是啥*?
- 说一下JVM的垃圾回收器有什么
- JVM的双亲委派
- Full GC发生的原因?怎么减少Full GC?
- Full GC的时候,JVM会发生什么?会立即去进行GC吗*?——安全点/安全区域
- 介绍一下Java的反射机制
- 线程通信方式
- 线程同步的方法
- volatile和synchronized的区别
- 说一下你用过的设计模式
- 单例模式中双锁校验的实现方式中,为什么要进行两次校验*?从JVM的层面分析
- 数据库InnoDB索引的数据结构?
- 为什么InnoDB索引不用B树或二叉树?
编程1:两个有序链表合并为一个降序链表
编程2:两个线程a和b交替输出1-100.
反问
网易有道 二面
- 时间:70分钟
- info:考察代码能力,没有八股,没有项目,全程写业务逻辑代码
// 电梯调度 // 题干:某个大厦有N部电梯,总共L层。需要为电梯实现调度逻辑部分。 // 电梯系统包含两个方法需要你实现。 A. public int request(int startStage, int targetStage) // 按照调度规则(说明见后,需要你实现)响应用户请求。startStage为用户当前楼层, // targetStage为用户想去的楼层。返回值表示电梯下标,没有可选则返回-1。 B. public void onElevatorPassStage(int index, int stage); // 位置上报回调。电梯的机械装置装有传感器,检测到第index部电梯刚刚到达了stage这一层, // 用此方法通知你的系统 // 有一个内部方法不需你实现,供你调用: C. private native void sendCommandToElevator(int index, Command command); // 你的系统向实际机械传送装置发送动作命令,如上行、下行、停止。一旦收到指令,在下一个指令前会一直保持该动作。 /* 电梯的调度有且仅有以下规则(规则外的行为判定为bug) 规则一. 顺路&就近优先原则:对于用户请求,优先选择与用户同方向的运行中电梯,如有多个选择距离用户最近的。若找不到顺路的候选者,则从闲置的电梯中选择一部最近的去接用户。如果也没有闲置的候选者,request()返回-1值。 规则二. 被动原则:电梯被调度时才会从静止变为运动;运行的电梯到达最后一个用户目的地后才会从运动变为停止。 */#网易有道##实习#