gpt4 book ai didi

Java 序列化 是否需要

转载 作者:行者123 更新时间:2023-12-02 04:59:54 26 4
gpt4 key购买 nike

根据序列化定义,它是将数据结构或对象状态转换为可以存储的格式(例如,在文件或内存缓冲区中,或通过网络连接链路传输)并稍后在同一格式中重建的过程。或其他计算机环境。

从定义来看,除了通过网络传输对象之外,一切都很清楚。序列化是java对象通过网络传输的唯一方法吗?

在 webapp 的上下文中,有许多 pojo 类没有实现可序列化接口(interface),但我们仍然从客户端访问这些类的对象。应用程序服务器或 JVM 是否处理这些类的序列化?

最佳答案

你的类实际上并不需要实现Serialized来通过网络传输它们,因为有很多不同形式的序列化,而java的内置序列化实际上并不是那么好。为什么 ?因为接收端必须也是一个java应用程序,并且它必须具有与您正在传输的类兼容的版本。

通过网络传输数据的更便携、更灵活的方式是marshal将它们转换为 XML/JSON,可以从任何系统使用,无论是 java、c++、python 还是其他任何系统(正如您可能已经猜到的那样 - 对象不需要实现 Serialized以便从 XML、Json 等编码(取消编码)。

还有许多其他序列化框架比 java 的内置序列化机制更好地完成此任务。一个例子是:Google 的 Protobuff、Apache Thrift、Avro、Kryo 等等。

In context of webapp there are many pojo classes which does not implement serializable interface but still we access objects of those classes from client. Does app servers or JVM handles serialization for these classes?

不,这是由应用程序或您正在使用的框架处理的。例如,Jax-RS 实现将使用像 Jakson 这样的库在后台将对象编码到 Xml/Json 或从 Xml/Json 编码对象。

关于Java 序列化 是否需要,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28385130/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com