A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

1.        缓冲流为什么会提高IO流读写的效率?
因为缓冲流是在创建流对象时,会创建一个内置的默认大小的缓冲区数组,通过缓冲区读写,减少系统IO 次数,从而提高读写的效率。
2、我们在读写过程中,什么情况下会发生写入乱码问题?是怎样产生的?我们是如何解决的?
解析时与存储时的字符集不一致会导致乱码;不同的国家语言或需要的字节数不一样,强行解码会产生乱码;在解码时使用相对应的字符集。
3、序列化流中的serialVersionUID的作用
用于验证序列化的对象和对应类是否版本匹配。
4、请根据自己的语言表述IO流的体系
I/O流中总体分为:字节流:(输入流)InputStream,(输出流)OutputStream
                                         字符流:(输入流) Reader,(输出流)Writer
回复 使用道具 举报
1.内存中开辟缓存空间,读取速度快
2.解码和编码的用的编码表不同,转换流来进行编码转换
3.
4.字节流和字符流
回复 使用道具 举报
1.会开辟缓存空间
2.编码解码不一致
3.让类型一致
4.字节和字符
--李翔

回复 使用道具 举报
1、缓冲流为什么会提高IO流读写的效率?
      缓冲流的基本原理,是在创建流对象时,会创建一个内置的默认大小的缓冲区数组,通过缓冲区读写,减少系统IO
次数,从而提高读写的效率。

2、我们在读写过程中,什么情况下会发生写入乱码问题?是怎样产生的?我们是如何解决的?
             当写入或者读取的字符集与操作的字符集不一致时,会发生乱码问题.
             可以通过转换流来进行与其相对应的转换.
3、序列化流中的serialVersionUID的作用
      
4、请根据自己的语言表述IO流的体系

    IO流是字节数据操作系统文件的一个过程.可对文件进行读写操作,有缓冲流,转换流,序列化流及打印流

   田浪
回复 使用道具 举报
1、缓冲流为什么会提高IO流读写的效率?
缓冲流会在内存中创造一个缓冲区数组,直接进行内存与内存间的数据交流,减少系统i\o的次数;
2、我们在读写过程中,什么情况下会发生写入乱码问题?是怎样产生的?我们是如何解决的?
读的过程中解码的规则也就是编码表跟文件储存时的编码规则不一样就会出现乱码;使用转换流使解码跟编码用同一个编码表就可以解决
3、序列化流中的serialVersionUID的作用
.解决在序列化和反序列化过程中因为更改类中的内容导致的.class不同
4、请根据自己的语言表述IO流的体系
IO流是我们的工作内存和设备硬盘交互的通道,分为输出流和输入流,底层都是字符流;但是由于编码解码的关系需要有一套规则使结果符合我们预期,在字节的基础上增加了字符流用于储存不同国家地区的语言字符。根据使用的功能又分为缓冲流、转换流和序列化反序列化和打印流
回复 使用道具 举报
邹毅涛
1、缓冲流为什么会提高IO流读写的效率?
缓冲流底层为字节数组,在进行数据读取写出时,会先存入缓冲区里的数组,然后一次性写入,提高IO流读写的效率。

2、我们在读写过程中,什么情况下会发生写入乱码问题?是怎样产生的?我们是如何解决的?
乱码问题是读写编码与源文件编码不一致,所以出现乱码,可以通过转换流解决。
3、序列化流中的serialVersionUID的作用
当serialVersionUID值相同时,可以保证反序列化的类与序列化时的类一致。

4、请根据自己的语言表述IO流的体系
IO流 分为字节流和字符流按流向输入流和输出流
提高效率有缓冲流,转换编码有转换流,还有序列化流。
回复 使用道具 举报

1、缓冲流为什么会提高IO流读写的效率?
答:因为缓冲流原理是在内存开辟一个缓冲区,可以减少系统io次数,增大效率。

2、我们在读写过程中,什么情况下会发生写入乱码问题?是怎样产生的?我们是如何解决的?
答:乱码问题发生在编码与解码所用的码表不一样。我们可以使用统一的编码及
解码规则来解决乱码问题。

3、序列化流中的serialVersionUID的作用
答:用来验序列化后对象与类是否前后一致。

4、请根据自己的语言表述IO流的体系
答:IO流即以内存为基,根据流向分为输出流和输入流,根据数据的类型分为
字节流和字符流。以字符流、字节流的基础上还有缓冲流、转换流、打印流。


(黄嘉欣)
回复 使用道具 举报
1、缓冲流为什么会提高IO流读写的效率?
             缓冲流会在内存中创建缓冲区数组,通过缓冲区读写,减少读写的次数,提高效率

2、我们在读写过程中,什么情况下会发生写入乱码问题?是怎样产生的?我们是如何解决的?
             当读写的编码不一致的时候,会发生乱码,每个字符集的规则不一样,读写的规则不一样就会产生乱码
强制读写编码一致即可

3、序列化流中的serialVersionUID的作用
          serialVersionUID表示类的当前版本,每个实现Serializable接口的类都有,如果修改了类,那么UID的值也会改变,导致序列化或反序列化失败,所以最好自己设置一个。

4、请根据自己的语言表述IO流的体系
           IO流分为字节输出流、字节输入流,字符输出流、字符输入流
           OutputStream抽象类是表示输出字节流的所有类的超类  子类是FileOutputStream
           InputStream抽象类是表示字节输入流的所有类的超类 子类是FileInputStream

           Writer是写入字符流的抽象类
           Reader用于读取字符流的抽象类

           缓冲流分为字节缓冲流、字符缓冲流
           字节缓冲流BufferedInputStream是InputStream的子类,BufferedOutputStream是OutputStream子类
           字符缓冲流BufferedReader是reader的子类、BufferedWriter是write的子类
            转换流InputStreamReader,是Reader的子类
                      OutputStreamWriter ,是Writer的子类
             序列化ObjectOutputStream是Writer的子类
                      ObjectInputStream是Reader的子类
                       序列化必须实现Serializable 接口
            打印流PrintStream是OutputStream的子类
         
              





回复 使用道具 举报
陈建秋
1、缓冲流为什么会提高IO流读写的效率?
     因为缓冲流对象的创建会附带开辟一段内存空间,默认为8192k,每次在这段空间被数据填满时才去访问,io,而没有缓冲流的io流在读写时访问io的次数会非常的频繁,而且内存与内存中的数据访效率很高。
2、我们在读写过程中,什么情况下会发生写入乱码问题?是怎样产生的?我们是如何解决的?  1.字符是多个字节的如果用字节流读取乱码。
   2.还有一种是因为ide默认使用utf-8的编码,如果写入的时候,数据的编码方不为utf-8,那么不同的解码规则就会导致乱码,我们可以通过转换流指定编码格式让它与写入文件的编码相同就可以借据乱码。
3、序列化流中的serialVersionUID的作用
通过判断实体类的serialVersionUID来验证版本一致性的,在进行反序列化时,JVM会把传来的字节流中的serialVersionUID与本地相应实体类的serialVersionUID进行比较,如果相同就认为是一致的,可以进行反序列化,否则就会出现序列化版本不一致的异常。
4、请根据自己的语言表述IO流的体系
   io按照流向分为输入流和输出流:输出流从工作内存将数据写出硬盘,输入流从硬盘读读取数据到内存。
   io按读写单位可以分为字节流和字符流 :字节流一次读取一个字节,字符流一次读取一个字符可以解决不同编码格式,单字节无法表示字符的问题。
   缓冲流:可以提高数据的输出和输入的效率
   转换流 :可以解决不通过编码之间的乱码问题
   序列流 : 可以将对象序列化为二进制数据存储,实现持久化,或者将二进制数据重构对象
   打印流: 可以输出各种格式的数据,不需要进行转换,写的是什么打印的就是什么。


回复 使用道具 举报
1、缓冲流为什么会提高IO流读写的效率?
   缓冲流会在内存生成一个缓冲区,进行数据传输都是在内存中进行的话,减少了与硬盘的交流次数会大大加快运行的速度。所以会大大提高IO流读写效率。
2、我们在读写过程中,什么情况下会发生写入乱码问题?是怎样产生的?我们是如何解决的?
   编码和解码使用的编码表不一样,也就是加密和解密的规则不一样,一方无法识别另一方的内容就会产生乱码。我们通过转换流来解决不同的编码问题以及解码问题,通过转换流转换成我们可是别的编码方式。
3、序列化流中的serialVersionUID的作用
    用来验证我们所序列话的对象是时候在序列化后进行了改变。
4、请根据自己的语言表述IO流的体系
    IO流分为输出流和输入流,输出流又分为字节输出流和字符输出流,输入流也一样分为字节输入流和字符输入流。对应的都有缓冲流。缓冲流运行速度大大提升内。
回复 使用道具 举报
1、缓冲流为什么会提高IO流读写的效率?
因为在内存中操作
2、我们在读写过程中,什么情况下会发生写入乱码问题?是怎样产生的?我们是如何解决的?
编码不同                                    读和写的码表相同
3、序列化流中的serialVersionUID的作用
记录版本
4、请根据自己的语言表述IO流的体系
字节流===通过转换流实现==字符流
输入流输出流
序列化流/反序列化流

回复 使用道具 举报
1、缓冲流为什么会提高IO流读写的效率?
调用I\O操作的时候,实际上还是一个一个的读或者写,关键就在,CPU只有一个,不论是几个核心。CPU在系统调用时,会不会还要参与主要操作?参与多次就会花更多的时间。
系统调用时,若不用缓冲,CPU会酌情考虑使用 中断。此时CPU是主动地,每个周期中都要花去一部分去询问I\O设备是否读完数据,这段时间CPU不能做任何其他的事情(至少负责执行这段模块的核不能)。所以,调用一次读了一个字,通报一次,CPU腾出时间处理一次。
而设置缓冲,CPU通常会使用 DMA 方式去执行 I\O 操作。CPU 将这个工作交给DMA控制器来做,自己腾出时间做其他的事,当DMA完成工作时,DMA会主动告诉CPU“操作完成”。这时,CPU接管后续工作。在此,CPU 是被动的。DMA是专门 做 I\O 与 内存 数据交换的,不仅自身效率高,也节约了CPU时间,CPU在DMA开始和结束时做了一些设置罢了。
所以,调用一次,不必通报CPU,等缓冲区满了,DMA 会对C PU 说 “嘿,伙计!快过来看看,把他们都搬走吧”。
综上,设置缓冲,就建立了数据块,使得DMA执行更方便,CPU也有空闲,而不是呆呆地候着I\O数据读来。从微观角度来说,设置缓冲效率要高很多。尽管,不能从这个程序上看出来。
2、我们在读写过程中,什么情况下会发生写入乱码问题?是怎样产生的?我们是如何解决的?
.当我们的解码和编码的用的编码表不同的时候会发生乱码,我们用转换流来进行编码转换
3、序列化流中的serialVersionUID的作用
解决在序列化和反序列化过程中因为更改类中的内容导致的.class不同
4、请根据自己的语言表述IO流的体系
InputStream类:是所有字节输入流的父类前端css,是一个抽象类;
StringBufferInputStream类:是一种基本的介质流,网页重构报价用于从StringBuffer(字符数组)中读取数据;
ByteArrayInputStream类:是一种基本的介质流div+css前端,用于从Byte字节数组中度数数据;
FileInputStream类:最基本的文件输入流,div+css前端用于从文件中读取数据;
PipeInputStream类:该类在流中引入管道的概念css3切图,用于从其他线程共用的管道中读取数据;
SequenceInputStream 类:将2个或者多个InputStream 对象转变为一个InputStream.
注意:ObjectInputStream、所有FilterInputStream的子类都是装饰流.
DataInputStream 类:一般和DataOutputStream配对使用,手机div+css提供了大量的读取基本数据类型的方法.
BufferedInputStream 类:使用该对象阻止每次读取一个字节都会频繁操作IO.将字节读取一个缓存区css样式制作,从缓存区读取.
LineNumberInputStream 类:跟踪输入流中的行号.可以调用getLineNumber( )和 setLineNumber(int)方法得到和设置行号.
PushbackInputStream 类:可以在读取最后一个byte 后将其放回到缓存中.
回复 使用道具 举报
123
您需要登录后才可以回帖 登录 | 加入黑马