java - 在 Java 序列化中,为什么 J 表示 long 而 L 表示对象?

标签 java oop serialization

当您在 Java 中序列化一个对象时,字母 J 用于表示下一个字节代表一个 long,字母 L 用于表示一个 Object 是接下来,但为什么呢?为什么不将 O 用于 Object 而将 L 用于 long

最佳答案

这些字母肯定是因为冲突而被选择的。对这种冲突的猜测:

  • C 被取为 char。因此,他们使用 L 表示 class

  • L 被选为类(class)。因此,他们使用 J 表示 long

  • B 被取为 byte。因此,他们使用 Z 作为 boolean 值

顺便说一句,'L' 并不意味着'Object',而是'fully-qualified-class'。

关于java - 在 Java 序列化中,为什么 J 表示 long 而 L 表示对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14882998/

相关文章:

c# - 将没有成员名称的 JSON 数组反序列化为 C# 对象

java - 如何使用java模式提取两个字符串之间的字符串

java - 我们应该@Override 接口(interface)的方法实现吗?

serialization - 无法在 F# Chiron 中序列化受歧视的联盟

C++ sizeof 返回数组的错误值

Python 将函数传递给对象

c# - XML 序列化 - 禁用呈现数组的根元素

java - 从 int 缩小到短整型

java - 在 kotlin 中将 String 转换为 JsonObject 返回 null

java - Pattern.matches 不起作用,而 replaceAll 起作用