11. 什么是比特(Bit),什么是字节(Byte),什么是字符(Char),它们长度是多少,各有什么区别
Bit最小的二进制单位 ,是计算机的操作部分取值0或者1
Byte是计算机中存储数据的单元,是一个8位的二进制数,(计算机内部,一个字节可表示一个英
文字母,两个字节可表示一个汉字。) 取值(-128-127)
Char是用户的可读写的最小单位,他只是抽象意义上的一个符号。如‘5’,‘中’,‘¥’ 等等等等。在
java里面由16位bit组成Char 取值 (0-65535)
Bit 是最小单位 计算机他只能认识0或者1
Byte是8个字节 是给计算机看的
字符 是看到的东西 一个字符=二个字节
12. 什么叫对象序列化,什么是反序列化,实现对象序列化需要做哪些工作 |
|
对象序列化,将对象以二进制的形式保存在硬盘上
反序列化;将二进制的文件转化为对象读取
实现serializable接口,不想让字段放在硬盘上就加transient
13. 在实现序列化接口是时候一般要生成一个serialVersionUID字段,它叫做什么,一般有什么用
如果用户没有自己声明一个serialVersionUID,接口会默认生成一个serialVersionUID
但是强烈建议用户自定义一个serialVersionUID,因为默认的serialVersinUID对于class的细节非常
敏感,反序列化时可能会导致InvalidClassException这个异常。
(比如说先进行序列化,然后在反序列化之前修改了类,那么就会报错。因为修改了类,对应的
SerialversionUID也变化了,而序列化和反序列化就是通过对比其SerialversionUID来进行的,一
旦SerialversionUID不匹配,反序列化就无法成功。
14. 怎么生成SerialversionUID |
|
可序列化类可以通过声明名为 "serialVersionUID" 的字段(该字段必须是静态 (static)、最终
(final) 的 long 型字段)显式声明其自己的 serialVersionUID
两种显示的生成方式(当你一个类实现了Serializable接口,如果没有显示的定义
serialVersionUID,Eclipse会提供这个提示功能告诉你去定义 。在Eclipse中点击类中warning的
图标一下,Eclipse就会自动给定两种生成的方式。
15. BufferedReader属于哪种流,它主要是用来做什么的,它里面有那些经典的方法
属于处理流中的缓冲流,可以将读取的内容存在内存里面,有readLine()方法
16. Java中流类的超类主要有那些? |
|
超类代表顶端的父类(都是抽象类)
java.io.InputStream
java.io.OutputStream
java.io.Reader
java.io.Writer
17. 为什么图片、视频、音乐、文件等 都是要字节流来读取 |
|
这个很基础,你看看你电脑文件的属性就好了,CPU规定了计算机存储文件都是按字节算的
18. IO的常用类和方法,以及如何使用 |
|
前面讲了那么多废话,现在我们开始进入主题,后面很长,从开始的文件操作到后面的网络IO操作都会
有例子: