📄 right4_8_3.htm
字号:
<html><head><title>JAVA编程语言</title><meta http-equiv="Content-Type" content="text/html; charset=gb2312"><link rel="stylesheet" href="../../../css/text.css" type="text/css"></head><body bgcolor="#FFFFFF" text="#000000" leftmargin="0" topmargin="0" marginwidth="0" marginheight="0" ><table width="100%" border="0" cellpadding="0" cellspacing="0" bgcolor="#FFFFFF"> <tr> <td valign="top"> <table width="92%" border="0" cellspacing="0" cellpadding="0" align="center" bgcolor="#FFFFFF"> <tr> <td valign="top"> <p class="pt9-black"> <span class="zhongdian">1.串行化能保存的元素<a name="01"></a></span><br> <br> 只能保存对象的非静态成员变量,不能保存任何的成员方法和静态的成员变量,而且串行化保存的只是变量的值,对于变量的任何修饰符,都不能保存。<br> <br> <span class="zhongdian">2.transient关键字<a name="02"></a></span><br> <br> 对于某些类型的对象,其状态是瞬时的,这样的对象是无法保存其状态的,例如一个Thread对象,或一个FileInputStream对象,对于这些字段,我们必须用transient关键字标明<br> <br> <span class="zhongdian">3. 定制串行化<a name="03"></a></span><br> <br> 缺省的串行化机制,对象串行化首先写入类数据和类字段的信息,然后按照名称的上升排列顺序写入其数值。如果想自己明确地控制这些数值的写入顺序和写入种类,必须定义自己的读取数据流的方式。就是在类的定义中重写writeObject()和readObject()方法。<br> <br> 例如可在4.8.2的例子中,加入重写的writeObject()和readObject()方法,对Student 类定制其串行化。<br> <br> private void writeObject(ObjectOutputStream out)throws IOException<br> {<br> out.writeInt(id);<br> out.writeInt(age);<br> out.writeUTF(name);<br> out.writeUTF(department);<br> }<br> private void readObject(ObjectInputStream in)throws IOException<br> {<br> id=in.readInt();<br> age=in.readInt();<br> name=in.readUTF();<br> department=in.readUTF();<br> } </p> </td> </tr> </table> </td> </tr></table></body></html>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -