在Java中进行序列化和反序列化

作者: 云计算机网 分类: 云主机 发布时间: 2017-06-12 12:34

对象序列化的目标是将对象保存在磁盘中,或者允许在网络中直接传输对象。

对象序列化允许把内存中的Java对象转换成平台无关的二进制流,从而允许把这种二进制流持久保存在磁盘上或者通过网络将这种二进制流传输到另外一个网络节点。

其他程序一旦获得了这种二进制流,都可以将这种二进制流恢复成原本的Java对象。

序列化的含义和意义

序列化机制允许将实现序列化的Java对象转换成字节序列,这些字节序列可以进行持久化或者通过网络传输,使得对象可以脱离程序的运行而独立存在。

序列化将一个Java对象写入IO流中。对象的反序列化可以从IO流中恢复该Java对象。

如果想要让某个对象支持序列化机制,那么必须让它的类是可以序列化的。为了让某个类是可序列化的,那么该类必须实现如下两个接口之一:

Serializable Externalizable

使用对象流实现序列化

使用Serializable来实现序列化非常简单,主要让目标类实现该标记接口即可,无需实现任何方法。一旦某个类实现了Serializable接口,该类的对象就是可序列化的。

考虑下面这个例子:

首先展示用来序列化的Person类:

public class Person implements java.io.Serializable{
private String name;
private int age;
public Person(String name,int age){
this.name = name;
this.age = age;
}
public void talk(){
System.out.println("我是"+name+"我已经"+age+"岁了!");
}
}

接下里的代码展现了如何序列化和反序列化:

import java.io.*;

public class Serializable {
public static void main(String[] args){
try(
//创建一个ObjectOutputStream输出流
ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream("F:/test.txt"))
)
{
Person per = new Person("AmosH",20);
//将per对象写入输出流
oos.writeObject(per);
}catch (IOException ex){
ex.printStackTrace();
}

try(
ObjectInputStream ois = new ObjectInputStream(new FileInputStream("F:/test.txt"))
)
{
//反序列化per对象,如果知道对象的类型,可以直接采用强制类型转换成实际类型
Person per = (Person)ois.readObject();
//输出我是AmosH我已经20岁了!
per.talk();
}catch (Exception ex){
ex.printStackTrace();
}
}
}

需要注意的四点是:

    反序列化读取的仅仅是Java对象的数据,而不是Java类,因此采用反序列化回复Java对象时,必须提供该Java对象所属类的class文件,否则将会引起ClassNotFoundException异常。 当反序列化读取Java对象时,无需通过构造器来初始化对象。 如果使用序列化机制在文件中写入了多个Java对象,使用反序列化机制恢复对象时必须按实际写入的顺序读取。 当一个可序列化类有多个父类(包括直接父类和间接父类),这些父类要么包含无参数的构造器,要么也是可序列化的。否则反序列化时将会抛出InvalidClassException异常。如果父类是不可序列化的,只是带有无参数的构造器,则该父类中定义的成员变量值不会序列化到二进制流中。

  • 在中国,笔记本电脑已成为最受欢迎的PC产品之一,由于设计了不同的结构,其销售逐渐超越了传统的台式PC,笔记本电脑比台式电脑更易受攻击。因此,笔记本用户应该对笔记本电脑的维护有一定的了解,以下是爱站技术频道小编为您分享了笔记本各部分的维护方法,希望对笔记本用户有一定的参考价值。

    在中国,笔记本电脑已成为最受欢迎的PC产品之一,由于设计了不同的结构,其销售逐渐超越了传统的台式PC,笔记本电脑比台式电脑更易受攻击。因此,笔记本用户应该对笔记本电脑的维护有一定的了解,以下是爱站技术频道小编为您分享了笔记本各部分的维护方法,希望对笔记本用户有一定的参考价值。


    笔记本各配件保养知识大全

    液晶显示屏 (LCD Panel)

    ◎长时间不使用电脑时,可通过键盘上的功能键暂时将 LCD 屏幕的电源关闭。由于液晶显示器与传统显示器 (CRT) 在显示原理方面不同,所以笔记本电脑并不需要利用屏幕保护程序来防止屏幕的老化,相反这样会消耗更多的电力。
    ◎合上 LCD 屏幕的上盖时请勿过度用力,更不要放置任何异物在键盘和屏幕之间,以避免液晶屏因外界压力而导致组件损坏。
    ◎笔记本电脑在机身闭合状态下,LCD 屏后盖可承受的重物一般小于 1.5 千克 (约相当于 3 本厚杂志) 的重物或其它压力,不同设计结构的笔记本能够承受的重物可能会更小!
    ◎请勿用指甲及尖锐的物品 (如铅笔) 触碰屏幕表面以免刮伤。
    ◎液晶屏幕表面会因静电而吸附灰尘,请勿用手指拍除以免留下指纹。
    ◎建议使用液晶屏专用擦拭布再沾取少许清水来清洁你的屏幕,并请轻轻擦拭。请勿使用化学清洁剂 (包括酒精) 擦拭屏幕。

    电池 (Battery)

    ◎当没有外接电源的情况下,倘若当时之工作状况暂时用不到PCMCIA插槽中的插卡,建议先将插卡移去以延长电池使用时间。
    ◎室温(20-30度)为电池最适宜之工作温度,温度过高或过低的操作环境将降低电池的使用时间。
    ◎在可提供稳定电源的环境下使用笔记本电脑时,将电池移去可延长电池寿命是不正确的。就华硕笔记本电脑而言,当电池电力满充之后,电池中的充电电路会自动关闭,并不会发生过充的现象。
    ◎建议平均三个月进行一次电池电力校正的动作。

    键盘 (Keyboard)

    ◎在操作笔记本电脑时建议不要配带手表或手链打字,以避免在操作中对键盘及外壳造成磨损。
    ◎累积灰尘时,可用小毛刷来清洁缝隙,或是使用一般用于清洁照相机镜头的高压喷气罐,将灰尘吹出,或使用掌上型吸尘器来清洁键盘上的灰尘和碎屑。#p#分页标题#e#
    ◎清洁表面,可在软布上沾上少许中性清洁剂,在关机的情况下轻轻擦拭键盘表面。

    硬盘 (HardDisk)

    ◎尽量在平稳的状态下使用,避免在容易晃动的地方操作电脑。
    ◎开关机过程中是硬盘最脆弱的时候,此时硬盘轴承转速尚未稳定,若产生震动,则容易造成坏道。所以建议开关机后等待约十秒左右后再移动电脑。
    ◎平均每月执行一次磁盘碎片整理及扫描,以增进磁盘存取效率。

    光驱 (CD-ROM)

    ◎在读盘过程中尽量保持光驱处于平稳位置,以避免高速转动的盘片对光驱造成意外损伤。
    ◎请双手并用将光盘放入光驱中,一手托住CD托架另一手将CD盘确实固定,以避免CD托架变形。
    ◎在关机前取出光盘,以避免在移动过程中意外损伤光头。
    ◎使用专用光驱清洁盘,定期清洁激光头。

    触摸板 (Touchpad)

    ◎使用触摸板时请务必保持双手清洁及干燥,以免光标定位不准确。
    ◎不小心弄脏表面时,可将干布沾湿一角轻轻擦拭触摸板表面即可,请勿使用粗的布擦拭表面。
    ◎触摸板是感应式的精密电子组件,请勿使用尖锐物品 (如笔) 在触摸板表面书写,亦勿重压使用以免造成损坏。

    散热系统 (Thermal Dissipation)

    ◎一般而言,笔记本电脑制造厂商将通过风扇、散热导管、大型散热片、散热孔等方式来散发运行时所产生的高温。
    ◎为节省电力并避免噪音,一般来讲笔记本电脑的风扇并非是一直运转的,而是CPU达到一定温度时,风扇才会被启动。
    ◎勿将笔记本电脑放置在不平整的环境上,或是柔软的物品上,如:床上、沙发上、棉被上,这样有可能会堵住散热孔而影响散热效果进而降低运行效能,甚至死机、或其它不可预期之情况。

    其它硬件保养 (Others)

    清洁保养前请务必依照下列步骤保养您的笔记体电脑以及相关周边设备:
    ◎步骤一:关闭电源并移去外接电源线,拆除内置电池及所有的外接设置连接线。
    ◎步骤二:用小吸尘器将连接头、键盘缝隙等部位的灰尘吸除。
    ◎步骤三:用干布略为沾湿再轻轻擦拭机壳表面,请注意千万不要将任何清洁剂滴入机器内部,以避免电路短路烧毁。
    ◎步骤四:等待笔记本电脑完全干透才能开启电源。

    环保观念

    ◎电池中含有少量有害物质,请不要自行拆卸及维修。报废的电池请不要直接丢弃于垃圾堆中,须按照当地环保要求进行适当处理。
    ◎LCD屏夹层之中含有一定的液态物质,背光灯管亦含有少量水银,请不要自行拆卸及维修。粗暴使用及跌落都有可以导致LCD破裂,请不要接触到渗出的液体。报废的LCD屏请不要直接丢弃于垃圾堆中,须按照当地环保要求进行适当处理。
    ◎笔记本电脑的其它部件也请不要直接丢弃于垃圾堆中,须按照当地环保要求进行适当处。#p#分页标题#e#

    以上介绍的是笔记本各个配件的保养知识,在使用的时候也应该注意下环境,比如尽量不宜在湿度过低,灰尘过多等地方使用,最后一个就是温度问题,由于笔记本受体积限制,散热方面并不是很出色,尤其是炎热的夏天,因此在笔记本比较热的情况下我们尽量加强笔记本散热,您可以购买本本散热器或者放置在温度较低的空调房玩,不具备条件的可以减少开机时间来更好的保养笔记本,让笔记本具有更长的使用寿命。

    以上是笔记本各备件的维护知识。使用时,也要注意环境,更多内容请继续关注爱站技术频道其它相关文章!

  • 相关推荐:

  • 笔记本各部分的维护方法
  • FruityArmor攻击中使用了
  • Win10网上邻居在哪?Win
  • Wine计划在Android上运行
  • Win10与骁龙芯片结合将冲
  • 都在黑Windows10的16款生产
  • 微软:中国区《极限竞速
  • 中国同洲电子计划推出安
  • Surface之父:目前Surface
  • 售价23488元起,国行微软
  • 网站内容禁止违规转载,转载授权联系中国云计算网