Java Guru 🤓
13.1K subscribers
910 photos
15 videos
779 links
Канал с вопросами и задачами с собеседований!

По сотрудничеству и рекламе: @NadikaKir

Канал в перечне РКН: https://vk.cc/cJrSQZ

Мы на бирже: telega.in/channels/javatasks/card?r=lcDuijdm
Download Telegram
Что выведет на экран следующий код?
👍13
👍211
Что такое string-pool? В чем отличие cоздания строки через new от литерала? Что такое String.intern()?

string-pool — структура в памяти, хранящая массив всех строк-литералов программы.
String.intern(), соответственно, вернет строку из пула, при наличии таковой. Полезно при сравнениях вида:

new String("hello").intern() == new String("hello").intern()

Т.к без интернирования пришлось бы сравнивать строки через equals, что может быть медленнее при наличии длинных строк. В данном случае возвращается ссылка на один и тот же объект строки из пула, и проверка проходит с true.
👍19
Что напечатает следующий код?
👍12
Почему хранить пароль предпочтительнее в char[]/byte[], а не в String?

• Строка в виде литерала сразу раскрывает пароль, плюс она всегда хранится в string-пуле
• byte[]/char[] возможно сбросить после использования, и удалить все ссылки на него
👍29🔥1
Что произойдет при выполнении такого кода?
👍12🔥1
Приведите пример нарушения симметрии equals

1. Создать класс Point2D c полями x,y: double
2. Унаследовать от него класс ColoredPoint2D c доп. полем color
3. a: Point2D
4. b: ColoredPoint2D
5. a.equals(b), !b.equals(a)
👍13👎2🏆1
Какой будет результат?
👍9
Примитивы, врапперы. Package/unpackage (boxing/unboxing).

• Типы примитивы не создаются в куче, их жизненный цикл ограничен жизненным циклом стек-фрейма
• Package — создание типа-обертки в хипе для аналогичного типа-примитива, например при объявлении аргумента как Integer, и при передаче int в качестве аргумента. Unpackage — обратная операция
👍13
Каким будет результат выполнения следующего кода?
👍15
Каким будет результат выполнения следующего кода?
Anonymous Quiz
35%
0
46%
-1
4%
Ничего из перечисленного
16%
Ошибка компиляции
👍28🔥5😁1
Сравнение по == и по equals

• Сравнение по "==" — сравнение по ссылкам
• Сравнение по «equals» — если переопределен equals, то это сравнение эквивалентности объектов по их полям, если нет — по ссылкам на объекты
👍19🍌1
Каким будет результат компиляции и выполнения следующего кода?
👍17🔥8
Каким будет результат компиляции и выполнения следующего кода?
Anonymous Quiz
18%
C5
20%
C
22%
ABC5
30%
ABC
9%
AB5
👍21🔥6😱5👏3
Свойства, которым должен удовлетворять equals

• Рефлексивность: a==a
• Симметричность: a==b, b==a
• Транзитивность: a==b, b==c, a==c
• Консистентность: Множественные вызовы equals должны возвращать один и тот же результат
👍401🔥1
Что выведет код?
👍11🤔5🔥31
👍15🤔4🔥3
Отличия String/StringBuilder/StringBuffer

String — иммутабельный байтовый массив
StringBuilder — helper-класс для построения строк, не предоставляет гарантий синхронизации
StringBuffer — то же, что и StringBuilder, с synchronized методами
👍36👎1