java不能被序列化的类_为什么Java的基于价值的类不能被序列化?

由于版本8

Java具有

value-based classes的概念.这是为了准备未来的版本,这将很有可能允许

value types的定义.两个定义/描述都提到序列化(由我添加的粗体):

关于现有的基于价值的课程:

A program may produce unpredictable results if it attempts to distinguish two references to equal values of a value-based class, whether directly via reference equality or indirectly via an appeal to synchronization, identity hashing, serialization, or any other identity-sensitive mechanism.

关于未来价值类型:

The default identity-based hash code for object, available via System.identityHashCode, also does not apply to value types. Internal operations like serialization which make identity-based distinctions of objects would either not apply to values (as they do not apply to primitives) or else they would use the value-based distinction supplied by the value type’s hashCode method.

因为未来的JVM实现可能不会使用基于值的类的对象头和引用指针,所以有一些限制是明确的. (例如,不锁定JVM不能维护的身份,锁定的引用可以被删除并替换为另一个,这将释放锁定并且将导致死锁).

但是我不知道序列化如何发挥作用.为什么它被认为是“身份敏感机制”?为什么“使基于身份的对象区别”?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值