【说站】java io和nio的区别
2024-12-07
24
java io和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基础
本教程操作环境:windows7系统、java10版,DELL G3电脑。
更新于:11天前赞一波!3
相关文章
- 【说站】java守护线程的注意事项
- 【说站】Java用户线程是什么
- 【说站】Java Executors中的四种线程池
- 【说站】java sleep()和wait()的区别
- 【说站】Java runnable和callable的异同
- 【说站】java进程和线程的关系
- 【说站】Java守护线程和用户线程的区别
- 【说站】python TCP和UDP协议的区别分析
- 【说站】java枚举类型的原理
- 【说站】java静态方法和非静态方法的介绍
- 【说站】java单例模式中的Holder是什么
- 【说站】java单例中饿汉模式的使用
- 【说站】Java反序列化如何理解
- 【说站】java懒汉和饿汉模式的区别
- 【说站】Java序列化是什么
- 【说站】java单例中的饱汉模式实现
- 【说站】java中&和&&有什么区别
- 【说站】java如何在表格添加水印
- 【说站】java如何重写findClass方法
- 【说站】java类加载器的常用方法
文章评论
评论问答