ar
Feedback
Easy Java

Easy Java

الذهاب إلى القناة على Telegram

Лучшие обучающие материалы и другие полезности для Java-разработчиков. Сотрудничество: @heywan_n1 Цены: @heywan_media Реклама на бирже: https://telega.in/c/+r8kkGSypBY84MmIy

إظهار المزيد
5 220
المشتركون
-124 ساعات
-237 أيام
-8730 أيام
أرشيف المشاركات
😈Переиграли и уничтожили SkillBox’y привет, всем остальным соболезную. Залили новые курсы, забирайте ниже: ➖Python (64гб кур
😈Переиграли и уничтожили SkillBox’y привет, всем остальным соболезную. Залили новые курсы, забирайте ниже: Python (64гб курсов) ➖C# (27гб курсов) ➖Java (45гб курсов) ➖PHP (34гб курсов) ➖Go (23гб курсов) ➖Rust (37гб курсов) ➖SQL (41гб курсов) ➖MySQL (21гб курсов) ➖Другое (114гб курсов) Не видео на ютуб, а реальный СЛИВ огромных баз. Проверь сам!🚨

Вопрос с собеса Что означает ключевое слово final для переменных и параметров в Java? Пример🔽
public class Main {
    public static void main(String[] args) {
        final int x = 10;
        // x = 20; // Ошибка компиляции

        printName("Alice");
    }

    static void printName(final String name) {
        // name = "Bob"; // Ошибка: нельзя переназначить final-параметр
        System.out.println("Имя: " + name);
    }
}
Ответ🔽
final означает, что переменная не может быть переназначена после инициализации. Это касается локальных переменных, параметров метода и полей класса. 📌 final не делает объект неизменяемым, а лишь защищает ссылку от повторного присваивания. Сам объект по-прежнему может меняться, если он мутируемый
➡️ Easy Java | #Собес

Не та судьба ➡️ Easy Java | #Мемы
Не та судьба ➡️ Easy Java | #Мемы

Ответ:
Anonymous voting

➡️ Easy Java | #Викторина
➡️ Easy Java | #Викторина

👩‍💻 Что такое ключевое слово 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) {
                // Выполняем работу, пока running == true
            }
            System.out.println("Поток завершён");
        });

        worker.start();
        Thread.sleep(1000);
        running = false; // другой поток увидит это изменение
    }
}
👀 volatile особенно полезен для сигналов завершения, управления флагами и других случаев, где нужна простая синхронизация без полной блокировки.
➡️ Easy Java | #Теория

Ответ:
Anonymous voting

➡️ Easy Java | #Викторина
➡️ Easy Java | #Викторина

Встретились как-то разработчики, аналитики, инженеры данных и DevOps-инженеры… ⚡️Что может их объединять? Главная цель — поня
Встретились как-то разработчики, аналитики, инженеры данных и DevOps-инженеры…  ⚡️Что может их объединять? Главная цель — понять концепцию и архитектуру взаимодействия с Kafka. И нет, это не шутка, это всё курс «Apache Kafka для разработчиков и аналитиков».  ⚡️Уже 30 июня старт углублённого курса на платформе Docker+Postgres. На курсе вы вы изучите архитектуру и поймете логику работы с Kafka на примере бизнес-кейсов, среди которых:  🌐 Финтех  🌐 Репликация таблиц из MySQL в Oracle 🌐Сайт оператора связи с возможностью онлайн-продаж услуг Интернет и ТВ 🌐 Защита от DDoS при обработке API  Занимайте место на курсе прямо сейчас ❗️на 15 000₽ дешевле обычной стоимости, чтобы точно не пропустить старт и стать ещё конкурентоспособнее на рынке IT.  👉🏻Смотреть программу курса

Вопрос с собеса Зачем в Java используется ключевое слово volatile? Пример🔽
public class Main {
    private static volatile boolean running = true;

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

        worker.start();
        Thread.sleep(1000);
        running = false;
    }
}
Ответ🔽
volatile говорит JVM, что переменная может изменяться в других потоках, и запрещает кэшировать её значение. Без volatile поток может "застрять", не заметив изменения переменной. 📌 volatile не делает операции атомарными, но гарантирует видимость изменений между потоками. Используется для флагов, сигналов остановки и простейшей синхронизации
➡️ Easy Java | #Собес

Страшно, очень страшно ➡️ Easy Java | #Мемы
Страшно, очень страшно ➡️ Easy Java | #Мемы

Ответ:
Anonymous voting

➡️ Easy Java | #Викторина
➡️ Easy Java | #Викторина

👩‍💻 Что такое ключевое слово transient в Java и зачем оно нужно? transient — это модификатор, который используется для исключения поля из сериализации. Если объект сериализуется (например, в файл или по сети), поля с transient не будут сохранены.
Это полезно для чувствительных данных (например, паролей), временных кэшей или зависимостей, которые не нужно сохранять и восстанавливать.
• Исключает поле из сериализации • Помогает защитить конфиденциальные данные • Уменьшает размер сериализованных объектов ⚡️ Пример:
import java.io.*;

class User implements Serializable {
    String name;
    transient String password;

    User(String name, String password) {
        this.name = name;
        this.password = password;
    }
}

public class Main {
    public static void main(String[] args) throws Exception {
        User user = new User("admin", "12345");

        // Сериализация
        try (ObjectOutputStream out = new ObjectOutputStream(new FileOutputStream("user.ser"))) {
            out.writeObject(user);
        }

        // Десериализация
        try (ObjectInputStream in = new ObjectInputStream(new FileInputStream("user.ser"))) {
            User loaded = (User) in.readObject();
            System.out.println("Name: " + loaded.name);       // ➔ admin
            System.out.println("Password: " + loaded.password); // ➔ null
        }
    }
}
👀 transient особенно полезен в ситуациях, когда часть данных не должна сохраняться между сессиями — будь то безопасность, производительность или структура бизнес-логики.
➡️ Easy Java | #Теория

Ответ:
Anonymous voting

➡️ Easy Java | #Викторина
➡️ Easy Java | #Викторина

👩‍💻 JPQL: как писать запросы, которые не сломают Hibernate Узнайте, как писать JPQL-запросы, которые ускорят Hibernate в 5
👩‍💻 JPQL: как писать запросы, которые не сломают Hibernate Узнайте, как писать JPQL-запросы, которые ускорят Hibernate в 5 раз, избегая критических ошибок, тормозящих 80% проектов! Приглашаем на открытый урок 🗓 19 июня в 20:00 МСК 🆓 Бесплатно. Урок в рамках старта курса «Java Developer. Professional». 🎯 О чём поговорим: ✅- JPQL vs SQL: почему ваши запросы ломают Hibernate и как их переписать так, чтобы БД не «умирала» под нагрузкой. ✅- Тайные ловушки: антипаттерны JPQL, генерирующие N+1 SELECT и тормозящие приложение, и методы их поиска в коде. ✅- Оптимизация на максимум: как использовать JOIN FETCH, подзапросы и кэширование в JPQL для мгновенного ускорения Hibernate. 👥 Кому будет интересно: Java-разработчикам, использующим Hibernate, системным архитекторам и инженерам по оптимизации производительности. 💡В результате урока вы: Научитесь писать эффективные JPQL-запросы, избегать распространённых ошибок и значительно ускорять работу Hibernate-приложений. 🎁 Дарим промокод, который дает скидку на обучение - JAVA_06 🔗 Регистрация на вебинар: https://otus.pw/x9BZ/ #реклама О рекламодателе

Вопрос с собеса Что произойдёт, если в catch-блоке снова выбросить исключение? Пример🔽
public class Main {
    public static void main(String[] args) {
        try {
            risky();
        } catch (Exception e) {
            System.out.println("Обработка в main: " + e.getMessage());
        }
    }

    static void risky() {
        try {
            throw new RuntimeException("Ошибка в try");
        } catch (RuntimeException e) {
            System.out.println("Поймано: " + e.getMessage());
            throw new IllegalStateException("Повторно выброшено");
        }
    }
}
Ответ🔽
Если в блоке catch выбросить новое исключение, предыдущее "теряется", и наружу выйдет только то, что выбросили повторно. 📌 Чтобы сохранить оригинальное исключение, его можно передать как cause: throw new IllegalStateException("...", e); Это важно для правильной диагностики и трассировки ошибок в продакшене
➡️ Easy Java | #Собес

ᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠ ᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠ ᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠ ᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠ ᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠ ᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠ Айтишники поймут ᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠ ᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠ ᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠ ᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠ ᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠ ᅠᅠᅠᅠᅠᅠ ᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠ