赞
踩
又到一年金九银十之际。
Java作为目前用户最多,使用范围最广的软件开发技术之一。
Java的技术体系主要由支撑Java程序运行的虚拟机,提供各开发领域接口支持的Java,Java编程语言及许多第三方Jvav框架构成。
其中,以Java的虚拟器为今天的着重点
以下是我整理收藏的一些JVM大厂面试经典问题与相应答案,希望可以给看文的朋友一些帮助
由于篇幅过长,请耐心往下看,文末提供小编收藏已久的JVM面试宝典!
Selector 、 Channel 和 Buffer 的关系图:
缓冲区(Buffer):缓冲区本质上是一个可以读写数据的内存块,可以理解成是一个容器对象**(含数组)**,该对象提供了一组方法,可以更轻松地使用内存块,,缓冲区对象内置了一些机制,能够跟踪和记录缓冲区的状态变化情况。Channel 提供从文件、网络读取数据的渠道,但是读取或写入的数据都必须经由 Buffer。
NIO 的通道类似于流,但有些区别如下:
public interface Channel extends Closeable{}
Netty 的 IO 线程 NioEventLoop 聚合了 Selector(选择器,也叫多路复用器),可以同时并发处理成百上千个客
户端连接。
当线程从某客户端 Socket 通道进行读写数据时,若没有数据可用时,该线程可以进行其他任务。
线程通常将非阻塞 IO 的空闲时间用于在其他通道上执行 IO 操作,所以单独的线程可以管理多个输入和输出
通道。
由于读写操作都是非阻塞的,这就可以充分提升 IO 线程的运行效率,避免由于频繁 I/O 阻塞导致的线程挂
起。
一个 I/O 线程可以并发处理 N 个客户端连接和读写操作,这从根本上解决了传统同步阻塞 I/O 一连接一线程模型,架构的性能、弹性伸缩能力和可靠性都得到了极大的提升。
分享一些系统的面试题,大家可以拿去刷一刷,准备面试涨薪。
请点赞后,戳这里,免费获取!
这些面试题相对应的技术点:
大类就是:
[外链图片转存中…(img-MLofSmXa-1619271314943)]
[外链图片转存中…(img-faOIw9YS-1619271314944)]
[外链图片转存中…(img-3yEzJgUX-1619271314945)]
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。