Найти в Дзене
15 важнейших вопросов по SQL для Java-разработчика
-- Пример: пользователи и заказы SELECT u.name, o.amount FROM users u LEFT JOIN orders o ON u.id = o.user_id; -- Покажет всех пользователей, даже без заказов Практика в Java: Используйте LEFT JOIN FETCH в JPQL, чтобы избежать N+1 при загрузке связей. Индекс — это структура данных (обычно B-дерево), которая ускоряет поиск по столбцу(ам), подобно оглавлению в книге. Создавайте индекс, если: ⚠️ Не создавайте индексы на маленьких таблицах — полный скан быстрее. EXPLAIN показывает план выполнения запроса — какие индексы используются, сколько строк просканировано, есть ли Seq Scan (полный перебор)...
1 день назад
100 самых важных вопросов на собеседовании Java-разработчика
💡 С Java 11: javac и java поставляются вместе. Нет отдельного JRE — используйте jlink для сборки runtime. ✅ В Java 11 G1 — стандарт. Используйте -XX:+UseG1GC. String a = new String("test"); String b = new String("test"); System.out.println(a == b); // false System.out.println(a.equals(b)); // true ⚠️ Переопределяя equals(), всегда переопределяйте hashCode()! ✅ Используйте StringBuilder в 99% случаев. Проблема: Integer a = 128; Integer b = 128; System.out.println(a == b); // false! (кэш только до 127) 💡 Избегайте == для объектных типов...
1 день назад
План изучения Spring Cloud для ava-разработчика (на базе Java 11)
Цель: не просто «знать Spring Cloud», а уметь проектировать, разворачивать и поддерживать отказоустойчивую, наблюдаемую и безопасную микросервисную архитектуру в облаке. ✅ Уверенное владение: Если это есть — можно начинать. Научиться динамически находить сервисы и распределять нагрузку между их экземплярами. Service Registry -> Eureka Server/Client Запустите 2 экземпляра order-service, зарегистрируйте в Eureka, вызывайте из api-gateway Клиентская балансировка -> Spring Cloud LoadBalancer Используйте @LoadBalanced RestTemplate и WebClient Статическая регистрация -> spring...
1 день назад
CountDownLatch в Java: 2 практичных примера для собеседования
CountDownLatch — это один из самых полезных классов в пакете java.util.concurrent. Он позволяет одному или нескольким потокам ждать, пока другие потоки не завершат определённую работу. На собеседованиях его часто спрашивают, потому что он демонстрирует понимание координации потоков без блокировок. Давайте разберём два реалистичных сценария, которые вы легко сможете объяснить на интервью. CountDownLatch latch = new CountDownLatch(3); // счётчик = 3 ⚠️ Счётчик не может быть увеличен — только уменьшен...
3 дня назад
Кэш первого уровня в Hibernate: как Identity Map спасает вас от дубликатов и лишних запросов
«Кэш первого уровня — это механизм, который помогает Hibernate реализовывать паттерн Identity Map» — звучит как мантра из документации. Но что это значит на практике? Почему это важно? И как это влияет на ваш код? Давайте разберёмся — от теории до байткода. Кэш первого уровня — это встроенный кэш в рамках одного Session (или EntityManager) в Hibernate. Он: Пример: // Один и тот же EntityManager (Session) User user1 = entityManager.find(User.class, 1L); User user2 = entityManager.find(User.class, 1L); System...
3 дня назад
Если нравится — подпишитесь
Так вы не пропустите новые публикации этого канала