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

深层克隆的实现

 
阅读更多

深克隆的最简单方法:

 

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中的浅克隆实现方法。 ### 浅克隆的基本概念 浅克隆创建了一个新对象,这个新对象拥有与原始对象相同的属性值。然而,如果属性值是一个对象或数组,那么它们在原始对象和克隆对象之间...

    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学习驾驶...

    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 ...

    Transformer_STR:我的基于Transformer的场景文本识别新方法(STR)的PyTorch实现,配备了Transformer,在CUTE80上,该方法的最佳模型优于上述深层文本识别基准的7.6%

    我的基于场景文本识别(STR)新方法的PyTorch实现。 我改编了由设计的四阶段STR框架,并替换了Pred. 变压器的舞台。 配备了Transformer,此方法在CUTE80上优于上述深层文本识别基准的最佳模型7.6% 。 从下载预...

    object-clone-proposal:关于ECMAScript中的Object.clone方法的建议

    在某些情况下,需要创建对象的深层克隆。 本地复制引用的内存比手动克隆要有效得多。 本机方法还有助于避免天真的实现的问题。征求反馈只要没有TC39成员将拥护该提案,就完全可以征询反馈,提出问题和进行改进。 视...

    句柄和 hgsetget 类的复制/克隆方法:启用句柄或 hgsetget 类的子对象的深度复制-matlab开发

    handle或hgsetget类错过了... 一些简短的说明: - 此实现(希望)还处理继承的私有或受保护属性的深度复制(讨论“克隆句柄对象 - 使用 MATLAB OOP”-> 确认中的链接)。 - 它处理包含句柄对象的属性-它不处理循环引

    maxoutmatlab代码-darch:用R编程语言创建深层架构

    用R编程语言创建深层架构 安装 可以使用以下命令从CRAN安装以前的darch稳定版本(0.12.0): install.packages( " darch " ) 使用时,可以使用以下命令安装最新的git版本(由大于或等于9000的版本号标识,并且可以...

Global site tag (gtag.js) - Google Analytics