uk
Feedback
Easy Java

Easy Java

Відкрити в Telegram

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

Показати більше
5 035
Підписники
-624 години
-237 днів
-7830 день
Архів дописів
Вопрос с собеса Зачем в 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 | #Собес

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

Боится боится ➡️ Easy Java | #Мемы

Ответ:
Anonymous voting

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

Привет. Вот тебе самые топовые каналы по IT! ⚙️ Free Znanija (IT) — Самая огромная коллекция платных курсов, которые можно скачать бесплатно; 👩‍💻 IT библиотека — Самая огромная библиотека книг; 💻 Hacking & InfoSec Base — Крутой блог белого хакера; 🛡 CyberGuard — Всё про ИБ; 👩‍💻 linux administration — Всё про Линукс; 👩‍💻 Программистика — Python, python и ещё раз python; 👩‍💻 GameDev Base — Всё про GameDev; 🖥 Coding Base — Мемы, полезные репозитории и инструменты, а так же софт: А так же крутой блог админа: Rahol Jey | тг вайб

👩‍💻 Что такое enum с логикой в Java и зачем это нужно? В Java enum — это не просто набор констант. Это полноценные классы, которые могут содержать поля, методы и даже переопределять поведение для каждой константы.
Такой подход позволяет удобно инкапсулировать логику, связанную с конкретными значениями перечисления, без использования switch.
• Позволяет добавить поведение к enum • Заменяет switch-логику внутри самого enum • Делает код чище и расширяемее ⚡️ Пример:
enum Operation {
    PLUS {
        public int apply(int a, int b) { return a + b; }
    },
    MINUS {
        public int apply(int a, int b) { return a - b; }
    };

    public abstract int apply(int a, int b);
}

public class Main {
    public static void main(String[] args) {
        int result = Operation.PLUS.apply(3, 5);
        System.out.println(result);  // ➔ 8
    }
}
👀 Такой enum особенно полезен, когда у тебя есть ограниченное количество вариантов с разным поведением — например, арифметические операции, роли пользователей, состояния задач и др.
➡️ Easy Java | #Теория

Ответ:
Anonymous voting

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

Вопрос с собеса В каком порядке инициализируются поля и блоки в Java? Пример🔽
public class InitDemo {
    static {
        System.out.println("Статический блок");
    }

    {
        System.out.println("Нестатический блок");
    }

    int x = printX();

    public InitDemo() {
        System.out.println("Конструктор");
    }

    int printX() {
        System.out.println("Инициализация x");
        return 10;
    }

    public static void main(String[] args) {
        new InitDemo();
    }
}
Ответ🔽
Порядок инициализации: Статические поля и статические блоки — один раз при первом обращении к классу При создании объекта: сначала инициализируются поля в порядке объявления, затем выполняются нестатические блоки, и только потом вызывается конструктор 📌 Это важно при использовании зависимых полей, шаблонов "инициализация-через-блок", и при создании сложных объектов с логикой в полях.
➡️ Easy Java | #Собес

Такое нам надо ➡️ Easy Java | #Мемы
Такое нам надо ➡️ Easy Java | #Мемы