首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

请解释为什么集合类没有实现Cloneable和Serializable接口?

01 克隆(cloning)或者是序列化(serialization)的语义和含义是跟具体的实现相关的。因此,应该由集合类的具体实现来决定如何被克隆或者是序列化。...实现Serializable序列化的作用:将对象的状态保存在存储媒体中以便可以在以后重写创建出完全相同的副本;按值将对象从一个从一个应用程序域发向另一个应用程序域。...实现 Serializable接口的作用就是可以把对象存到字节流,然后可以恢复。所以你想如果你的对象没有序列化,怎么才能进行网络传输呢?要网络传输就得转为字节流,所以在分布式应用中,你就得实现序列化。...如果你不需要分布式应用,那就没必要实现实现序列化。

1.1K10

为什么一般我们的实体类,要实现Serializable 接口

6 结论 7 怎样使某个属性不序列化 1 前提 参与序列化和反序列化的对象,必须实现 Serializable 接口。...2 Serializable接口起什么作用呢? 起到 标识 的作用,标志的作用,java虚拟机看到这个类实现了这个接口,可能会对这个类进行特殊待遇。...Serializable 不同的人编写了同一个类,但“这两个类确实不是同一个类”。...对于java虚拟机来说,java虚拟机是可以区分开这两个类的,因为这两个类都实现了Serializable接口,都有默认的序列化版本号,他们的序列化版本号不一样。所以区分开了。...6 结论 凡是一个类实现了Serializable接口,建议给该类提供一个固定不变的序列化版本号。 这样,以后这个类即使代码修改了,但是版本号不变,java虚拟机会认为是同一个类。

71220
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    NHibernate联合主键详细示例

    使用NHibernate实现一对多,多对一的关联很是简单,可如果要用复合主键实现确实让人有些淡淡的疼。虽然很淡疼但还是要去抹平这个坑,在下不才,愿意尝试。...二、关键步骤 注解如何实现复合主键 根据官方文档说明,联合主键最好是一个独立的类,需要重载Equals和GetHashCode方法,且标记为可序列化。...代码如下: [Serializable] public class BaseInfo { public virtual string Id { get; set; } public virtual...", TypeType = typeof(string))] public virtual BaseInfo BN { get; set; } 说明: 1.实现为引用BaseInfo类,而不是继承....,总结 类都必须可以序列化,也就是要还serializable标注 继承BaseInfo实现联合主键(不推荐使用) 在Save时,如果用session.merge方法组合缓存与修改对象,返回值的主键会为

    1.5K80

    Spring中国教育管理中心-Apache Cassandra 的 Spring 数据教程十二

    当您的 CQL 表具有复合主键时,您必须创建一个@PrimaryKeyClass来定义复合主键的结构。在这种情况下,“复合主键”是指一个或多个分区列可选地与一个或多个集群列组合。...主键类可以与存储库(作为Id类型)一起使用,并在单个复杂对象中表示实体的身份。以下示例显示了一个复合主键类: 示例 111....复合主键类 @PrimaryKeyClass class LoginEventKey implements Serializable { @PrimaryKeyColumn(name = "person_id...可用于单个和多个属性,以指示单个或复合(复合)主键。如果在实体内的属性上使用,请确保也应用@Id注释。 @PrimaryKeyClass: 应用于类级别,表示该类是复合主键类。...必须@PrimaryKey在实体类中引用。 @Transient: 默认情况下,所有私有字段都映射到行。此注释将应用它的字段排除在数据库中。

    1.8K40

    【愚公系列】2021年12月 二十三种设计模式(四)-原型模式(Prototype Pattern)

    示例 命名空间PrototypePattern包含细胞基类Cell,它的2个实现类分别为:PlantCell植物细胞类和Animal动物细胞类,另外包含CloneBase泛型基类。...= RandomUtil.RandomNum(); return cell; } } 植物细胞类PlantCell,细胞基类的具体实现类,标记Serializable特性以支持序列化的深克隆...[Serializable] public class AnimalCell : Cell { public AnimalCell(int id,...= RandomUtil.RandomNum(); return cell; } } 动物细胞类AnimalCell,细胞基类的具体实现类,标记Serializable特性以支持序列化的深克隆...缺点 1、每个类必须配备一个克隆方法或继承自CloneBase泛型类; 2、配备克隆方法需要对类的功能进行通盘考虑,这对于全新的类不是很难,但对于已有的类不一定很容易,特别当一个类引用不支持串行化的间接对象

    16920

    hibernate笔记(一)

    想做到上面2点,必须要有映射! 总结: Hibernate与ORM的关系? Hibernate是ORM的实现! 组件学习: 1. 源码,引入jar文件 2. 配置 3....数据库存储的数据都是有效的,必须保持唯一。 (为什么把id作为主键?) 因为表中通常找不到合适的列作为唯一列即主键,所以为了方法用id列,因为id是数据库系统维护可以保证唯一,所以就把这列作为主键!...联合/复合主键 如果找不到合适的列作为主键,出来用id列以外,我们一般用联合主键,即多列的值作为一个主键,从而确保记录的唯一性。 映射配置 类对象; 描述一个对象最终实现可以直接保存对象数据到数据库中。 --> 复合主键类 public class CompositeKeys implements Serializable{ private String userName; private String

    82120

    Hibernate入门这一篇就够了

    configuration.configure().addClass(User.class); ---- 映射配置文件 映射文件: 映射一个实体类对象; 描述一个对象最终实现可以直接保存对象数据到数据库中...)】 auto-import 默认为true, 在写hql的时候自动导入包名 如果指定为false, 再写hql的时候必须要写上类的全名; ---- class节点 class 映射某一个对象的(一般情况...: 单列主键 多列复合主键 单列主键就是上面那种,那么如果要使用多列复合主键就需要使用id>节点来配置了 现在我有这么下面的一个对象,我想使用username和password作为复合主键...--->CompositeKey….必须实现Serializable接口 package zhongfucheng.domain; /** * Created by ozc on 2017/5/6....这里写图片描述 因为Hibernate在取得的时候是需要实现Serializable这个接口的对象的…因此compositeKey必须实现Serializable接口 ?

    1.7K40
    领券