字节-基础架构-一面凉经
自我介绍
介绍RPC项目
RPC项目中Spring的自动注册与消费
这里动态代理介绍一下?
你RPC框架中的对象实例是由谁生成的?
为什么用netty(IO多路复用,零拷贝,线程模型)
线程模型的介绍(单线程Reactor 多线程Reactor 主从Reactor)
如果全部设置为worker会怎么样
netty worker的初始数量是多少,假设8核
零拷贝的介绍
用户态 内核态的介绍
用户态内核态怎么实现隔离
零拷贝的整个过程 从哪里拷贝到哪里 又从哪里拷贝到哪里
零拷贝中的DIRECT_MEMORY具体在哪里?
epoll是怎么实现的?(底层原理)
你刚刚说到通知,这个通知是怎么实现的?具体是什么?
虚拟内存,物理内存,常驻内存是什么东西?
平时我们的代码都在内存中嘛?
动态库你有过了解嘛?
你知道Java中有哪些map?
如果要用一个稳定有序的map应该用什么?(回答LinkedListMap,说你确定?)
LinkedListMap能够实现稳定的排序嘛?(还是没有听懂想问啥,然后问面试官这里的稳定主要是指什么?排序算法的稳定?没听明白 就介绍了一遍LinkedHashMap的数据结构)
如果要实现一个map 一定要用hash嘛?(没明白啥意思,用二维数组也可以实现map)
用hash主要是为了能够实现快速查找
hashmap查询的时间复杂度是多少?(O(n) O(logn))
最坏的情况下能达到多少?
反问:部门工作 操作系统怎么深入学习
后来回忆了一下:还有问RPC框架中的异步是怎么异步的。(回答了Future.get()的伪异步 和后面改进的completableFuture的异步)
然后问了CompletableFuture异步是怎么通知业务完成的。
心态崩了,三次面试字节做到都是没碰到过的hard题目,加上面试紧张,只做了个暴力解法。
希望之后有好运发生吧。