В чем заключается особенность работы метода clone() с полями объекта типа ссылки?
При клонировании объектов копируются только примитивные значения и значение ссылок на объекты. Это значит, что если объект имеет во внутреннем поле ссылку на другой объект, то будет клонирована только эта ссылка, сам же этот другой объект клонирован не будет. Собственно, это и называют — поверхностным клонированием.
Ну а что, если вам нужно полноценное клонирование с клонированием всех вложенных объектов? Как сделать, чтобы это были не копии ссылок, а полноценные клоны объекты с другими занимаемыми ячейками памяти в куче?
На самом деле все довольно просто — для этого вам нужно в каждом классе этих внутренних объектов также переопределить метод clone() и добавить интерфейс маркер — Cloneable. Тогда будут скопированные не ссылки на объекты, а сами объекты, ведь теперь они тоже имеют возможность копировать себя.
При клонировании объектов копируются только примитивные значения и значение ссылок на объекты. Это значит, что если объект имеет во внутреннем поле ссылку на другой объект, то будет клонирована только эта ссылка, сам же этот другой объект клонирован не будет. Собственно, это и называют — поверхностным клонированием.
Ну а что, если вам нужно полноценное клонирование с клонированием всех вложенных объектов? Как сделать, чтобы это были не копии ссылок, а полноценные клоны объекты с другими занимаемыми ячейками памяти в куче?
На самом деле все довольно просто — для этого вам нужно в каждом классе этих внутренних объектов также переопределить метод clone() и добавить интерфейс маркер — Cloneable. Тогда будут скопированные не ссылки на объекты, а сами объекты, ведь теперь они тоже имеют возможность копировать себя.
Что выведет код сверху?
Anonymous Quiz
33%
0
12%
null
49%
Compiler error
6%
Ничего из вышеперечисленного
Что из нижеперечисленного является в Java ключевым словом?
Anonymous Quiz
30%
goto
19%
array
28%
null
23%
true
⚡️Proglib запускает каналы про нейросети
По каждому направлению отдельно! А именно:
⭐Библиотека нейрозвука — здесь все, связанное с транскрибацией, синтезом речи, ИИ-музыкой
⭐Библиотека нейротекста — классические ИИ-помощники вроде ChatGPT, Gemini, Bing
⭐Библиотека нейровидео — здесь пишем про нашумевшую Sora AI, а также про Runway ML, дипфейки и другие видеотехнологии
⭐Библиотека нейрокартинок — генерируем изображения и рассказываем про Midjourney, DALL-E, Stable Diffusion
⭐️Библиотека робототехники и беспилотников — наконец, тут мы рассказываем не столько про ИИ, сколько про роботов, беспилотные технологии и интернет вещей
И все это — максимально подробно: с пошаговыми инструкциями, промтами, инструментами и лайфхаками.
Подписывайтесь!
По каждому направлению отдельно! А именно:
⭐Библиотека нейрозвука — здесь все, связанное с транскрибацией, синтезом речи, ИИ-музыкой
⭐Библиотека нейротекста — классические ИИ-помощники вроде ChatGPT, Gemini, Bing
⭐Библиотека нейровидео — здесь пишем про нашумевшую Sora AI, а также про Runway ML, дипфейки и другие видеотехнологии
⭐Библиотека нейрокартинок — генерируем изображения и рассказываем про Midjourney, DALL-E, Stable Diffusion
⭐️Библиотека робототехники и беспилотников — наконец, тут мы рассказываем не столько про ИИ, сколько про роботов, беспилотные технологии и интернет вещей
И все это — максимально подробно: с пошаговыми инструкциями, промтами, инструментами и лайфхаками.
Подписывайтесь!
Какой из этих методов возвращает описание исключения?
Anonymous Quiz
61%
getMessage()
27%
getException()
5%
obtainDescription()
7%
obtainException()
Что выведет код?
Anonymous Quiz
50%
3 4
12%
3.33 4.25
28%
Compiler error
11%
Ничего из вышеперечисленного
Какие выводы на экран будут компилироваться?
Anonymous Quiz
18%
1 и 2
51%
1
17%
2
13%
Посмотреть ответ
Forwarded from Библиотека джависта | Java, Spring, Maven, Hibernate
⚡️Свершилось: канал с книгами только по Java
Мы создали для вас канал с самыми полезными книгами по Java — подписывайтесь!
👉 Книги для джавистов | Java
Мы создали для вас канал с самыми полезными книгами по Java — подписывайтесь!
Please open Telegram to view this post
VIEW IN TELEGRAM
SoftReference
SoftReference (мягкая ссылка) — это класс, который представляет собой ссылку на объект, который может быть удален сборщиком мусора (GC) в любой момент, если память нужна для других объектов.
Принцип работы:
— Создание: SoftReference создается с помощью конструктора, который принимает ссылку на объект.
— Доступ к объекту: Для доступа к объекту, на который ссылается SoftReference, используется метод get().
— Очистка: GC может очистить SoftReference в любой момент, если память нужна для других объектов.
Когда использовать SoftReference:
— Кэширование: SoftReference можно использовать для реализации кэшей, где важно сохранить объекты в памяти, если это возможно, но не обязательно.
— Сохранение метаданных: SoftReference можно использовать для хранения метаданных об объектах, которые не являются критичными для работы приложения.
SoftReference (мягкая ссылка) — это класс, который представляет собой ссылку на объект, который может быть удален сборщиком мусора (GC) в любой момент, если память нужна для других объектов.
Принцип работы:
— Создание: SoftReference создается с помощью конструктора, который принимает ссылку на объект.
— Доступ к объекту: Для доступа к объекту, на который ссылается SoftReference, используется метод get().
— Очистка: GC может очистить SoftReference в любой момент, если память нужна для других объектов.
Когда использовать SoftReference:
— Кэширование: SoftReference можно использовать для реализации кэшей, где важно сохранить объекты в памяти, если это возможно, но не обязательно.
— Сохранение метаданных: SoftReference можно использовать для хранения метаданных об объектах, которые не являются критичными для работы приложения.
Какой метод должен быть переопределен классом, реализующим интерфейс Runnable для выполнения задачи в отдельном потоке?
Anonymous Quiz
5%
int run()
4%
boolean run()
12%
void run(int priority)
80%
void run()
Что выведет код?
Anonymous Quiz
31%
Compiler Error
25%
NullPointerException во время исполнения
38%
null
7%
1
Что выведет код сверху?
Anonymous Quiz
50%
File Not Found
7%
Runtime Error
35%
Compiler Error
8%
Ничего из перечисленного