👍6🔥2👻1
👍9😢2🔥1
Ответ на вопрос про заполнение списков:
- Инициализация массива:
В первой части создаётся массив строк, который включает значения "1", "2" и null. Исключение не возникает, так что "0" не будет выведено.
- Первый вызов метода fillList(strArr, 1):
Метод заполняет ArrayList элементами из массива. Поскольку в массиве присутствует null, это не вызывает исключение, соответственно, "1" не будет выведено.
- Второй вызов метода fillList(strArr, 2):
Этот вызов создаёт неизменяемый список. И в этот список запрещено добавлять null, поэтому "2" будет напечатано.
Итог: напечатается "2"
📌 Вывод: всегда следите за возможными null значениями в вашем коде и проверяйте, как различные структуры данных обрабатывают их! А так же аккуратно рефакторите, заменяя ArrayList на List.of(), так как кроме того что List.of - неизменяемый, эти две реализации List по разному работают с null значениями.
- Инициализация массива:
В первой части создаётся массив строк, который включает значения "1", "2" и null. Исключение не возникает, так что "0" не будет выведено.
- Первый вызов метода fillList(strArr, 1):
Метод заполняет ArrayList элементами из массива. Поскольку в массиве присутствует null, это не вызывает исключение, соответственно, "1" не будет выведено.
- Второй вызов метода fillList(strArr, 2):
Этот вызов создаёт неизменяемый список. И в этот список запрещено добавлять null, поэтому "2" будет напечатано.
Итог: напечатается "2"
📌 Вывод: всегда следите за возможными null значениями в вашем коде и проверяйте, как различные структуры данных обрабатывают их! А так же аккуратно рефакторите, заменяя ArrayList на List.of(), так как кроме того что List.of - неизменяемый, эти две реализации List по разному работают с null значениями.
Telegram
Java Interview Tasks
Что напечатает код?
1👍12❤3🙏1
Проблема в коде , в том что loadAllDB() вызывается всегда, так как orElse() всегда вычисляет значение по умолчанию, что бы вызывать этот метод только когда это нужно , можно использовать orElseGet , который вызывает переданный метод только если optional == empty
👍21🔥1🙏1
Что напечатает код?
Anonymous Quiz
28%
123
23%
23
6%
3
14%
ексепшн
16%
код не скомпилируется
8%
другой ответ
5%
узнать ответ
👍4🔥2🙏1
Ответ на вопрос про стринг билдер с конструктором:
у стринг билдера нет конструктора который принимает char, поэтому используется конструктор с int , но этот параметр задает initial capacity для билдера. Поэтому напечатается «23»
у стринг билдера нет конструктора который принимает char, поэтому используется конструктор с int , но этот параметр задает initial capacity для билдера. Поэтому напечатается «23»
👍12🔥2🐳2
👍6👌3🔥1
🤣12👍5🙏2🔥1
👍5👏2🔥1
Ответ на вопрос про код FailedConstruction:
При инициализации происходит деление на ноль, но это не вызывает исключение, так как ошибка происходит раньше:
В классе FailedConstruction, перед вызовом конструктора необходимо инициализировать поля объекта. Если мы создаем поле construction, которое снова инициирует новый экземпляр FailedConstruction, это приведет к бесконечному циклу и повторной инициализации полей.
🔄 В результате этот процесс будет продолжаться до тех пор, пока стек вызовов не переполнится, что приведет к ошибке StackOverflowError.
Результат: Программа завершится с ошибкой StackOverflowError, и при этом не будет выведено ни 1, ни 2.
При инициализации происходит деление на ноль, но это не вызывает исключение, так как ошибка происходит раньше:
В классе FailedConstruction, перед вызовом конструктора необходимо инициализировать поля объекта. Если мы создаем поле construction, которое снова инициирует новый экземпляр FailedConstruction, это приведет к бесконечному циклу и повторной инициализации полей.
🔄 В результате этот процесс будет продолжаться до тех пор, пока стек вызовов не переполнится, что приведет к ошибке StackOverflowError.
Результат: Программа завершится с ошибкой StackOverflowError, и при этом не будет выведено ни 1, ни 2.
👍14🔥3🙏1
👍8🤔3🔥2
Ответ на вопрос про FailedConstruction и делеление на 0:
В конструкторе происходит деление на ноль (100 / 0.0).
В отличие от целочисленного деления, деление на ноль с плавающей точкой (double) не вызывает исключение, а результатом будет Infinity.
✅ Таким образом, программа не завершится с ошибкой, и код успешно выполнится. В результате в консоль будет выведено 1.
В конструкторе происходит деление на ноль (100 / 0.0).
В отличие от целочисленного деления, деление на ноль с плавающей точкой (double) не вызывает исключение, а результатом будет Infinity.
✅ Таким образом, программа не завершится с ошибкой, и код успешно выполнится. В результате в консоль будет выведено 1.
👀12👍4🔥4