`
dengminhui
  • 浏览: 169581 次
  • 来自: ...
社区版块
存档分类
最新评论

深层克隆的实现

 
阅读更多

深克隆的最简单方法:

 

public Object deepCopy(Object src) throws IOException, ClassNotFoundException{    
        ByteArrayOutputStream byteOut = new ByteArrayOutputStream();    
        ObjectOutputStream out = new ObjectOutputStream(byteOut);    
        out.writeObject(src);    
        
        ByteArrayInputStream byteIn = new ByteArrayInputStream(byteOut.toByteArray());    
        ObjectInputStream in =new ObjectInputStream(byteIn);    
        Object dest = (Object)in.readObject();    
        return dest;    
    }  

 方便又实用,哈哈。

今天有一个需要,将DO放入Memcache,需要计算每个DO的大小,也可以用类似方法实现(单位:KB)。

    public static double getLength(Object src) throws IOException, ClassNotFoundException {
        ByteArrayOutputStream byteOut = new ByteArrayOutputStream();
        ObjectOutputStream out = new ObjectOutputStream(byteOut);
        out.writeObject(src);
        return (double) (new ByteArrayInputStream(byteOut.toByteArray()).available()) / 1024;

    }
分享到:
评论

相关推荐

    JavaScript 深层克隆对象详解及实例

    深层克隆实现的示例代码如下: ```javascript function deepClone(original, target) { target = target || {}; for (var prop in original) { if (original.hasOwnProperty(prop)) { if (typeof original[prop]...

    rfdc真正快速的深层克隆JS库

    rfdc实现深层克隆的关键在于递归和哈希映射。当克隆一个对象时,它首先创建一个空的目标对象,然后遍历源对象的所有属性。对于每个属性,如果属性值是基本类型,就直接复制;如果属性值是引用类型,rfdc会检查是否...

    Java对象的复制克隆

    为了使对象可克隆,子类需要实现 `Cloneable` 接口,这是一个标记接口,不包含任何方法,只是告诉Java虚拟机(JVM)该对象支持克隆。同时,由于 `clone()` 是 `native` 方法,它的执行效率通常高于普通的Java方法。 ...

    js代码-手动实现浅克隆

    下面我们将深入探讨JavaScript中的浅克隆实现方法。 ### 浅克隆的基本概念 浅克隆创建了一个新对象,这个新对象拥有与原始对象相同的属性值。然而,如果属性值是一个对象或数组,那么它们在原始对象和克隆对象之间...

    假如我会克隆术作文.doc

    然而,这种设想也引出了对于克隆个体身份认同和管理的深层问题,暗示了克隆技术的运用并非没有争议和挑战。 紧接着,作者将视野转向了地球本身,探讨了克隆技术在环境保护和生态恢复中的潜力。通过克隆濒临灭绝的动...

    DeepCopy:创建对象的深层副本(克隆)-开源

    DeepCopy 可帮助您创建对象的深层副本(克隆)。 它旨在处理关联图中的循环。 您如何创建对象的深层副本(即也复制属性中引用的所有对象)? 您使用 __clone() 并自己实现该行为。 DeepCopy 递归遍历对象的所有属性...

    DeepCopy:创建对象的深层副本(克隆)

    深度复制DeepCopy可帮助您创建对象的深层副本(克隆)。 它旨在处理关联图中的循环。目录如何? 使用Composer安装: composer require myclabs/deep-copy 简单使用: use DeepCopy \ DeepCopy ;$ copier = new ...

    一个用于对象深度克隆的同构和可配置javascript函数

    在JavaScript中,简单的赋值操作或`Object.assign()`方法只能实现浅拷贝,即只复制对象的最外层属性,而深层嵌套的对象或数组引用不会被复制,它们在原始对象和副本之间共享。相比之下,深度克隆会递归地复制所有...

    卷积神经网络行为克隆方法在无人车上的研究.pdf

    Rausch V 等人则进一步研究了深层神经网络在无人驾驶控制中的应用,他们通过仿真对比不同优化器的效果,优化了卷积神经网络(CNN)的行为克隆方法。行为克隆是通过观察并模仿人类驾驶员的行为数据,让CNN学习驾驶...

    Java二进制序列化与克隆快速、高效、自动化.zip

    Kryo 还可以自动执行深层和浅层复制/克隆。这是从对象到对象的直接复制,而不是从对象到字节再到对象的复制。本文档适用于 Kryo 版本 5.x。请参阅4.x 版本的Wiki 。联系方式/邮件列表请使用Kryo 邮件列表来提问、...

    浅拷贝与深拷贝的JS实现及其原理探究

    通过示例代码展示了使用 Object.assign 方法实现浅拷贝,以及自定义递归函数 deepClone 来完成深层嵌套对象结构的深度复制。 适合人群:对于有 JavaScript 编程经验的人士非常有益,尤其是那些正在深入研究对象克隆...

    mongoose_clone:猫鼬中间件的克隆功能

    如果需要深层克隆,可能需要自定义选项。 3. **修改克隆对象**: 克隆后的对象可以安全地进行修改,这些修改不会反映到原始对象上。这在处理多并发操作或者需要保留原始数据不变的场景下非常有用。 4. **避免引用...

    克隆javascript对象的三个方法小结

    这种做法只复制了对象的第一层属性,如果对象内嵌有其他对象或数组,将不会进行深层克隆。 **方法二:利用构造函数和原型** 这种方法首先检查对象是否为`Object`类型,如果是,则创建一个新的构造函数实例,并将其`...

    DOM节点深度克隆函数cloneNode()用法实例

    本文实例讲述了DOM节点深度克隆函数cloneNode()用法。分享给大家供大家参考。 具体实现方法如下: 代码如下:<html> <head> [removed] function t(){  var nodeul = document.getElementsByTagName(...

    features_analysis:M. Aubry和B. Russell,“ ICCV,2015年”的“用计算机生成的图像了解深层特征”中描述的方法的实现

    了解计算机生成的图像的深层功能。 ICCV 2015年 | | 请注意,此实现与本文中用于生成结果的实现略有不同。 如果您对源代码有任何疑问或反馈,请联系 。 下载代码: 您可以直接下载的。 另外,您可以按如下所示...

    Java深浅clone

    在Java编程语言中,`...浅克隆适用于字段不包含可变对象或者对象的深层结构不需要独立的情况,而深克隆则在需要完整复制对象及其嵌套对象时更为适用。理解并正确使用这两种克隆方式对于编写健壮的Java代码至关重要。

    JavaScript 克隆数组最简单的方法

    当传递0作为参数时,它将返回整个数组的副本,从而实现克隆。例如: ```javascript var a = [1, 2, 3]; var b = a.slice(0); b[1] = 20; console.log(a[1]); // 输出:2 console.log(b[1]); // 输出:20 ``` 如上...

    matlab中代码意思-DCor:用于纹理合成的深层相关性

    Matlab实现纹理合成的深层相关性。 该软件包包括用于纹理合成的深层关联的实现。 我们尽力使它成为一个独立的程序包,这意味着我们将所有依赖项都包含在此存储库中。 该代码是由编写的。 先决条件 Linux(Ubuntu ...

    2015秋八年级语文上册第四单元17奇妙的克隆同步练习新版新人教版

    通过这种方式,科学家成功地将一个个体的遗传物质完整地复制到了另一个新个体中,从而实现生物的“繁衍”。 在语文的学习中,词汇的理解和运用是基础。而理解“相安无事”这个词汇,就是理解生物间和平共处状态的一...

Global site tag (gtag.js) - Google Analytics