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