2021 年百度 Java 面试真题,面试官老爱问适配器模式与外观模式
一、Netty 概念及体系结构
01 Netty——异步和事件驱动
Java 网络编程 NIO 选择器
Netty 的简介、谁在使用 Netty、异步和事件驱动
Netty 的核心组件


02 你的第一款 Netty 应用程序
获取并安装 Java 开发
下载和安装 IDE、Apache Maven
Netty 客户端服务器概览
编写 Echo 客户端
构建和运行 Echo 服务器和客户端


03 Netty 的组件和设计
Channel、EventLoop 和 ChannelFuture
ChannelHandler 接口 和 ChannelPipeline 接口
编码器和解码器
抽象类 SimpleChannel-InboundHandler


04 传输
不通过 Netty 使用 OIO 和 NIO
NIO——非阻塞 I/O Epoll——用于 Linux 的本地非阻塞传输
OIO——旧的阻塞 I/O 用于 JVM 内部通信的
Embedded 传输


05 ByteBuf 类——Netty 的数据容器
字节级操作
ByteBufHolder 接口
按需分配:Byte-BufAllocator 接口


06 ChannelHandler 和 ChannelPipeline
ChannelHandler 家族
修改 ChannelPipeline
ChannelHandlerContext 接口
异常处理


07 EventLoop 和线程模型
线程模型概述
Netty 4 中的 I/O 和事件处理
JDK 的任务调度 API
线程管理、 EventLoop/线程的分配


08 引导
Bootstrap 类
引导客户端和无连接协议
从 Channel 引导客户端
在引导过程中添加多个 ChannelHandler
使用 Netty 的 Channel-Option 和属性
最后
最后,强调几点:
1. 一定要谨慎对待写在简历上的东西,一定要对简历上的东西非常熟悉。因为一般情况下,面试官都是会根据你的简历来问的; 能有一个上得了台面的项目也非常重要,这很可能是面试官会大量发问的地方,所以在面试之前好好回顾一下自己所做的项目;
2. 和面试官聊基础知识比如设计模式的使用、多线程的使用等等,可以结合具体的项目场景或者是自己在平时是如何使用的;
3. 注意自己开源的 Github 项目,面试官可能会挖你的 Github 项目提问;
我个人觉得面试也像是一场全新的征程,失败和胜利都是平常之事。所以,劝各位不要因为面试失败而灰心、丧失斗志。也不要因为面试通过而沾沾自喜,等待你的将是更美好的未来,继续加油!
以上面试专题的答小编案整理成面试文档了,文档里有答案详解,以及其他一些大厂面试题目。
面试答案



评论