4.28学习总结

NIO


NIO是一种同步非阻塞的I/O模型, NIO提供了与传统BIO模型中的 Socket 和 ServerSocket 相对应的 SocketChannel 和 ServerSocketChannel 两种不同的套接字通道实现,两种通道都支持阻塞和非阻塞两种模式。阻塞模式使用就像传统中的支持一样,比较简单,但是性能和可靠性都不好;非阻塞模式正好与之相反。对于低负载、低并发的应用程序,可以使用同步阻塞I/O来提升开发速率和更好的维护性;对于高负载、高并发的(网络)应用,应使用 NIO 的非阻塞模式来开发。

IO流是阻塞的,NIO流是不阻塞的。

IO 面向流(Stream oriented),而 NIO 面向缓冲区(Buffer oriented)。

NIO有三大核心部分:Channel(通道),Buffer(缓冲区), Selector(选择器)

  • Buffer(缓冲区)
  •         缓冲区本质上是一块可以写入数据,然后可以从中读取数据的内存。这块内存被包装成NIO Buffer对象,并提供了一组方法,用来方便的访问该块内存。相比较直接对数组的操作,Buffer APl更加容易操作和管理。
  • Channel(通道)
  •         Java NIO的通道类似流,但又有些不同:既可以从通道中读取数据,又可以写数据到通道。但流的(input或output)读写通常是单向的。通道可以非阻塞读取和写入通道,通道可以支持读取或写入缓冲区,也支持异步地读写。
  • Selector(选择器)
  •         Selector是一个ava NIO组件,可以能够检查一个或多个NIO通道,并确定哪些通道已经准备好进行读取或写入。这样,一个单独的线程可以管理多个channel,从而管理多个网络连接,提高效率

 

  • 每个channel都会对应一个 Buffer
  • 一个线程对应Selector ,一个Selector对应多个channel(连接)程序
  • 切换到哪个channel是由事件决定的
  • Selector 会根据不同的事件,在各个通道上切换
  • Buffer 就是一个内存块,底层是一个数组
  • 数据的读取写入是通过 Buffer完成的,BlO中要么是输入流,或者是输出流,不能双向,但是NIO的Buffer是可以读也可以写。
  • Java NIO系统的核心在于:通道(Channel)和缓冲区(Buffer)。通道表示打开到lO设备(例如:文件、套接字)的连接。若需要使用NIO系统,需要获取用于连接IO设备的通道以及用于容纳数据的缓冲区。然后操作缓冲区,对数据进行处理。简而言之,Channel负责传输,Buffer负责存取数据

scene builder组件

  • MenuBar:菜单条组件,挂靠各种菜单类组件的。
  • CheckMenuItem:勾选菜单项控件,前面有个小勾可以勾选使用。
  • ContextMenu:右键菜单控件,通过鼠标右键触发。
  • CustomMenuItem:复选框菜单项控件。
  • Menu:普通菜单控件,菜单下可以放置各种菜单项控件。
  • MenuItem:常用普通的菜单项控件。
  • RadioMenuItem:单选菜单项控件,需要将其放置到一个组中。
  • SeparatorMenuItem:分隔条菜单项控件,用于分隔不同的菜单项。

最普通常用的菜单,即菜单条上的就是这种菜单组件。

ContextMenu

右键菜单,需要通过鼠标右键进行触发,该菜单一般挂靠在别的组件下的。

最普通常用的菜单项控件,通过点击事件进行触发和按钮的触发一样。

CheckMenuItem

多选菜单项,但选中该菜单项后,前面会出现一个小勾,并且在下次打开的时候该勾仍然是被勾选上的,而且可以多选。

CustomMenuItem

复选框菜单项控件,即菜单项前面有个复选框,可以进行勾选。

RadioMenuItem

单选菜单项控件,可以在一组单选菜单项中只选中一个,需要设置Toggle Group属性的值,如果不进行设置,那么可以多选。

SeparatorMenuItem

分隔条菜单控件,即是用于分隔不同的菜单项,只能用于菜单项之间进行分隔。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值