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 — чтобы избежать наследования и сохранить надёжность.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1👍1
Please open Telegram to view this post
VIEW IN TELEGRAM
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). Особенно полезно при тестировании, отладке, и написании сложной бизнес-логики.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9
🔥3❤2👍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())
— абстрактных фабриках и хелперах
📌 Это приём, который сигнализирует другим разработчикам: «этот класс не предназначен для создания объектов».
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2
Please open Telegram to view this post
VIEW IN TELEGRAM
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 — например, в банковских или научных системах.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥5❤3
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🤣15🔥4❤1
Что делает ключевое слово 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 — это не динамическая типизация. Тип переменной всё равно определяется во время компиляции, и после — изменить его нельзя.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM