- 浏览: 346628 次
- 性别:
- 来自: 成都正在项目
文章分类
- 全部博客 (121)
- Java-Spring (1)
- Java-Hibernate (5)
- Java-基础 (16)
- Java-中级 (1)
- Java-高级 (18)
- Java-Struts (0)
- Java-RCP/Swing/SWT/JFACE (1)
- Java-常用正则 (1)
- Java-反射 (2)
- Java-h2database (2)
- JAVA面试题目 (1)
- ArcGIS Desktop 10——安装篇 (2)
- ArcGIS Desktop 10——基本知识 (0)
- ArcGIS Desktop 10——专业库——数据管理 (9)
- PHP——安装篇 (3)
- PHP——基础篇 (2)
- PHP——教程笔记 (10)
- GIS——基础 (3)
- GIS——算法 (0)
- GIS——Geoserver (1)
- GIS——OpenLayers (1)
- C#——既然改成了ITEYE我就增加个栏目 (1)
- Oracle——PL/SQL (1)
- Oracle——Java基础 (2)
- Oracle——TOAD (1)
- ECLIPSE-MYECLIPSE常见问题 (3)
- MySQL——安装篇 (4)
- Postgres (5)
- JavaScript - JQUERY (2)
- C++ (2)
- 操作系统 (5)
- Dwr——DirectWebRemoting (5)
- Maven (1)
- FLEX (4)
- ruby (1)
最新评论
-
AXthrough:
好强大,支持。
解决Jquery.autocomplete.js多参数的正确传递+中文编码+发送兼容FF+空格问题+返回值 -
redsky008:
独立的程序,独立的路径。
我已经转行了,以后这个很少关注的了 ...
真正解决 log4j:ERROR Failed to rename错误解决办法 -
梅花簪:
没明白,怎么改配置,为不同的进程所有?
真正解决 log4j:ERROR Failed to rename错误解决办法
必须将对象序列和反序列,
而且尤其在多线程中要引用多个对象,而且多个对象之间有某种关联,
将多个对象融合进一个对象中,便于深度克隆,否则一旦牵扯关联获取某种数据。
就有可能访问不到某对象数据,
比如:序列多个对象中存在Map对象建立的链表,Key值为对象的情况,如果不深度克隆,会造成死循环(一个对象被多个进程引用,注意:并非是锁定了,本质就是死循环)。
而如果这个时候每个对象都进行深度克隆,再加入多线程的run中运算,定会造成一个Map对象访问不到另一个Map对象中的值
而且尤其在多线程中要引用多个对象,而且多个对象之间有某种关联,
将多个对象融合进一个对象中,便于深度克隆,否则一旦牵扯关联获取某种数据。
就有可能访问不到某对象数据,
比如:序列多个对象中存在Map对象建立的链表,Key值为对象的情况,如果不深度克隆,会造成死循环(一个对象被多个进程引用,注意:并非是锁定了,本质就是死循环)。
而如果这个时候每个对象都进行深度克隆,再加入多线程的run中运算,定会造成一个Map对象访问不到另一个Map对象中的值
public static final Object deepclone(Object src) { try { ByteArrayOutputStream baos = new ByteArrayOutputStream(); ObjectOutputStream out = new ObjectOutputStream(baos); out.writeObject(src); out.close(); ByteArrayInputStream bin = new ByteArrayInputStream(baos.toByteArray()); ObjectInputStream in = new ObjectInputStream(bin); Object clone = in.readObject(); in.close(); return (clone); } catch (ClassNotFoundException e) { throw new InternalError(e.toString()); } catch (StreamCorruptedException e) { throw new InternalError(e.toString()); } catch (IOException e) { throw new InternalError(e.toString()); } }
发表评论
-
RESTEasy 例子 hello world(两种方法)
2012-12-14 17:41 21819转载自http://zorro.blog.51cto.com/ ... -
原来Junit不支持多线程测试,需要使用GroboUtils才可以支持多线程测试
2011-12-06 09:30 1914对Junit的不深刻理解,造成多线程执行不完整,比如执行100 ... -
java.lang.LinkageError: JAXB 2.0 API is being loaded from the bootstrap classloa
2011-07-29 10:07 1240在做RESTful测试时,在Windows系统下出现了如下问题 ... -
转:Mina2 Http server
2011-07-27 14:03 1016http://amozon.iteye.com/blog/32 ... -
Base64测试
2011-06-29 17:36 1package com.redsky.cn.test; ... -
转Java集群好网站
2011-06-28 22:11 693http://www.jdon.com/jivejdon/th ... -
转:常见NIO开源框架(MINA、xSocket)学习 2
2011-06-23 18:17 807http://unbounder.iteye.com/blog ... -
test
2011-06-23 16:50 518http://www.liuyangs.info/docume ... -
转:直接用socket的话,mina server就不能用filter
2011-06-23 16:00 1转:http://www.blogjava.net/cresp ... -
转:模拟Mina2的TextLineCodecFactory中的TextLineDecoder解码器
2011-06-21 21:50 1965转自:http://hi.baidu.com/huahua03 ... -
转Java NIO文件操作
2011-06-21 13:54 873http://download.csdn.net/source ... -
搜集的一篇OutOfMemoryError
2011-06-10 23:29 1930最近遇到如下问题,主要是在做线程池+数据库连接池时遇到的,虽然 ... -
另一个线程池ThreadPool,感觉比之前发的那个JDK自带的好用
2011-06-10 22:52 2212import java.util.LinkedList; p ... -
转载Socket解包
2011-05-31 20:04 1805http://liuyuyuan.iteye.com/blog ... -
Java解决常见验证码——一定是准确率100%
2011-05-28 21:30 1113绝对不适合于严重扭曲,形状交叉的情形。有别于传统切图(一般4张 ... -
Mina2和Spring(2.5)在web项目中的结合使用
2011-05-18 20:55 733转载http://yanda20056.blog.163.co ... -
学习动态代理的时候,原来JAVA代码中也可以编译代码执行JAVAC的功能啊
2011-05-04 22:37 994JDK1.6提供了如题的功能,前提是项目必须引入JDK1.6而 ... -
关于Map接口中Key值是对象还是值的问题
2011-04-28 19:24 3610今天遇到取不出Key所对应的值,取值为null. 原来是Key ... -
转载:JDK1.5中的线程池(java.util.concurrent.ThreadPoolExecutor)使用简介
2011-04-28 15:04 788将封装的如下方法置顶 public static Thr ...
相关推荐
深度克隆对象,不过效率没有显示的new对象快,不过很安全
java的两种深度克隆方法,1cloneTest是用Cloneable接口的clone方法实现(对象必须要实现cloneable接口).2cloneSerialize.java是用对象流写对象到byte数组中,然后从byte数组中取得对象.(对象必须要实现serializble接口)
java深度克隆,可以复制对象,非常好用,谁用谁知道!
本文实例讲述了JS对象的深度...我整理了两种深度克隆对象的方法,供大家参考! 首先var 一个假数据 代码如下:var schedule = {“status”:21,”msg”:”ok”,”data”:[{“name”:”lemon”,”age”:21,”contactLis
nanoclone - 只有145B实现深度克隆JavaScript对象
主要介绍了JS对象深度克隆,结合实例形式分析了JavaScript对象深度克隆的实现方法与相关注意事项,需要的朋友可以参考下
可以更好的去理解java克隆的运用,尤其在多线程的运用过程中,多个对象进行操作过程中,可以先进行对 对象进行 备份,首先就克隆一份,当多线程对对象操作过程中,与异常情况,可以对对象进行恢复,克隆还其他的用途,学会...
一个用于对象深度克隆的同构和可配置javascript函数
本篇文章是对序列化存取实现java对象深度克隆的方法进行了详细的分析介绍,需要的朋友参考下
深度克隆对象,支持循环引用和属性描述符 var clone = require ( '@dmail/object-clone' ) ; var a = { name : 'a' } ; var b = clone ( a ) ; b . name ; // 'a' // of course b != a 它克隆得很深 var a = { ...
本篇文章是对JAVA对象深度克隆进行了详细的分析介绍,需要的朋友参考下
今天整理了下资料,分析下为什么一句话可以实现纯数据json对象的深度克隆,感兴趣的朋友可以了解下哦
主要介绍了JavaScript对象之深度克隆介绍,本文详细的讲解了什么是对象深度克隆,并给出了示例代码,需要的朋友可以参考下
本文档是解决 引用问题的解决方案,它不仅可以解决引用值拷贝 ,还可以原样复制一个一摸一样的数组、对象包括其中的方法。
深度复制Java对象实例,复制后对象属性值改变不影响被复制对象,有注释
对象克隆ES5的深克隆和比较概要// just for conveniencevar log = function ( ) { console . log . apply ( console , [ ] . slice . call ( arguments ) ) } ; var src = { name : 'dankogai' , lang : [ 'perl' ] ...
因此,如果您想要一个完全独立的结果并具有许多非原始值,则应首先深度克隆对象。下载您可以从页面下载整个内容的副本。 或者,如果您只想要构建的脚本,则。 或者,如果您使用的是npm, npm install numbrify使用...