Java Interview Tasks
3.88K subscribers
188 photos
1 file
121 links
Реальные вопросы и задачи с собеседований.
Оригинальный авторский контент.
Актуальный материал.
Уровень вопросов от junior до supersenior.

Автор канала - @alexzelentsov

По рекламе: @alexzelentsov и https://telega.in/c/java_interview_tasks
Download Telegram
🔍 Ответ на вопрос про использование var в Java:

Все больше и больше в коде начали использовать var .
🤔 Давайте разберем плюсы и минусы его использования.

📌 Плюсы var:
✔️ Меньше "визуального шума": избавляет от длинных и громоздких объявлений.
✔️ Удобно при работе с дженериками и вложенными типами: никакого лишнего написания.
✔️ Код читается проще, когда тип очевиден из правой части.

Примеры, когда var выглядит отлично:

var map = new HashMap<String, List<Long>>();
var name = "LinkedIn";
var count = 42;

⚠️ Минусы var:
Иногда теряется читаемость: особенно, когда возвращаемый тип не очевиден.
Может прятать неожиданные типы, что усложняет отладку.
Не подходит для публичных API / сигнатур, где тип данных должен быть явно указан.

Когда var может стать врагом:

var data = process(); // Непонятно, что за тип возвращается.
var a = someObj.getValue().getAnother().resolve(); // Много уровней вложенности.
📌 Мой вывод: var — это отличный инструмент, но важно знать, когда и как его использовать. Лично я применяю var, когда тип очевиден без догадок. Если нужно вчитываться или полагаться на IDE, лучше указать тип явно. Помните, что читаемость важнее краткости! 💡

Согласны с таким подходом? Или у вас есть свои мысли? Делитесь в комментариях, подписывайтесь и ставьте лайк! 🤗

#Java #var #кодстайл #java10 #java_interview_tasks
👍133❤‍🔥1👎1🔥1🙏1
🔍 Ответ на задачу про порядок выполнения операций в Java:

Давайте посмотрим, что напечатает следующий код:
public static void main(String[] args) {
System.out.print(int1() + int2() * int3());
}

private static int int1() {
System.out.print(1);
return 1;
}

private static int int2() {
System.out.print(2);
return 2;
}

private static int int3() {
System.out.print(3);
return 3;
}

Что произойдёт при выполнении этого кода?

🧐 Важный момент — это порядок выполнения операций и вычислений.

Вначале вызывается int1(), который печатает 1 и возвращает 1.
Затем в правой части выполняется int2() * int3().
int2() печатает 2 и возвращает 2.
int3() печатает 3 и возвращает 3.
Происходит умножение (2 * 3 = 6).
Наконец, результат сложения: 1 + 6 = 7.
Итак, итоговый вывод будет:

1237
Первые три цифры — это значения, возвращаемые методами, а 7 — результат вычисления выражения. 🔢

Если вам интересны подобные разборы, ставьте лайк, не забывайте подписаться и оставлять свои комментарии! 🤗

#Java #порядок_выполнения #вычисления #java_interview_tasks
👍24🔥32🙏2
🔍 Ответ на задачу про передачу примитивов в методы в Java

Давайте рассмотрим, что произойдёт при выполнении этого кода:
public static void main(String[] args) {
int count = 123;
inc(count);
System.out.println(count);
}

private static void inc(int count) {
count++;
}


Чего ожидать от вывода?

🔎 В Java при передаче примитивных типов (таких как int) в методы используется передача по значению. Это означает, что в метод inc передаётся копия значения count, а не сама переменная. Таким образом, любые изменения над параметром count в методе inc не влияют на переменную count в методе main.

🌟 Вот шаги выполнения:

В main у нас переменная count равна 123.
Мы вызываем метод inc(count), передавая копию значения count.
В методе inc эта копия увеличивается на 1, но никак не затрагивает оригинальную переменную в main.
Поэтому System.out.println(count); выведет оригинальное значение: 123

🔗 Это пример важной концепции в Java — примитивы передаются по значению, и изменения не сохраняются вне метода. Помните об этом при проектировании ваших программ!

⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️

🔍 Ответ на задачу про неизменяемость объектов в Java

Здесь у нас код, который работает с неизменяемостью объектов в Java:
public static void main(String[] args) {
Integer count = 123;
inc(count);
System.out.println(count);
}

private static void inc(Integer count) {
count++;
}


Что выведет этот код?

🤔 Давайте разберёмся. На первый взгляд могло бы показаться, что после вызова метода inc count увеличится. Но это не так.

🔸 Тип Integer — это неизменяемый объект в Java. Кроме того, при передаче в метод inc, создаётся копия ссылки, а не передача по ссылке, как в некоторых других языках.

🔸 Метод count++ использует count локально, создавая новый объект Integer, но не изменяет оригинальный объект count в main.

Таким образом, System.out.println(count); напечатает: 123

😯 Не забывайте об этих особенностях при работе с объектами! Если у вас есть мысли или вопросы, делитесь ими в комментариях! Подписывайтесь и ставьте лайк, чтобы не пропустить новые посты! 🤗

#Java #неизменяемость #Integer #java_interview_tasks
🔥5👍31😨1