字节码与字节流(序列化)

pra*_*mna 5 java serialization

我有一个关于字节码和序列化的问题。

字节码 - 每个 java 类都被转换为字节码进行编译,并作为字节/字节码流存储在内存(磁盘)上。

序列化 - 序列化是将对象的状态保存为字节序列的过程。

这个字节码本身不能用于通过网络发送吗?

那么两者之间的确切区别是什么?

提前致谢。

Ale*_*nov 4

这些概念完全不相关。

每个java类都会转换为字节码进行编译

不,它不会被转换编译。字节码是编译的结果。它是由虚拟机(Java 中的 JVM)运行的代码,就像机器代码直接由 CPU 运行一样。它是二进制的(字节序列而不是字符)只是因为它是一种更紧凑的表示形式。它不包含任何对象的状态(常量除外)。

序列化存储对象的状态(默认 Java 序列化是二进制的,但其他库/语言可以使用文本)。序列化对象不包含字节码:您无法运行它或在 JVM 中运行。