缓冲流\转换流
- 1.缓冲区默认8kb
- 2.缓冲流和普通的流用数组,的效率还是不一样的,方式有区别。
- 3.字符流底层也是字节流,字符流内本身会有缓冲数组。
- 4.`File`类是用来操作文件的类,但它不能操作文件中的数据。
- 5.BufferReader--readline不会返回结尾的回车换行符号。
- 6.文件中null不是默认值null,是字符串“null”。
- 7.字符串切割.split()里面“.”是正则表达式的任意值,所以要用转义字符。.split("\\.");
- 8.操作系统默认式GBK,idea默认是UTF-8.
- 9.可能解码成别的字吗?
- 10.字符流为什么要刷新,因为内部要把字符转为字节数组。
- 11.字符之间是怎么转换的???
- 12.文件编码转换的原理???
- 13.要想序列化必须实现serializable接口
- 14.可以自己定义标记类,什么是标记类???
- 15.序列化作用:
- 16.读序列化对象文件时,会抛出两个异常:io和类文件找不到对象异常。
- 17.transient关键字修饰的变量,不能被序列化。
- 18.序列化多个对象,就先把对象放集合里,再写序列化。
- 19.控制台地址是啥???
- 20.装饰者设计模式
- 21.面试加强视频。
- 22.动态代理是什么???
- 23.怎么导入jar包:
- 24.Integer.parseInt和Integer.valueof的区别?
- 25.转换流,底层是字节流构造的对象。
- 26.IO流读到末尾时,返回什么
- 27.为什么设计者模式,必须继承父类或者实现同一个接口呢???
- 28.**IOUtils**,会自动close吗?
- 29.FileUtils,即使没有目标文件,也会自动多级创建。
1.缓冲区默认8kb
一次写入的数据大小大于8kb的话,会怎么样
缓冲区满了,会自动把缓冲区的数据刷新到文件中
2.缓冲流和普通的流用数组,的效率还是不一样的,方式有区别。
3.字符流底层也是字节流,字符流内本身会有缓冲数组。
字符流用数组,有时候比缓冲流效率高。
可见字符缓冲流效率上并没有明显提高,我们更多的是要使用它的readLine()
和newLine()
方法。
4.File
类是用来操作文件的类,但它不能操作文件中的数据。
File
类实现了Serializable
、 Comparable<File>
,说明它是支持序列化和排序的。
5.BufferReader–readline不会返回结尾的回车换行符号。
6.文件中null不是默认值null,是字符串“null”。
7.字符串切割.split()里面“.”是正则表达式的任意值,所以要用转义字符。.split("\.");
8.操作系统默认式GBK,idea默认是UTF-8.
9.可能解码成别的字吗?
utf-8一个字符的字节是可变的,有前缀,是0、110、1110、开头的,字节如果是这些开头的就有可能会被解析成字符,否则就是?
10.字符流为什么要刷新,因为内部要把字符转为字节数组。
11.字符之间是怎么转换的???
12.文件编码转换的原理???
13.要想序列化必须实现serializable接口
1)serializable接口是一个标记型接口
2)每次修改类都会被重新分配一个序列号。
3)可以手动添加一个序列号,序列化必须是long类型的静态常量。
14.可以自己定义标记类,什么是标记类???
15.序列化作用:
- 提供一种简单又可扩展的对象保存恢复机制。
- 对于远程调用,能方便对对象进行编码和解码,就像实现对象直接传输(网络编程的时候用,客户端和服务端之间传递对象)。
- 可以将对象持久化到介质中,就像实现对象直接存储(nosql数据库可以直接存储对象)。
- 允许对象自定义外部存储的格式。
16.读序列化对象文件时,会抛出两个异常:io和类文件找不到对象异常。
17.transient关键字修饰的变量,不能被序列化。
transient瞬态关键字_阻止成员变量序列化 ,只能修饰成员便量。
18.序列化多个对象,就先把对象放集合里,再写序列化。
读序列化也是遍历集合。
19.控制台地址是啥???
20.装饰者设计模式
如果被修饰的类,有很多方法,那么得写很多方法,感觉没有专注到业务开发上面来。
装饰模式可以在不改变原类的基础上对类中的方法进行扩展增强,实现原则为:
- 装饰类和被装饰类必须实现相同的接口
- 在装饰类中:必须在-构造方法-中传入被装饰类的引用
- 在装饰类中对需要扩展的方法进行扩展
- 在装饰类中对不需要扩展的方法调用被装饰类中的同名方法
–节点流:直接操作数据读写的流类,比如FileInputStream
–处理流:对一个已存在的流的链接和封装,通过对数据进行处理为程序提供功能强大、灵活的读写功能,例如BufferedInputStream(缓冲字节流)
处理流和节点流应用了Java的装饰者设计模式。
21.面试加强视频。
22.动态代理是什么???
23.怎么导入jar包:
放到模块子目录中lib放jar包,右键添加 as to library,改成model
24.Integer.parseInt和Integer.valueof的区别?
parselnt(“111”)
valueof (111)
25.转换流,底层是字节流构造的对象。
26.IO流读到末尾时,返回什么
- readObject(序列化流): EOFException 当输入过程中意外到达文 件或流的末尾时,抛出此异常。
- read: 方法读取到文件末尾返回-1
- readLine(字符缓冲流): 读取到文件末尾返回null
27.为什么设计者模式,必须继承父类或者实现同一个接口呢???
28.IOUtils,会自动close吗?
会。