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

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

Цены: @heywan_media

Реклама на бирже: https://telega.in/c/+r8kkGSypBY84MmIy
Download 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
Please open Telegram to view this post
VIEW IN TELEGRAM
😁11
Вопрос с собеса

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

Пример🔽
public class Utils {
private Utils() {
throw new UnsupportedOperationException("Утилитный класс — нельзя создавать экземпляры");
}

public static int sum(int a, int b) {
return a + b;
}
}


Ответ🔽
private конструктор используется для запрета создания экземпляров класса. Это часто применяется в:

— утилитных классах с только статическими методами
— синглтонах (в сочетании с getInstance())
— абстрактных фабриках и хелперах

📌 Это приём, который сигнализирует другим разработчикам: «этот класс не предназначен для создания объектов».


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

strictfp — это модификатор, который гарантирует предсказуемые результаты с плавающей точкой на всех платформах. Он заставляет JVM использовать строгие IEEE 754 правила вычислений.

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


• Гарантирует одинаковый результат на любой платформе
• Применим к классам, методам и интерфейсам
• Влияет только на операции с float и double

⚡️ Пример:

public strictfp class Calculator {
public static double compute(double a, double b) {
return a * Math.pow(b, 2) / 3.0;
}

public static void main(String[] args) {
System.out.println(compute(2.5, 4.0));
}
}


👀 strictfp особенно полезен при написании библиотек, где критична числовая точность и одинаковое поведение на разных JVM — например, в банковских или научных системах.


➡️ Easy Java | #Теория
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥53
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🤣15🔥41
Вопрос с собеса

Что делает ключевое слово var в Java и когда его стоит использовать?

Пример🔽
public class Main {
public static void main(String[] args) {
var message = "Привет, мир!";
var number = 42;

System.out.println(message.toUpperCase()); // ➔ ПРИВЕТ, МИР!
System.out.println(number + 8); // ➔ 50
}
}


Ответ🔽
var позволяет не указывать явно тип переменной, если он может быть выведен компилятором. Это делает код короче и чище, особенно при работе с дженериками и лямбдами.

📌 Важно: var — это не динамическая типизация. Тип переменной всё равно определяется во время компиляции, и после — изменить его нельзя.


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

volatile — это модификатор переменной, который говорит JVM: не кэшировать значение, а всегда читать его из основной памяти. Это обеспечивает видимость изменений между потоками без использования synchronized.

Он не делает операции атомарными, но гарантирует, что все потоки увидят актуальное значение переменной, если один из потоков его изменил.


• Упрощает синхронизацию
• Гарантирует видимость без блокировок
• Идеален для флагов и индикаторов в многопоточности

⚡️ Пример:

public class Main {
private static volatile boolean running = true;

public static void main(String[] args) throws InterruptedException {
Thread worker = new Thread(() -> {
while (running) {
// выполняем работу
}
System.out.println("Поток завершён");
});

worker.start();
Thread.sleep(1000);
running = false; // изменение станет видно в другом потоке
}
}


👀 volatile особенно полезен для флагов завершения, простых статусов и неблокирующих операций, где требуется только гарантированная видимость, но не атомарность или защита критических секций.


➡️ Easy Java | #Теория
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥4
Please open Telegram to view this post
VIEW IN TELEGRAM