为什么java对象不能直接保存到磁盘上 一定要序列化,因为对象在内存中也是二进制的,难道一定要序列化吗?

请了解底层的java大神说说 ,还有在网络传输的时候,我觉得直接传输也可以的啊,理由就是对象在内存也是以二进制的形式存在的,

Java对象在内存中确实也是二进制的,但是直接将Java对象保存到磁盘上并不是一个可行的方法。这是因为在将对象保存到磁盘上的过程中,需要将对象的内存结构转换为一系列的二进制数据,并且需要考虑不同操作系统、不同JVM实现和不同版本之间的兼容性问题。这种方式非常复杂,且不具备跨平台和可移植性。
温馨提示:内容为网友见解,仅供参考
第1个回答  2013-05-28
其实序列化就是有格式的二进制数据啊。
对象的数据是要有意义的,有格式的,比例对象里面有属性,属性有类型。这个不是简单的二进制数据能表示的。需要加上格式。追问

那你的意思 就是说 如果不进行序列化,也就是不是有格式的二进制数据,那进行传输的话, (也就是网络传输),到那边 就无法 进行还原 还是怎么一回事. 我对底层不是很懂

追答

这就像协议一样,我做一个规定,然后大家都了解这个规定,都按规定办事儿。
如果没有这个规定,我给你一堆二进制数据,你怎么知道是什么意思

本回答被提问者和网友采纳
第2个回答  2013-05-28

...一定要序列化,因为对象在内存中也是二进制的,难道一定要序列化吗...
Java对象在内存中确实也是二进制的,但是直接将Java对象保存到磁盘上并不是一个可行的方法。这是因为在将对象保存到磁盘上的过程中,需要将对象的内存结构转换为一系列的二进制数据,并且需要考虑不同操作系统、不同JVM实现和不同版本之间的兼容性问题。这种方式非常复杂,且不具备跨平台和可移植性。

为什么java要实现对象序列化
对象的序列化就是为了数据传输,在你的代码的里是对象格式,而在传输的时候不可能还保持这对象的样子。当两个进程在进行远程通信时,彼此可以发送各种类型的数据。无论是何种类型的数据,都会以二进制序列的形式在网络上传送。发送方需要把这个Java对象转换为字节序列,才能在网络上传送;接收方则需要把字...

浅谈java中为什么实体类需要实现序列化
web服务器通常将那些暂时不活动但未超时的HttpSession对象转移到文件系统或数据库中保存,服务器要使用他们时再将他们从文件系统或数据库中装载入内存,这种技术称为Session的持久化。将HttpSession对象保存到文件系统或数据库中,需要采用序列化的方式将HttpSession对象中的每个属性对象保存到文件系统或数据库...

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

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

什么是java的序列化?jdk如何实现java序列化
当我们明晰了为什么需要Java序列化和反序列化后,我们很自然地会想Java序列化的好处。其好处一是实现了数据的持久化,通过序列化可以把数据永久地保存到硬盘上(通常存放在文件里),二是,利用序列化实现远程通信,即在网络上传送对象的字节序列。3.如何实现Java序列化与反序列化 1)JDK类库中序列化API...

java对象的序列化是什么意思
1、序列化是干什么的?简单说就是为了保存在内存中的各种对象的状态,并且可以把保存的对象状态再读出来。虽然你可以 用自己的各种方法来保存Object states,但是Java给你提供一种应该比你自己好的保存对象状态的机制、那就是序列化。2、什么情况下需要序列化?a)当你想把的内存中的对象保存到一个文件...

哪种做法不能防止序列化对单例的破坏
在Java等支持对象序列化的语言中,单例对象如果被序列化后再反序列化,可能会生成多个实例,从而破坏了单例模式的初衷。这是因为序列化操作会将对象的状态保存起来,而反序列化则会根据这些保存的状态信息重新创建一个新的对象实例。举个例子,假设我们有一个实现了`Serializable`接口的单例类。在某个...

浅谈Java对象的序列化和反序列化
把字节序列恢复为Java对象的过程称为对象的反序列化 对象的序列化主要有两种用途 ) 把对象的字节序列永久地保存到硬盘上 通常存放在一个文件中 ) 在网络上传送对象的字节序列 一 JDK类库中的序列化API java io ObjectOutputStream代表对象输出流 它的writeObject(Object obj)方法可对参数指定的obj对象...

什么是java序列化,如何实现java序列化?
在java中只要一个类实现了Serializable接口的类就被认为是序列化的类,这种类的对象就是序列化的对象 只有被序列化的数据才允许被存储到文件、数据库之中或者通过网络协议进行传输,没有被序列化的数据是不能存储到硬盘上,不能通过网络协议进行网络传输 ...

相似回答