问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501
你好,欢迎来到懂视!登录注册
当前位置: 首页 - 正文

java 中的序列化是什么意思?有什么好处?

发布网友 发布时间:2022-02-28 14:20

我来回答

3个回答

热心网友 时间:2022-02-28 15:50

1、序列化是干什么的?

简单说就是为了保存在内存中的各种对象的状态,并且可以把保存的对象状态再读出来。虽然你可以用你自己的各种各样的方法来保存Object States,但是Java给你提供一种应该比你自己好的保存对象状态的机制,那就是序列化。

2、什么情况下需要序列化

a)当你想把的内存中的对象保存到一个文件中或者数据库中时候;
b)当你想用套接字在网络上传送对象的时候;
c)当你想通过RMI传输对象的时候;

3、当对一个对象实现序列化时,究竟发生了什么?

在没有序列化前,每个保存在堆(Heap)中的对象都有相应的状态(state),即实例变量(instance ariable)比如:

Foo myFoo = new Foo();
myFoo .setWidth(37);
myFoo.setHeight(70);

当通过下面的代码序列化之后,MyFoo对象中的width和Height实例变量的值(37,70)都被保存到foo.ser文件中,这样以后又可以把它 从文件中读出来,重新在堆中创建原来的对象。当然保存时候不仅仅是保存对象的实例变量的值,JVM还要保存一些小量信息,比如类的类型等以便恢复原来的对 象。

FileOutputStream fs = new FileOutputStream("foo.ser");
ObjectOutputStream os = new ObjectOutputStream(fs);
os.writeObject(myFoo);

4、实现序列化(保存到一个文件)的步骤

a)Make a FileOutputStream
java 代码
FileOutputStream fs = new FileOutputStream("foo.ser");
b)Make a ObjectOutputStream

java 代码
ObjectOutputStream os = new ObjectOutputStream(fs);
c)write the object

java 代码
os.writeObject(myObject1);
os.writeObject(myObject2);
os.writeObject(myObject3);
d) close the ObjectOutputStream

java 代码
os.close();

5、举例说明

java 代码
import java.io.*;

public class Box implements Serializable
{
private int width;
private int height;

public void setWidth(int width){
this.width = width;
}
public void setHeight(int height){
this.height = height;
}

public static void main(String[] args){
Box myBox = new Box();
myBox.setWidth(50);
myBox.setHeight(30);

try{
FileOutputStream fs = new FileOutputStream("foo.ser");
ObjectOutputStream os = new ObjectOutputStream(fs);
os.writeObject(myBox);
os.close();
}catch(Exception ex){
ex.printStackTrace();
}
}

}

6、相关注意事项

a)当一个父类实现序列化,子类自动实现序列化,不需要显式实现Serializable接口;
b)当一个对象的实例变量引用其他对象,序列化该对象时也把引用对象进行序列化;
c)并非所有的对象都可以序列化,,至于为什么不可以,有很多原因了,比如:

1.安全方面的原因,比如一个对象拥有private,public等field,对于一个要传输的对象,比如写到文件,或者进行rmi传输 等等,在序列化进行传输的过程中,这个对象的private等域是不受保护的。
2. 资源分配方面的原因,比如socket,thread类,如果可以序列化,进行传输或者保存,也无法对他们进行重新的资源分 配,而且,也是没有必要这样实现。

热心网友 时间:2022-02-28 17:08

序列化就是把要在网络上传输的对象流化,以便于对象在网络上传输,每个可序列化的对象都有一个序列化ID是该对象的唯一标识。序列化跟同步好像没直接的关系吧

热心网友 时间:2022-02-28 18:42

序列化用于底层的数据传输吧,因为底层通信用的是二进制码,而不是对象,序列化是一个标志接口,告诉底层这个类的对象具有序列化的能力
在java中什么叫序列化和反序列化?

在Java中,序列化指的是将对象的状态信息转换为字节流的过程,这些字节流可以存储到文件或数据库中,或者通过网络传输到其他机器上。反序列化则是将字节流重新转换为对象的过程。简单来说,序列化使得对象可以跨平台、跨时间地持久保存或传输。详细解释 1. 序列化:当一个对象需要被存储到硬盘上,或者通...

java序列化的作用

序列化即是将一个对象的状态即各个属量保存起来,然后在适当的时候再获得。对象序列化可以实现分布式对象。主要应用例如:RMI要利用对象序列化运行远程主机上的服务,像在本地机上运行对象时一样。ja对象序列化不仅保留一个对象的数据,而且递归保存对象引用的每个对象的数据。可以将整个对象层次写入字节流中...

在java中什么叫序列化和反序列化?

序列化是指将对象的状态信息转换为可以存储或传输的形式的过程。在Java中,当一个对象实现了`Serializable`接口后,就表示这个对象可以被序列化。序列化的过程可以将对象的状态信息转换为字节流,这样可以将这些字节流写入文件、数据库或者通过网络传输到另一个运行着Java程序的机器上。序列化的主要目的是实...

java序列化有什么作用

序列化是这个过程的第一部分,作用是将数据分解成字节流,以便存储在文件中或在网络上传输。反序列化的作用是打开字节流并重构对象。对象序列化不仅要将基本数据类型转换成字节表示,有时还要恢复数据。恢复数据要求有恢复数据的对象实例。

什么是java的序列化

Java中的序列化是把Java对象转换为字节序列的过程,Java中的序列化机制能够将一个实例对象的状态信息写入到一个字节流中,使其可以通过socket进行传输、或者持久化到存储数据库或文件系统中,然后在需要的时候通过字节流中的信息来重构一个相同的对象。java的序列化方便传输而且速度快,还很安全,调用方反...

Java中为什么要序列化?什么时候用到序列化?

什么时候使用序列化:一:对象序列化可以实现分布式对象。主要应用例如:RMI要利用对象序列化运行远程主机上的服务,就像在本地机上运行对象时一样。二:java对象序列化不仅保留一个对象的数据,而且递归保存对象引用的每个对象的数据。可以将整个对象层次写入字节流中,可以保存在文件中或在网络连接上传递。

java 序列化是什么意思

Java序列化是指将一个Java对象转化为字节序列的过程,以便在网络上传输或者将其保存到磁盘上。序列化的过程中,对象的状态信息会被转化为字节流,保存在磁盘上或者通过网络传输到另一个地方,当需要的时候再反序列化为Java对象。通过序列化,我们可以方便地在分布式系统中传输对象的状态信息,或者将对象在...

什么是java的序列化和反序列化?

1、什么是序列化?为什么要序列化?Java 序列化就是指将对象转换为字节序列的过程,而反序列化则是只将字节序列转换成目标对象的过程。我们都知道,在进行浏览器访问的时候,我们看到的文本、图片、音频、视频等都是通过二进制序列进行传输的,那么如果我们需要将Java对象进行传输的时候,是不是也应该先将...

java中如何实现序列化,有什么意义

java 中实现序列化,只要实现Serializbale这个接口,那么这个类就能序列化了。序列化就是把对象转化为二进制编码,有两个作用1.用于网络传输。2.可以存储到硬盘中,用来保存。类对象都是在内存中的,当系统关闭后对象就没了,下次启动时重新生成对象,不能保存当时状态。有序列化,就有反序列化,反序列...

java中什么是序列化和反序列化?

序列化与反序列化,Java对象数据的桥梁 在Java的世界里,序列化和反序列化是两个关键概念,它们犹如数据的守护者,确保对象在存储和网络传输中的持久化与一致性。简单来说,序列化是将Java对象转化为字节序列,而反序列化则是将这些字节序列恢复为对象,以满足持久化和跨平台交互的需求。接口与实现的艺术...

声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。
E-MAIL:11247931@qq.com
喝白酒的女人性格怎样(喝白酒的女人有哪些气质) ...喜欢那晕晕的感觉,尤其是自己独饮的时候这正常吗? only 棉衣 行吗 灌云县春笋食品厂怎么样? 1962年灌云县高考地点 男子查精子是挂什么科 检查精液常规要多少钱 想结婚前进行一次精子质量检查,应该挂什么科室啊? 童话故事王国里大臣的有什么职位 KUGOU音乐把歌曲传送到手机里的时候怎么只有歌曲没有歌词啊??KUGOU的歌... java 中的序列化是什么意思 什么是序列化,在java中如何实现序列化? 在JAVA中什么叫序列化和反序列化 在JAVA中什么叫序列化和反序列化? Java简述 java中的序列化是什么意思 java序列化的优点和缺点是什么? java序列化有什么作用? 什么是java序列化,如何实现序列化 什么是Java中的序列化和反序列化? 什么是java的序列化?jdk如何实现java序列化 什么是java序列化 、什么是java序列化,如何实现java序列化?或者请解 释Serializable接口的作用。 什么是java序列化 csdn JAVA中,序列化是指的什么?有何用途? 什么是java的序列化和反序列化? 什么是Java序列化?如何实现序列化? java中的序列化是什么意思 面试题:什么是java的序列化 什么是java序列化,如何实现java序列化? 什么是java序列化,如何实现java序列化 在java中什么叫做类的序列化 什么是java的序列化,如何实现java序列化 JAVA你知道后端都要学习些什么吗? JAVA后端应该学什么技术? java开发需要学习什么? java开发都需要学什么 java后端需要学习哪些内容,现在学这个好找工作吗 Java后端,需要学习哪些内容 从事 Java 后端开发,都要学习哪些知识和技能? java后端开发需要掌握什么 从事Java后端开发,要学习哪些知识和技能 后端开发主要学什么? Java都有哪些内容,学完后能干什么,想往后端学习,都需要学习哪些 做JAVA开发需要学什么课程. java服务器后台开发需要学习哪些知识 JAVA后端开发需要掌握的技术? 后台开发,学完JAVA基础后,该学什么内容 苹果手机怎么修改点不进去 苹果7plus如何修改 苹果7plus怎么修改
  • 焦点

最新推荐

猜你喜欢

热门推荐