глубокая копия Vs. Неглубокая копия Vs. Clone в Java
в java, "Deep Copy", "мелкая копия", и " Клон «часто используется, но плохо определенные термины. Каждая концепция требует разъяснения для обеспечения правильного понимания.
копирование значений против копирования объектов
перед обсуждением типов копий, важно различать между копирование и копирование объектов :
мелковой копии: ] Новый объект создается с теми же значениями, что и оригинал, но ссылки на встроенные объекты имеют общие.
Неглубокая копия EG1 была бы:
]class Example {
int foo;
int[] bar;
...
}
Example eg1 = new Example(1, new int[]{1, 2});
Example eg2 = ...
] Глубокая копия EG1 будет:
Example eg2 = new Example(eg1.foo, eg1.bar);
clone
Example eg2 = new Example(eg1.foo, Arrays.copy(eg1.bar));
В отличие от мелких и глубоких копий, клон является методом, доступным во всех классах Java и массивах. Однако важно отметить: ] ] Спецификация клона не определяет, производит ли он мелкий или глубокий копию.
Семантика клона может значительно варьироваться в разных классах. ], в то время как эти термины часто используются в Java, их определения могут сильно варьироваться. Понимание нюансов мелкой копии, глубокой копии и клона имеет решающее значение для точного дублирования объекта. Также важно помнить об ограничениях клона и подходить к нему с осторожностью.
]Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3