阿里的Netty面试题到底有多难?

Posted Java之间

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了阿里的Netty面试题到底有多难?相关的知识,希望对你有一定的参考价值。

你关注的就是我关心的!

来源:java高级

前言

Netty 是一个可以快速开发网络应用程序的 NIO 框架,它大大简化了 TCP 或者 UDP 服务器的网络编程。Netty 的简易和快速开发并不意味着由它开发的程序将失去可维护性或者存在性能问题,它的设计参考了许多协议的实现,比如 FTP,SMTP,HTTP 和各种二进制和基于文本的传统协议,因此 Netty 成功的实现了兼顾快速开发,性能,稳定性,灵活性为一体,不需要为了考虑一方面原因而妥协其他方面。Netty 的应用还是比较广泛的,比如阿里巴巴开源的 Dubbo 和 Sofa-Bolt 框架底层网络通讯都是基于 Netty 来实现的。

通过本文所说到的关于netty的学习问题和面试问题来说说如何学习高性能netty框架及一些重要知识点!

一、Netty基础相关问题

1、讲讲Netty的特点?

2、BIO、NIO和AIO的区别?

3、NIO的组成是什么?

4、如何使用 Java NIO 搭建简单的客户端与服务端实现网络通讯?

5、如何使用 Netty 搭建简单的客户端与服务端实现网络通讯?

6、讲讲Netty 底层操作与 Java NIO 操作对应关系?

7、Channel 与 Socket是什么关系,Channel 与 EventLoop是什么关系,Channel 与 ChannelPipeline是什么关系?

8、EventLoop与EventLoopGroup 是什么关系?

9、说说Netty 中几个重要的对象是什么,它们之间的关系是什么?

10、Netty 的线程模型是什么?

二、粘包与半包和分隔符相关问题

1、什么是粘包与半包问题?

2、粘包与半包为何会出现?

3、如何避免粘包与半包问题?

4、如何使用包定长 FixedLengthFrameDecoder 解决粘包与半包问题?原理是什么?

5、如何使用包分隔符 DelimiterBasedFrameDecoder 解决粘包与半包问题?原理是什么?

6、Dubbo 在使用 Netty 作为网络通讯时候是如何避免粘包与半包问题?

7、Netty框架本身存在粘包半包问题?

8、什么时候需要考虑粘包与半包问题?

三、WebSocket 协议开发相关问题

1、讲讲如何实现 WebSocket 长连接?

2、讲讲WebSocket 帧结构的理解?

3、浏览器、服务器对 WebSocket 的支持情况

4、如何使用 WebSocket 接收和发送广本信息?

5、如何使用 WebSocket 接收和发送二进制信息?

四、Netty源码分析相关问题

1、服务端如何进行初始化?

2、何时接受客户端请求?

3、何时注册接受 Socket 并注册到对应的 EventLoop 管理的 Selector ?

4、客户端如何进行初始化?

5、何时创建的 DefaultChannelPipeline ?

6、讲讲Netty的零拷贝?

五、如何正确系统的学习Netty框架

要理解框架的底层的原理,要掌握的就是最常用的原理。框架就是辅助我们开发的已经完成的一部分代码,帮助我们实现了一部分的功能,我们主要掌握的其实就是框架的内部原理,也就是框架给我们规定的一些内部的规定,有了这些规定就可以高效的开发我们的代码,按照规定办事效率会有很大的提高。其实很多的时候我们并没有注意这些东西,一个功能可以用很多的方法来实现,但是我们按照框架给我们规定的规则去实现的话应该是我们比较正确的一种选择。因此分享一份系统学习Netty框架的知识思维导图给有需要的朋友,希望能对你们有所帮助!

阿里的Netty面试题到底有多难?

最后,一套基于Netty的RPC架构实战演练资料,送给大家。


最近热文阅读:

1、

2、

3、

4、

5、

6、

7、

以上是关于阿里的Netty面试题到底有多难?的主要内容,如果未能解决你的问题,请参考以下文章

面试题你了解多少?阿里的Netty到底又有多牛逼?

字节的面试题到底有多难?大厂为何都注重算法?我们该如何应对?

字节跳动+阿里+华为+腾讯等大厂Java面试题,层层深入

「Java岗」阿里150道面试题:JVM+并发+SpringBoot+Netty+Redis等

经过阿里四面而形成的10万字java面试题及答案文档到底有多牛?

Python面试经验Python找工作有多难?这100道Python笔试面试题赶紧收藏