gpt4 book ai didi

java - 序列化与字节码翻译

转载 作者:数据小太阳 更新时间:2023-10-29 02:22:06 25 4
gpt4 key购买 nike

我是编程初学者,我只是想知道序列化过程和字节码(中间语言)相互转换的过程是否有区别。

我在 javacodegeeks.com 上找到了这个:

Serialization is usually used When the need arises to send your data over network or stored in files. By data I mean objects and not text. Now the problem is your Network infrastructure and your Hard disk are hardware components that understand bits and bytes but not Java objects. Serialization is the translation of your Java object’s values/states to bytes to send it over network or save it. --> On other hand, Deserialization is conversion of byte code to corresponding java objects. <--

根据我对这段的理解,序列化可能是 java 将其程序转换为字节码以便能够传输到不同的计算机环境并仍然正常运行的过程。

我这样想对吗?

最佳答案

From my understanding of this paragraph, serialization may be the process by which java converts its programs to byte code for the ability to transport to different computer environments and still function correctly. Am I correct in thinking this?

不,使用 javac 编译会创建在 JVM 上运行的字节代码。 VM(例如 JVM)解释字节码并使用一些巧妙而复杂的即时编译(依赖于机器/平台)为您提供最终产品。看字节码就是一堆instructions JVM 解释的。每个字节码操作码的长度为一个字节,因此称为字节码。

另一方面,序列化将 Java 对象的状态转换为字节流。这些字节不是字节码之类的指令。 Java 序列化的主要目的是将一个对象写入流中,以便它可以通过网络传输,并且可以再次重建该对象。当涉及两个不同的参与方时,您需要一个协议(protocol)来再次重建完全相同的对象。 Java 序列化 API 正好为您提供了这一点。您可以利用序列化功能的其他方法是,您可以使用它来执行深层复制。

Now the problem is your Network infrastructure and your Hard disk are hardware components that understand bits and bytes but not Java objects. Serialization is the translation of your Java object’s values/states to bytes to send it over network or save it. --> On other hand, Deserialization is conversion of byte code to corresponding java objects.

看到你不能只是将 java 对象传递到网络的链路层并期望它能够发送。网络通过物理介质发送比特和字节。因此,可序列化允许您以标准方式将对象编码为二进制,通过网络传递它,然后在接收端将其解码回对象,使其处于对象在发送端所处的确切状态

关于java - 序列化与字节码翻译,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18025851/

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