我已经阅读了很多关于Java List
,Map
等深度复制和序列化的内容,但我没有找到一些问题的好答案。我关心时间和表现,所以我正在寻求妥协。我在下面列出我的问题,以便您可以解决有答案的问题。
通过循环list
或使用序列化,在性能,深度复制方面有什么好处?我读过一篇帖子(抱歉,我丢失了链接),说循环比java序列化好4倍。这是否意味着使用像Kryo这样的第三方可能比循环更好?
我不确定序列化在不同的3rd party libraries中是如何工作的,但是如果我有很多子类级别会发生什么,序列化会比循环更好吗?
Java中有没有复制原始内存的库?例如,在memcopy()
中使用C
类似函数的库。这样会快得多,因为不需要关心类逻辑(当然它需要对非连续内存数据进行一些处理)。我知道Java是面向对象的:),但这不违反我认为的规则。
如果我想在Java中实现deepCopy(List<?>)
和deepCopy(Map<?,?>)
,我可以将它们放在我拥有的MyTools
课程中吗?或者在Java中有一些更简洁的方法吗?
答案 0 :(得分:0)
根据您的需要,无法对列表,地图和其他仿制品进行深度复制。因此,您最终可能会使用像Kryo这样的良好序列化库。