java序列化在什么时候发生(求大神,java通常在什么情况下用到序列化)
大家好,今天小编来为大家解答java序列化在什么时候发生这个问题,求大神,java通常在什么情况下用到序列化很多人还不知道,现在让我们一起来看看吧!
Java中为什么要序列化什么时候用到序列化
序列化可以将内存中的类写入文件或数据库中。比如将某个类序列化后存为文件,下次读取时只需将文件中的数据反序列化就可以将原先的类还原到内存中。也可以将类序列化为流数据进行传输。总的来说就是将一个已经实例化的类转成文件存储,下次需要实例化的时候只要反序列化即可将类实例化到内存中并保留序列化时类中的所有变量和状态。
例如:hibernate中实体类的钝化就是将类序列化后存入磁盘并释放内存空间。
可序列化是什么意思
问题一:java中的序列化是什么意思序列化就是一种用来处理对象流的机制,所谓对象流也就是将对象的内容进行流化。可以对流化后的对象进行读写操作,也可将流化后的对象传输于网络之间。序列化是为了解决在对对象流进行读写操作时所引发的问题。
序列化的实现:将需要被序列化的类实现Serializable接口,该接口没有需要实现的方法,implements Serializable只是为了标注该对象是可被序列化的,然后使用一个输出流(如:FileOutputStream)来构造一个 ObjectOutputStream(对象流)对象,接着,使用ObjectOutputStream对象的writeObject(Object obj)方法就可以将参数为obj的对象写出(即保存其状态),要恢复的话则用输入流。
简单来说序列化就是把Java对象储存在某一地方(硬盘、网络),以便于传输
问题二:将数据序列化有什么作用啊?啊?序列化?应该是说一个数据结构,比如二叉树之类,序列化以后会变成一个char数组或者一个string字符串这样,方便你存到文件里面或者通过网络传输。然后要恢复的时候就是“反序列化”,把文件里读出来/从网络收到的char数组或者string恢复成一棵二叉树或者其他什么东西。
主要就是方便保存
问题三:什么是序列化序列化是将对象状态转换为可保持或传输的格式的过程。与序列化相对的是反序俯化,它将流转换为对象。这两个过程结合起来,可以轻松地存储和传输数据。
问题四:java中的序列化是什么意思序列化就是把Java对象储存在某一地方(硬盘、网络),以便于传输
列化的实现:将需要被序列化的类实现Serializable接口
问题五:java对象的序列化是什么意思 1、序列化是干什么的?
简单说就是为了保存在内存中的各种对象的状态,并且可以把保存的对象状态再读出来。虽然你可以用自己的各种方法来保存Object states,
但是Java给你提供一种应该比你自己好的保存对象状态的机制、那就是序列化。
2、什么情况下需要序列化?
a)当你想把的内存中的对象保存到一个文件或者数据库中时候。
b)当你想用套接字在网络上传送对象的时候
c)当你想通过RMI传输对象的时候(RMI->Remote Method Invocation远程方法调用)
3、当对一个对象实现序列化时,究竟发生了什么?
在没有序列化前,每个保存在堆(Heap)中的对象都有相应的状态(state),即实体变量(instance ariable)
例如:Foo myFoo=new Foo(); myFoo.setWidth(20); myFoo.setHeight(40);
问题六:Java中为什么要序列化?什么时候用到序列化?序列化可以将内存中的类写入文件或数据库中。比如将某个类序列化后存为文件,下次读取时只需将文件中的数据反序列化就可以将原先的类还原到内存中。也可以将类序列化为流数据进行传输。总的来说就是将一个已经实例化的类转成文件存储,下次需要实例化的时候只要反序列化即可将类实例化到内存中并保留序列化时类中的所有变量和状态。
例如:hibernate中实体类的钝化就是将类序列化后存入磁盘并释放内存空间。
问题七:什么是序列化什么 1.程序集(assembly)是一个或多个托管模块,以及一些资源文件的逻辑组合。 2.程序集是组件复用,以及实施安全策略和版本策略的最小单位。 3.程序集是包含一个或者多个类型定义文件和资源文件的***。在程序集包含的所有文件中,有一个文件用于保存清单。(清单是元数据部分中一组数据表的***,其中包含了程序集中一部分文件的名称,描述了程序集的版本,语言文化,发布者,共有导出类型,以及组成该程序集的所有文件)。作为一个单元进行版本控制和部署的一个或多个文件的***。程序集是.NET Framework应用程序的主要构造块。所有托管类型和资源都包含在某个程序集内,并被标记为只能在该程序集的内部访问,或者被标记为可以从其他程序集中的代码访问。程序集在安全方面也起着重要作用。代码访问安全系统使用程序集信息来确定为程序集中的代码授予的权限集。程序集是.NET Framework编程的基本组成部分。
问题八:在JAVA中什么叫序列化和反序列化 30分序列化是将对象状态转换为可保持或传输的格式的过程。与序列化相对的是反序列化,它将流转换为对象。这两个过程结合起来,可以轻松地存储和传输数据。
问题九:什么是对象序列化,为什么要使用对象序列化可以实现分布式对象。主要应用例如:RMI要利用对象序列化运行远程主机上的服务,就像在本地机上运行对象时一样。java对象序列化不仅保留一个对象的数据,而且递归保存对象引用的每个对象的数据。可以将整个对象层次写入字节流中,可以保存在文件中或在网络连接上传递。利用对象序列化可以进行对象的“深复制”,即复制对象本身及引用的对象本身。序列化一个对象可能得到整个对象序列。java序列化比较简单,通常不需要编写保存和恢复对象状态的定制代码。实现java.io.Serializable接口的类对象可以转换成字节流或从字节流恢复,不需要在类中增加任何代码。只有极少数情况下才需要定制代码保存或恢复对象状态。这里要注意:不是每个类都可序列化,有些类是不能序列化的,例如涉及线程的类与特定JVM有非常复杂的关系。
问题十:C#中的对象序列化是什么意思?序列化有什么好处?又有什么具体的应用??序列化就是把一个对象保存到一个文件或数据库字段中去,反序列化就是在适当的时候把这个文件再转化成原来的对象使用。
我想最主要的作用有:
1、在进程下次启动时读取上次保存的对象的信息
2、在不同的AppDomain或进程之间传递数据
3、在分布式应用系统中传递数据
求大神,java通常在什么情况下用到序列化
Serializable
1、序列化是干什么的?
简单说就是为了保存在内存中的各种对象的状态(也就是实例变量,不是方法),并且可以把保存的对象状态再读出来。虽然你可以用你自己的各种各样的方法来保存object states,但是Java给你提供一种应该比你自己好的保存对象状态的机制,那就是序列化。
2、什么情况下需要序列化
a)当你想把的内存中的对象状态保存到一个文件中或者数据库中时候;
b)当你想用套接字在网络上传送对象的时候;
c)当你想通过RMI传输对象的时候;
3、当对一个对象实现序列化时,究竟发生了什么?
在没有序列化前,每个保存在堆(Heap)中的对象都有相应的状态(state),即实例变量(instance ariable)比如:
java代码
1.FoomyFoo= new Foo();
2.myFoo.setWidth(37);
3.myFoo.setHeight(70);
当通过下面的代码序列化之后,MyFoo对象中的width和Height实例变量的值(37,70)都被保存到foo.ser文件中,这样以后又可以把它从文件中读出来,重新在堆中创建原来的对象。当然保存时候不仅仅是保存对象的实例变量的值,JVM还要保存一些小量信息,比如类的类型等以便恢复原来的对象。
java代码
1.FileOutputStream fs= new FileOutputStream("foo.ser");
2.ObjectOutputStream os= new ObjectOutputStream(fs);
3.os.writeObject(myFoo);
4、实现序列化(保存到一个文件)的步骤
1)Make a FileOutputStream//创建个Fileoutputsteam
FileOutputStream fs= new FileOutputStream("foo.ser");
2)Make a ObjectOutputStream//创建个objiectoutputstream
ObjectOutputStream os=new ObjectOutputStream(fs);
3)write the object//写入特定类的对象,用方法writeobjiect()
os.writeObject(myObject1);
os.writeObject(myObject2);
os.writeObject(myObject3);
4) close the ObjectOutputStream//关闭流。
os.close();
例子:
package test;
import java.io.*;
//要保存的对象类必须实现序列化接口serializable
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();
}
}
//发序列化方法
public static void seserialize(String filename) throws Exception{
//反序列化(读出保存的对象文件)
ObjectInputStream in= new ObjectInputStream(new FileInputStream(filename));
Box box=(Box)(in.readObject());
System.out.println(box.toString());
in.close();
}
}
文章到此结束,如果本次分享的java序列化在什么时候发生和求大神,java通常在什么情况下用到序列化的问题解决了您的问题,那么我们由衷的感到高兴!