99问答网
所有问题
Java NIO和IO的区别
如题所述
举报该问题
推荐答案 2016-05-15
Java NIOåIOç主è¦åºå«å¦ä¸ï¼
1.NIO çå建ç®çæ¯ä¸ºäºè®© Java ç¨åºåå¯ä»¥å®ç°é«é I/O èæ éç¼åèªå®ä¹çæ¬æºä»£ç ãNIO å°æèæ¶ç I/O æä½(å³å¡«å åæåç¼å²åº)转移åæä½ç³»ç»ï¼å èå¯ä»¥æ大å°æé«é度ãä¼ ç»çIOæä½å±äºé»å¡åï¼ä¸¥éå½±åç¨åºçè¿è¡é度ã
2,ãæµä¸åçæ¯è¾ãåæ¥ç I/O åº(å¨ java.io.*ä¸) ä¸ NIO æéè¦çåºå«æ¯æ°æ®æå åä¼ è¾çæ¹å¼ãæ£å¦åé¢æå°çï¼åæ¥ç I/O 以æµçæ¹å¼å¤çæ°æ®ï¼è NIO 以åçæ¹å¼å¤çæ°æ®ã
é¢åæµ ç I/O ç³»ç»ä¸æ¬¡ä¸ä¸ªåèå°å¤çæ°æ®ãä¸ä¸ªè¾å ¥æµäº§çä¸ä¸ªåèçæ°æ®ï¼ä¸ä¸ªè¾åºæµæ¶è´¹ä¸ä¸ªåèçæ°æ®ã为æµå¼æ°æ®å建è¿æ»¤å¨é常容æãé¾æ¥å 个è¿æ»¤å¨ï¼ä»¥ä¾¿æ¯ä¸ªè¿æ»¤å¨åªè´è´£å个å¤æå¤çæºå¶çä¸é¨åï¼è¿æ ·ä¹æ¯ç¸å¯¹ç®åçãä¸å©çä¸é¢æ¯ï¼é¢åæµç I/O é常ç¸å½æ ¢ã
3.ä¸ä¸ª é¢åå ç I/O ç³»ç»ä»¥åçå½¢å¼å¤çæ°æ®ãæ¯ä¸ä¸ªæä½é½å¨ä¸æ¥ä¸äº§çæè æ¶è´¹ä¸ä¸ªæ°æ®åãæåå¤çæ°æ®æ¯æ(æµå¼ç)åèå¤çæ°æ®è¦å¿«å¾å¤ãä½æ¯é¢ååç I/O 缺å°ä¸äºé¢åæµç I/O æå ·æçä¼é æ§åç®åæ§ã
温馨提示:答案为网友推荐,仅供参考
当前网址:
http://99.wendadaohang.com/zd/7BteWeeejXXOejttOB.html
其他回答
第1个回答 2016-05-09
NIO是new IO,是IO的升级版。
传统的socket IO中,需要为每个连接创建一个线程,当并发的连接数量非常巨大时,线程所占用的栈内存和CPU线程切换的开销将非常巨大。
使用NIO,不再需要为每个线程创建单独的线程,可以用一个含有限数量线程的线程池,甚至一个线程来为任意数量的连接服务。
由于线程数量小于连接数量,所以每个线程进行IO操作时就不能阻塞,如果阻塞的话,有些连接就得不到处理,NIO提供了这种非阻塞的能力。
参考:csdn博客本回答被提问者采纳
第2个回答 2018-07-31
最简单粗暴的理解就是:
1. io 非异步, 阻塞
2. Nio 异步, 非阻塞
你把 "异步" 及 "阻塞" 弄清楚了, 你就是大牛了
本回答被网友采纳
相似回答
Java
NIO和IO的区别
答:
Java NIO和IO的主要区别如下:
1.NIO 的创建目的是为了让 Java 程序员可以实现高速 I/O 而无需编写自定义的本机代码
。NIO 将最耗时的 I/O 操作(即填充和提取缓冲区)转移回操作系统,因而可以极大地提高速度。传统的IO操作属于阻塞型,严重影响程序的运行速度。2,。流与块的比较。原来的 I/O 库(...
Java
中
IO与NIO的区别
和使用场景
答:
在连接数不多的情况下,传统IO编写容易方便使用。但是随着连接数的增多,问题传统IO就不行了
。因为前面说过,传统IO处理每个连接都要消耗一个线程,而程序的效率当线程数不多时是随着线程数的增加而增加,但是到一定的数量之后,是随着线程数的增加而减少。这里我们得出结论,传统阻塞式IO的瓶颈在于不能处...
Java
NIO与IO的区别
和比较
答:
这种服务方式跟传统的区别有两个:
1、增加了一个角色,要有一个专门负责收集客人需求的人。NIO里对应的就是Selector
。2、由阻塞服务方式改为非阻塞服务了,客人吃着的时候服务员不用一直侯在客人旁边了。传统的IO操作,比如read(),当没有数据可读的时候,线程一直阻塞被占用,直到数据到来。NIO中没有...
nio
bio a
io的区别
面试
答:
nio bio aio的区别如下:
BIO全称是Blocking IO,是JDK1.4之前的传统IO模型,本身是同步阻塞模式
。线程发起IO请求后,一直阻塞IO,直到缓冲区数据就绪后,再进入下一步操作。针对网络通信都是一请求一应答的方式,虽然简化了上层的应用开发,但在性能和可靠性方面存在着巨大瓶颈,试想一下如果每个请求都...
NIO
是什么?适用于何种场景?
答:
NIO和IO
有相同的作用和目的,但实现方式不同,NIO主要用到的是块,所以N
IO的
效率要比IO高很多。在
Java
API中提供了两套NIO,一套是针对标准输入输出NIO,另一套就是网络编程NIO。 NIO是为了弥补IO操作的不足而诞生的, NIO的特性包括:非阻塞I/O,选择器,缓冲以及管道 。 其中 管道(Channel)...
什么是
NIO
,
与
传统
IO区别
答:
区别:
1、增加了一个角色
,要有一个专门负责收集客人需求的人。NIO里对应的就是Selector。2、由阻塞服务方式改为非阻塞服务了,客人吃着的时候服务员不用一直侯在客人旁边了。传统的IO操作,比如read(),当没有数据可读的时候,线程一直阻塞被占用,直到数据到来。NIO中没有数据可读时,read()会立即...
java
传输文件流的接口文档是什么
答:
Java
IO和Java
NIO
。Java传输文件流的接口文档主要包含在Java IO和Java NIO(New I/O)包中。Java IO提供了传统的输入输出流的操作方式,包括FileInputStream、FileOutputStream等类,可以用于文件的读取和写入操作。Java NIO则提供了更为高效和灵活的非阻塞IO操作方式,包括FileChannel、ByteBuffer等类,...
什么是
NIO
异步通信?
答:
2.
NIO和
普通
IO的区别
传统的Socket通信方式如下: 1)接收连接; 2)读取请求消息,进行业务处理; 3)返回响应给客户...
io和nio的
文件读取方式的不同
答:
io,也称old io,读取文件主要通过流,从磁盘上一个一个字符的读,效率比较低下。
nio
,在对文件操作下改进了方式,通过块读取,一整块一整块的读取,所以读取出来的不会是一个字符,而是一个块,把这些数据放到内存缓冲区内。在进行操作。通过块的读取来提高速度。(块操作,fileChannel)内存映射,Mapped...
大家正在搜
Java简述抽象类和接口的区别
php和java的区别
Javascript和Java
java与c++的区别
c与java的区别
js与java的区别
java接口和抽象类区别
Java中IO流的增删改查
Java IO流处理 面试题汇总
相关问题
Java NIO与IO的区别和比较
Java NIO与IO的区别和比较
Java NIO与IO的区别和比较
Java.nio 和 Java.io有什么区别?
Java NIO与IO的区别和比较
Java NIO和IO的区别
Java里面标准IO和NIO有什么不同
Java里面标准IO和NIO有什么不同