Easy Java
5.22K subscribers
311 photos
51 videos
463 links
Лучшие обучающие материалы и другие полезности для Java-разработчиков.

Сотрудничество: @heywan_n1

Цены: @heywan_media

Реклама на бирже: https://telega.in/c/+r8kkGSypBY84MmIy
Download Telegram
Please open Telegram to view this post
VIEW IN TELEGRAM
😭12
Вопрос с собеса

В каком порядке вызываются конструкторы при наследовании в Java?

Пример🔽
class Parent {
Parent() {
System.out.println("Конструктор родителя");
}
}

class Child extends Parent {
Child() {
System.out.println("Конструктор потомка");
}
}

public class Main {
public static void main(String[] args) {
new Child();
}
}


Ответ🔽
При создании объекта дочернего класса сначала вызывается конструктор родителя, а затем — конструкция потомка. Это гарантирует, что базовая часть объекта будет инициализирована до расширений.

📌 Даже если в конструкторе дочернего класса нет явного вызова super(), он вставляется компилятором автоматически


➡️ Easy Java | #Собес
Please open Telegram to view this post
VIEW IN TELEGRAM
👍83
Please open Telegram to view this post
VIEW IN TELEGRAM
Ответ:
Anonymous Quiz
6%
1
20%
2
73%
3
1%
4
👩‍💻 Что такое enum-синглтон в Java и зачем он нужен?

В Java можно реализовать шаблон "Singleton" с помощью enum. Это считается самым безопасным и лаконичным способом создания синглтона, так как гарантирует:

🟢 отсутствие повторного создания
🟢 защиту от сериализации и reflection-атак
🟢 потокобезопасность без дополнительного кода


• Простой синтаксис
• Безопасность на уровне JVM
• Гарантированная единственность экземпляра

⚡️ Пример:

public enum AppConfig {
INSTANCE;

private final String baseUrl = "https://example.com";

public String getBaseUrl() {
return baseUrl;
}
}

public class Main {
public static void main(String[] args) {
System.out.println(AppConfig.INSTANCE.getBaseUrl()); // ➔ https://example.com
}
}


👀 enum-синглтон особенно полезен для конфигураций, логгеров, глобальных менеджеров ресурсов и других классов, где нужен один и только один экземпляр во всём приложении.


➡️ Easy Java | #Теория
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🥰104
Вопрос с собеса

Что делает instanceof и как работает Pattern Matching в Java?

Пример🔽
public class Main {
public static void main(String[] args) {
Object obj = "Hello, world!";

if (obj instanceof String str) {
System.out.println("Длина строки: " + str.length()); // ➔ 13
}
}
}


Ответ🔽
Раньше instanceof только проверял тип, но с Pattern Matching можно одновременно проверить и привести объект к нужному типу — безопасно и без дополнительного кастинга.

📌 Это делает код короче и безопаснее, особенно при работе с объектами неизвестного типа. Можно применять в if, switch, и других конструкциях


➡️ Easy Java | #Собес
Please open Telegram to view this post
VIEW IN TELEGRAM
7
Please open Telegram to view this post
VIEW IN TELEGRAM
2
Ответ:
Anonymous Quiz
3%
1
8%
2
81%
3
7%
4
2
👩‍💻 Что такое Optional в Java и зачем он нужен?

Optional — это контейнер-обёртка, предназначенный для работы с потенциально null-значениями. Он помогает явно выражать возможность отсутствия значения и избегать NullPointerException.

• Упрощает читаемость кода
• Избавляет от if (x != null)
• Поддерживает декларативный стиль (map, filter, orElse)


⚡️ Пример:

import java.util.Optional;

public class Main {
public static void main(String[] args) {
Optional<String> name = Optional.ofNullable(getName());

name.ifPresentOrElse(
n -> System.out.println("Привет, " + n),
() -> System.out.println("Имя не указано")
);
}

static String getName() {
return Math.random() > 0.5 ? "Alice" : null;
}
}


👀 Optional особенно полезен в API-методах, где важно явно указать, что результат может отсутствовать — например, при поиске сущностей, чтении из конфигураций, или безопасной обработке данных.


➡️ Easy Java | #Теория
Please open Telegram to view this post
VIEW IN TELEGRAM
2👍1
Please open Telegram to view this post
VIEW IN TELEGRAM
5
Please open Telegram to view this post
VIEW IN TELEGRAM
🤣15🤔2
Вопрос с собеса

Зачем в Java используют модификатор final у классов?

Пример🔽
final class UserService {
public void process() {
System.out.println("Обработка пользователя");
}
}

// class CustomService extends UserService {} // Ошибка: нельзя наследовать final-класс


Ответ🔽
final у класса означает, что этот класс нельзя расширять (наследовать). Это часто используется, когда класс:

должен быть закрыт для модификации,

является частью критичной логики (например, безопасность),

или содержит деликатную реализацию, которую нельзя переопределять.

📌 Многие utility-классы в JDK (например, java.lang.Math, java.lang.String) сделаны final — чтобы избежать наследования и сохранить надёжность.


➡️ Easy Java | #Собес
Please open Telegram to view this post
VIEW IN TELEGRAM
1👍1
Please open Telegram to view this post
VIEW IN TELEGRAM
Ответ:
Anonymous Quiz
33%
1
45%
2
6%
3
16%
4
👩‍💻 Что такое assert в Java и зачем он нужен?

assert — это ключевое слово, которое используется для проверки инвариантов в коде во время выполнения. Оно помогает ловить логические ошибки во время разработки, но может быть отключено в продакшене.

Если выражение в assert ложно, выбрасывается AssertionError. Это простой и мощный способ добавить самопроверку в код.


• Помогает отлавливать баги на ранней стадии
• Не влияет на прод при отключённых проверках
• Удобен для валидации предусловий и постусловий

⚡️ Пример:

public class Main {
public static void main(String[] args) {
int age = -5;
assert age >= 0 : "Возраст не может быть отрицательным";

System.out.println("Возраст: " + age);
}
}


👀 Чтобы включить assert-проверки, нужно запускать JVM с флагом -ea (enable assertions). Особенно полезно при тестировании, отладке, и написании сложной бизнес-логики.


➡️ Easy Java | #Теория
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥21
🔥32👍1