Java 什么是可序列化的?这是什么意思?

Java 什么是可序列化的?这是什么意思?,java,serialization,Java,Serialization,可能的重复项: 我在看JPA教程。我能够理解基本概念,但在他们添加的所有教程中,这是可以序列化的。这样做的目的是什么?这对我有什么帮助? 有什么建议吗?这意味着该类可以序列化。这意味着它可以转换为0和1的流,并发送到其他服务,如webservice或和ORM(hibernate)或其他任何服务。然后该服务知道如何存储流 此外,您的程序可以接收序列化类,并从0和1的流中为其创建实例 这是一种“保存”类实例并在任何其他时间“恢复”它们的方法 更多信息请访问 要使类可序列化,必须实现接口“

可能的重复项:

我在看JPA教程。我能够理解基本概念,但在他们添加的所有教程中,这是可以序列化的。这样做的目的是什么?这对我有什么帮助?
有什么建议吗?

这意味着该类可以序列化。这意味着它可以转换为0和1的流,并发送到其他服务,如webservice或和ORM(hibernate)或其他任何服务。然后该服务知道如何存储流

此外,您的程序可以接收序列化类,并从0和1的流中为其创建实例

这是一种“保存”类实例并在任何其他时间“恢复”它们的方法

更多信息请访问

要使类可序列化,必须实现接口“serializable”

  • 为什么会这样?因为当序列化类的时刻到来时,将调用函数
    writeobject
    将对象转换为字节。另一方面,当您有字节并且希望获取类的实例时,将调用函数
    readObject

  • 为什么不是自动的?一个变量值,它已经用字节表示。因为问题出现了,例如,当一个类包含其他类的实例时。你是做什么的?您还序列化了其他类吗?你只保留参考地址?这相当复杂,可能取决于您的项目类型和设计


可序列化类可以序列化-转换为字节,用于存储在硬盘上或通过网络传输。

@pokore感谢我的理解。这个@GeneratedValue(strategy=GenerationType.AUTO)是什么意思?是为了自动增加ID。@weed:-)这是一个完全不同的问题。为了进一步澄清,接口的要点是标记可以合理序列化的类。例如,序列化实时网络套接字没有意义,因此它没有标记为可序列化。@Code'n'weed。这是一个不同的问题,但无论如何我都会回答。有了这个注释,您就告诉您的JPA实体(特别是Hibernate),您让它自动生成id。例如,它在创建
Image.class
class的实例时非常有用。但在其他情况下,您可能希望自己生成id,例如在
User.class
中,id可以是用户名。@code'N'Weed,我向您推荐Christian Bauer和Gaving King的《Java持久化与Hibernate》。这被许多人认为是hibernate的圣经。@fridley谢谢你的解释。例如,字节是指XML文件吗?这要么是重复的,要么是重复的,如果不是hibernate/JPA特定的问题,就是重复的。在这两种情况下,都是重复:)我编辑了标签。删除了“jpa”和“hibernate”并添加了“序列化”。@pascal:对不起,我是个新手。我现在正在学习。我以后一定会避免的。@Code哦,别担心,没问题。只是答案已经存在,在这种情况下,实践是关闭问题(重复),以避免稀释信息。但是先做一点搜索是一个好主意:)@pascal感谢您的关注和正确答案。你们都帮助我们成长。谢谢
public class ExampleEntity implements Serializable
{
     @Id
     private long id;
     private int fieldInt;
     private long fieldLong;
     private String fieldString;
 }