千锋教育-做有情怀、有良心、有品质的职业教育机构

手机站
千锋教育

千锋学习站 | 随时随地免费学

千锋教育

扫一扫进入千锋手机站

领取全套视频
千锋教育

关注千锋学习站小程序
随时随地免费学习课程

当前位置:首页  >  技术干货  > javaio和nio的区别

javaio和nio的区别

来源:千锋教育
发布人:qyf
时间: 2022-08-17 17:15:00 1660727700

javaio和nio的区别

  1、Java IO和NIO之间第一个区别是,IO是面向流的,NIO是面向缓冲区的。

  Java IO面向流意味着每次都能从流中读取一个或多个字节。从流中读取多少字节完全取决于程序员。这些字节无法缓存到任何地方;也就是说,你不能从流中前后移动数据。如果你真的需要移动数据,你需要先在缓冲区缓存这些数据。

  Java NIO对Buffer的看法稍有不同。当数据被读取到buffer中时,buffer将在以后进行处理。如果您需要,您可以在buffer中移动数据;这使程序员在处理时更加灵活。但是,您必须检查buffer中是否包含您需要处理的所有数据。此外,您必须确保读取数据到达buffer时,您不能覆盖未处理的数据。

  阻塞与非阻塞IO

  2、Java IO中的各种流被堵塞,Java NIO是非阻塞模式保证线程要求从channel中读取数据。

  Java IO中的各种流被堵塞,也就是说,当调用read()方法和write()方法时,线程会被堵塞,直到数据被读取或完全写入。在此期间,处理流的线程将无法完成。

  Java NIO非阻塞模式保证线程要求从channel中读取数据,直到此时channel才能使用,或者如果此时没有数据可用,就什么也不做。而不是保存阻塞,直到数据可以读取,这里线程可以做其他事情。

  以上就是java io和nio的区别分析,主要体会在面向的对象、阻塞方面的不同,感兴趣的小伙伴也可以找一些实例进行练习。更多关于“Java培训”的问题,欢迎咨询千锋教育在线名师。千锋已有十余年的培训经验,课程大纲更科学更专业,有针对零基础的就业班,有针对想提升技术的好程序员班,高品质课程助力你实现java程序员梦想。

tags:
声明:本站稿件版权均属千锋教育所有,未经许可不得擅自转载。
10年以上业内强师集结,手把手带你蜕变精英
请您保持通讯畅通,专属学习老师24小时内将与您1V1沟通
免费领取
今日已有369人领取成功
刘同学 138****2860 刚刚成功领取
王同学 131****2015 刚刚成功领取
张同学 133****4652 刚刚成功领取
李同学 135****8607 刚刚成功领取
杨同学 132****5667 刚刚成功领取
岳同学 134****6652 刚刚成功领取
梁同学 157****2950 刚刚成功领取
刘同学 189****1015 刚刚成功领取
张同学 155****4678 刚刚成功领取
邹同学 139****2907 刚刚成功领取
董同学 138****2867 刚刚成功领取
周同学 136****3602 刚刚成功领取
相关推荐HOT