小红书 2 年社招 Java 后端一面的面经,面试的风格是从一个知识一层一层深入问到底层。
从 Java IO,问到 socket 底层。从 Java 内存,问到操作系统内存。所以学习知识的时候,不要只
看八股文,还是需要从点到面一层层去掌握, 才能比较好应对这类的面试场景。
问题记录
-
自我介绍
-
讲一下BIO,NIO,AIO的区别
-
回答:IO分为两个阶段:数据准备阶段和数据拷贝阶段;BIO需要等待数据准备和数据拷贝;NIO会轮询数据是否准备完成,需要等待数据拷贝;AIO会在数据准备完成和数据拷贝完成后收到通知,然后执行异步处理逻辑
-
-
了解Ngnix原理吗,Ngnix IO模型是什么
-
Review:Reactor模型包含单Reactor单进程/线程,单Reactor多进程/多线程,多Reactor多进程/多线程
-
回答:这块讲得比较乱,讲了一下Reactor模型,把多Reactor和多进程搞混了
-
追问:Reactor和NIO的关系
-
回答:。。。
-
追问:为什么netty要拆成boss和worker,把accept和read/write分开的好处是什么
-
回答:对于单线程模型,read事件需要等待IO,会阻塞后续连接的建立;
-
追问:A进程建立连接后怎么交给B进程去读
-