uz
Feedback
Easy Java

Easy Java

Kanalga Telegram’da o‘tish

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

Ko'proq ko'rsatish
5 037
Obunachilar
-224 soatlar
-187 kunlar
-7430 kunlar
Postlar arxiv
➡️ Easy Java | #Викторина
➡️ Easy Java | #Викторина

📖 JEP 502 — Stable Values. Новая фича из Java 25 Stable Values - новая возможность, которая появится в Java 25 — следующем L
📖 JEP 502 — Stable Values. Новая фича из Java 25 Stable Values - новая возможность, которая появится в Java 25 — следующем LTS-релизе, намеченном на сентябрь. ⛓ Читать статью ➡️ Easy Java | #Статья

👩‍💻 Что такое LinkedBlockingQueue в Java и зачем она нужна? LinkedBlockingQueue — это потокобезопасная очередь из пакета java.util.concurrent, реализованная на связном списке.
Очередь блокирует операции добавления, если достигнут лимит, и операции извлечения, если очередь пуста. Это делает её удобным инструментом для синхронизации потоков.
• Поддерживает опциональный лимит размера • Автоматически блокирует при пустой/полной очереди • Идеальна для producer-consumer сценариев ⚡️ Пример:
import java.util.concurrent.*;

public class Main {
    public static void main(String[] args) {
        BlockingQueue<String> queue = new LinkedBlockingQueue<>(2);

        Runnable producer = () -> {
            try {
                queue.put("task-1");
                queue.put("task-2");
                System.out.println("Продюсер добавил задачи");
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        };

        Runnable consumer = () -> {
            try {
                System.out.println("Консьюмер обработал: " + queue.take());
                System.out.println("Консьюмер обработал: " + queue.take());
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        };

        new Thread(producer).start();
        new Thread(consumer).start();
    }
}
👀 LinkedBlockingQueue особенно полезна для построения очередей задач в многопоточных приложениях, ограниченного буферинга и потокобезопасной коммуникации между потоками.
➡️ Easy Java | #Теория

Ответ:
Anonymous voting

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

VK JT = Java + Go! 16 сентября VK приглашает Go‑ и Java‑разработчиков на VK JT Meetup в Санкт-Петербурге. В программе: — Макс
VK JT = Java + Go! 16 сентября VK приглашает Go‑ и Java‑разработчиков на VK JT Meetup в Санкт-Петербурге. В программе: — Максимально практические доклады от техлидов VK о трансформации ВКонтакте, переходе части сервисов на Go и об устройстве и развитии единой видеоплатформы VK — Командные бэкенд-баттлы под менторством опытных разработчиков VK — кейсы, вдохновлённые реальной архитектурой VK Задавайте вопросы экспертам, ищите лучшее командное решение кейса и оставайтесь на афтепати: нетворкинг, фуршет, свободное общение с коллегами. Только офлайн, в офисе VK на Мойке. 🎟 Участие бесплатное, почитать подробнее и зарегистрироваться вы сможете на сайте

Вопрос с собеса Что такое Future в Java и какие у него ограничения? Пример🔽
import java.util.concurrent.*;

public class Main {
    public static void main(String[] args) throws Exception {
        ExecutorService executor = Executors.newSingleThreadExecutor();

        Future<Integer> future = executor.submit(() -> {
            Thread.sleep(1000);
            return 42;
        });

        System.out.println("Результат: " + future.get()); // блокируется, пока не готово
        executor.shutdown();
    }
}
Ответ🔽
Future используется для представления результата асинхронной задачи. С его помощью можно запустить вычисление в отдельном потоке и позже получить результат через get(). Ограничения Future: — нельзя легко комбинировать несколько задач — нет встроенной обработки ошибок — вызов get() блокирует поток, пока результат не готов 📌 Эти ограничения решаются с помощью CompletableFuture, который поддерживает цепочки и реактивный стиль.
➡️ Easy Java | #Собес

➡️ Easy Java | #Мемы
➡️ Easy Java | #Мемы

Ответ:
Anonymous voting

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

📖 Как прокачать Java-приложения без миграции: Axiom JDK Express теперь на JVM 21 Мы знаем, как это бывает: проект на Java 8
📖 Как прокачать Java-приложения без миграции: Axiom JDK Express теперь на JVM 21 Мы знаем, как это бывает: проект на Java 8 живёт уже десятый год, релизить страшно, тестов мало, миграция пугает, а система критичная. И вот бизнес хочет «ускорить и не трогать». ⛓ Читать статью ➡️ Easy Java | #Статья

👩‍💻 Что такое PriorityBlockingQueue в Java и зачем она нужна? PriorityBlockingQueue — это потокобезопасная очередь из java.util.concurrent, которая хранит элементы в отсортированном виде согласно их приоритету.
Она активно используется в задачах, где нужно управлять порядком обработки — например, в планировщиках, системах обработки задач и диспетчерах потоков.
• Элементы автоматически сортируются • Работает в многопоточном режиме • Подходит для диспетчеризации задач по приоритету ⚡️ Пример:
import java.util.concurrent.PriorityBlockingQueue;

public class Main {
    public static void main(String[] args) {
        PriorityBlockingQueue<Integer> queue = new PriorityBlockingQueue<>();

        queue.add(5);
        queue.add(1);
        queue.add(3);

        while (!queue.isEmpty()) {
            System.out.println(queue.poll()); // ➔ 1, 3, 5
        }
    }
}
👀 PriorityBlockingQueue особенно полезна, когда задачи имеют приоритеты — например, обработка срочных запросов, планирование задач или распределение ресурсов.
➡️ Easy Java | #Теория

Ответ:
Anonymous voting

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

Вопрос с собеса Что такое ThreadLocal в Java и когда его стоит использовать? Пример🔽
public class Main {
    private static final ThreadLocal<Integer> threadId =
            ThreadLocal.withInitial(() -> (int) (Math.random() * 1000));

    public static void main(String[] args) {
        Runnable task = () -> 
            System.out.println(Thread.currentThread().getName() + " → " + threadId.get());

        new Thread(task, "Поток-1").start();
        new Thread(task, "Поток-2").start();
        new Thread(task, "Поток-3").start();
    }
}
Ответ🔽
ThreadLocal хранит данные отдельно для каждого потока. Даже если переменная одна, каждый поток получает свою копию. 📌 Применения: — хранение пользовательских сессий в веб-приложениях — уникальные ID запросов в логах — объекты, которые нельзя шарить между потоками (например, SimpleDateFormat). Но важно не забывать вызывать remove(), чтобы избежать утечек памяти в пуле потоков.
➡️ Easy Java | #Собес

➡️ Easy Java | #Мемы
➡️ Easy Java | #Мемы

Ответ:
Anonymous voting

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