Я не могу понять, в чем разница между глубокой копией и мелкой копией. Пожалуйста, дайте мне понять на простом примере. БлагодаряРазница между глубокой копией и мелкой копией
ответ
Так пример у нас есть класс
@interface myClass : NSObject
@property (strong, nonatomic) NSObject *reference;
@end
Давайте рассмотрим сначала в мелкой копии (стандарт, используемый в IOS)
myClass *instance = [myClass new];
myClass *copy = [instance copy];
«копию» переменная будет скопирована эталонным «ссылки», но оба ссылки из обеих переменных («copy» и «instance») будут указывать на один (тот же) объект памяти - что означает, что изменение «ссылки» в одном экземпляре приведет к изменению в другом (то же самое для обоих), но если мы перераспределит (copy.reference = [NSObject new]
), он будет перераспределить только для переменной «copy», а для «instance» она будет предыдущей.
Таким образом, все вместе - копирование только ссылки, но не память они указывают на (это будет одинаковым для обеих ссылок)
Deep копия ведет себя по-другому - если вы копируете объекты, которые он будет копировать ссылки и каждая скопированная ссылка будет указывать на собственный экземпляр объекта памяти. Это означает, что изменение одного объекта не приведет к изменению другого, поскольку оно копируется со ссылками (а не как предыдущее) и кратко выделяется отдельно в памяти.
Итак, все вместе - копирующие объекты приведут к копированию ссылок и объектов, на которые они указывают. Вот почему это глубокая копия - она копирует все, а не только ссылки.
Выше я добавил изображения мелкой и глубокой копии для лучшего понимания. Сначала мелкий, второй - глубокий.
Спасибо за ваше объяснение. – Raja
- 1. В чем разница между мелкой копией и глубокой копией с массивами JavaScript?
- 2. Является ли это y = y + [] глубокой копией или мелкой копией?
- 3. Разница между клонированием и глубокой копией?
- 4. Разница между копией/a и копией/b
- 5. проблема с мелкой копией!
- 6. Делает ли операцию нарезки глубокой или мелкой копией?
- 7. разница между копией и move_uploaded_file
- 8. Разница между copy_n и копией
- 9. GO - Является ли массив копией глубокой или мелкой копии?
- 10. Являются ли данные переданы в UIPasteBoard с глубокой копией или мелкой копией?
- 11. Помогите с копией и глубокой копией в Python
- 12. Является ли эта ссылка копией или мелкой копией?
- 13. Контейнеры с глубокой копией какао
- 14. Невозможно сделать NSArray глубокой копией
- 15. Какая разница между копией и назначением вектора?
- 16. В чем разница между «копией» и «сохранением»?
- 17. Есть ли разница между ** копией ** и ** addAll **?
- 18. объектов с глубокой копией не удалось
- 19. Проблема с глубокой копией в конструкторе копии
- 20. Объект с глубокой копией, содержащий интерфейс
- 21. std :: shared_ptr объект с глубокой копией
- 22. В чем же разница между мелкой копией, глубиной и обычной операцией присваивания?
- 23. В чем разница между клоном, копией и копией изображения в EmguCV?
- 24. В чем разница между распределением, сохранением и копией
- 25. Разница между изменяемой копией и другими методами создания
- 26. В чем разница между фрагментом и копией в пандах?
- 27. Разница между удаленным репозиторием git и текущей клонированной копией
- 28. Разница между несколькими полями и копией в Упругом поиске?
- 29. Есть ли разница между SVN-копией и ветвью svn?
- 30. subversion: Как: разница между измененной рабочей копией и альтернативной ветвью?
Пожалуйста, обратитесь это http://stackoverflow.com/questions/184710/what-is-the-difference-between-a-deep-copy- и-неглубокая копия –
Неглубокая копия также известна как копия адреса. В этом процессе вы копируете только не фактические данные, а в глубокой копии вы копируете данные. –