Forwarded from Библиотека собеса по Java | вопросы с собеседований
Dependency Injection (внедрение зависимостей) — это один из основных паттернов проектирования в программировании, который позволяет объектам получать свои зависимости извне, вместо того чтобы создавать их внутри себя.
DI способствует:
— Слабой связанности между компонентами.
— Легкости тестирования за счет использования mock-объектов.
— Повторному использованию кода.
Основные способы внедрения зависимостей:
🔹 Constructor Injection
Зависимости передаются через конструктор.
public class Service {
    private final Repository repository;
    public Service(Repository repository) {
        this.repository = repository;
    }
}🔹Setter Injection
Зависимости передаются через сеттеры.
public class Service {
    private Repository repository;
    public void setRepository(Repository repository) {
        this.repository = repository;
    }
}🔹 Field Injection
Зависимости внедряются напрямую в поля класса (обычно с помощью фреймворков, например Spring).
@Component
public class Service {
@Autowired
private Repository repository;
}
Please open Telegram to view this post
    VIEW IN TELEGRAM
  👍11🔥5❤2
  🎄 Начни 2025-й с апгрейдом навыков, 
которые откроют двери в мир IT!
Ты можешь собрать свой персональный план обучения с помощью нашего новогоднего конструктора. Это шанс не просто начать год с полезных знаний, но и сделать инвестицию в своё будущее, которая окупится многократно.
🔗 Собери свой план и начни путь в IT
Почему это выгодно?
📚 Несколько программ по цене одной — максимальная эффективность: учишься сразу тому, что действительно нужно.
💾 Бессрочный доступ — все материалы всегда под рукой, чтобы учиться в своём темпе.
💸 Знания, которые окупятся — навыки, востребованные в любой точке мира.
Какие навыки ты можешь прокачать?
💡 Математика для Data Science + Алгоритмы и структуры данных
— Подготовка к собеседованиям в FAANG и поступлению в ШАД. Решай сложные задачи, работай с данными и моделями на профессиональном уровне.
💡 Алгоритмы и структуры данных + ML
— Улучшай своё алгоритмическое мышление и изучай базовые методы машинного обучения, чтобы создавать интеллектуальные приложения.
💡 Frontend Basic + Базовые модели ML
— Построй свою первую веб-страницу и погрузись в мир ML: от нейросетей до ML-бустинга.
💡 Архитектуры и шаблоны проектирования + Математика для Data Science
— Развивай аналитическое мышление и учись проектировать устойчивые системы.
💡 Алгоритмы и структуры данных + Frontend Basic
— Получи полный набор навыков: от оптимизации алгоритмов до создания современных веб-приложений.
Не упусти шанс сделать шаг в будущее! Новый год — это время обновлений, и твоя карьера может стать одним из них.
🔗 Составь свой IT-маршрут сейчас или выбери курс по новогодней скидке
которые откроют двери в мир IT!
Ты можешь собрать свой персональный план обучения с помощью нашего новогоднего конструктора. Это шанс не просто начать год с полезных знаний, но и сделать инвестицию в своё будущее, которая окупится многократно.
🔗 Собери свой план и начни путь в IT
Почему это выгодно?
📚 Несколько программ по цене одной — максимальная эффективность: учишься сразу тому, что действительно нужно.
💾 Бессрочный доступ — все материалы всегда под рукой, чтобы учиться в своём темпе.
💸 Знания, которые окупятся — навыки, востребованные в любой точке мира.
Какие навыки ты можешь прокачать?
💡 Математика для Data Science + Алгоритмы и структуры данных
— Подготовка к собеседованиям в FAANG и поступлению в ШАД. Решай сложные задачи, работай с данными и моделями на профессиональном уровне.
💡 Алгоритмы и структуры данных + ML
— Улучшай своё алгоритмическое мышление и изучай базовые методы машинного обучения, чтобы создавать интеллектуальные приложения.
💡 Frontend Basic + Базовые модели ML
— Построй свою первую веб-страницу и погрузись в мир ML: от нейросетей до ML-бустинга.
💡 Архитектуры и шаблоны проектирования + Математика для Data Science
— Развивай аналитическое мышление и учись проектировать устойчивые системы.
💡 Алгоритмы и структуры данных + Frontend Basic
— Получи полный набор навыков: от оптимизации алгоритмов до создания современных веб-приложений.
Не упусти шанс сделать шаг в будущее! Новый год — это время обновлений, и твоя карьера может стать одним из них.
🔗 Составь свой IT-маршрут сейчас или выбери курс по новогодней скидке
👍2🔥1
  Forwarded from Java jobs — вакансии для java-разработчиков
#дайджест #Javadevjob
Вакансии Java разработчиков уровня Junior
▪️ Junior Java Developer
Удалёнка / Офис (Москва, Новосибирск), Динамика
Подробнее
▪️ Junior Java / C++ Developer
Офис (Новосибирск) / Удалёнка, Flashphoner
Подробнее
Вакансии Java разработчиков уровня Middle
▪️ Backend разработчик Java (Middle)
Удалёнка (РФ) / Гибрид (Екатеринбург), Ренью
Подробнее
▪️ Middle+ Java developer (Риски)
Гибрид (Москва), СберКорус
Подробнее
Вакансии Java разработчиков уровня Senior
▪️ Senior Java developer
Гибрид (Санкт-Петербург), KMS Lighthouse
Подробнее
▪️ Java разработчик
Удалёнка / Офис (Москва), Синхро
Подробнее
Понравились вакансии?
❤️ — да
🤔 — нет
  
  Вакансии Java разработчиков уровня Junior
▪️ Junior Java Developer
Удалёнка / Офис (Москва, Новосибирск), Динамика
Подробнее
▪️ Junior Java / C++ Developer
Офис (Новосибирск) / Удалёнка, Flashphoner
Подробнее
Вакансии Java разработчиков уровня Middle
▪️ Backend разработчик Java (Middle)
Удалёнка (РФ) / Гибрид (Екатеринбург), Ренью
Подробнее
▪️ Middle+ Java developer (Риски)
Гибрид (Москва), СберКорус
Подробнее
Вакансии Java разработчиков уровня Senior
▪️ Senior Java developer
Гибрид (Санкт-Петербург), KMS Lighthouse
Подробнее
▪️ Java разработчик
Удалёнка / Офис (Москва), Синхро
Подробнее
Понравились вакансии?
❤️ — да
🤔 — нет
novosibirsk.hh.ru
  
  Вакансия Junior Java Developer в Новосибирске, работа в компании Динамика (вакансия в архиве c 9 февраля 2025)
  Зарплата: от 65000 до 110000 ₽ за месяц. Новосибирск. Требуемый опыт: 1–3 года. Полная занятость. Дата публикации: 06.02.2025.
❤6👍2🔥2
  Composite — это структурный паттерн, который позволяет организовать объекты в древовидные структуры для представления иерархий "часть-целое". Он позволяет клиентам единообразно работать как с отдельными объектами, так и с их группами.
Использование:
🔹 Когда нужно представить иерархическую структуру объектов, например, дерево файловой системы или меню на сайте.
🔹 Когда клиентский код должен одинаково работать как с отдельными объектами, так и с их контейнерами.
🔹 Когда необходимо удобно добавлять новые виды компонентов в систему, поддерживая единый интерфейс.
Преимущества:
Недостатки:
Please open Telegram to view this post
    VIEW IN TELEGRAM
  👍10👏5🔥4❤🔥1❤1
  Давайте познакомимся немного ближе.
Будем признательны за ваши ответы на несколько вопросов👇🏻
Please open Telegram to view this post
    VIEW IN TELEGRAM
  ❤4🔥2😁2
  😁8❤1🔥1👾1
  Ваш возраст:
  Anonymous Poll
    4%
    менее 18 лет
      
    20%
    18-24 года
      
    35%
    25-34 года
      
    29%
    35-44 года
      
    9%
    45-54 года
      
    2%
    55-64 года
      
    1%
    65 лет и старше
      
    😁7👍1🔥1💯1
  В какой стране вы живете последние 3 месяца?
  Anonymous Poll
    67%
    Россия
      
    5%
    Украина
      
    7%
    Беларусь
      
    5%
    Казахстан
      
    1%
    Польша
      
    1%
    Кыргызстан
      
    3%
    Узбекистан
      
    1%
    США
      
    1%
    Грузия
      
    9%
    Другое
      
    😁6👍2🔥1🥱1
  Какой у вас коммерческий опыт работы в IT?
  Anonymous Poll
    26%
    Нет опыта
      
    9%
    До 1 года
      
    18%
    1–3 года включительно
      
    22%
    3–6 лет включительно
      
    26%
    Более 6 лет
      
    😁6❤2👍1🔥1🎉1
  Пишете с использованием Stream API, но не всё до конца понятно? Или пытаетесь разобраться, но остаются вопросы?
Недавно наткнулся на хорошую статью, где доступно объясняются базовые и продвинутые возможности Stream API. Автор делится примерами, показывает, как избегать ошибок, и раскрывает, почему Stream API — это не просто «модный синтаксис», а реальное улучшение в работе с данными.
Коротко, понятно и по делу.
Please open Telegram to view this post
    VIEW IN TELEGRAM
  👍10🔥5👏2
  2-ая часть вопросов. Это точно последняя. :)
Будем признательны за ваши ответы 👇🏻
Please open Telegram to view this post
    VIEW IN TELEGRAM
  👍3❤1😁1
  В какой компании вы работаете?
  Anonymous Poll
    9%
    Стартап
      
    25%
    Средний бизнес
      
    57%
    Крупная корпорация
      
    9%
    Фриланс
      
    😁7👍3😢1
  Ваш доход в месяц после вычета налогов:
  Anonymous Poll
    16%
    до 500$
      
    7%
    от 501$ до 800$
      
    10%
    от 801$ до 1100$
      
    18%
    от 1101$ до 2000$
      
    20%
    от 2001$ до 3000$
      
    13%
    от 3001$ до 4000$
      
    6%
    от 4001$ до 5000$
      
    4%
    от 5001$ до 6000$
      
    7%
    от 6001$
      
    🤔9😁6👍2
  На каком языке вы пишете больше всего?
  Anonymous Poll
    3%
    Python
      
    1%
    Go
      
    81%
    Java
      
    1%
    JavaScript
      
    1%
    TypeScript
      
    2%
    C/C++
      
    1%
    C#
      
    4%
    Swift/Kotlin
      
    1%
    PHP
      
    5%
    Другое
      
    😁12👍2🤔2🥰1
  Какая у вас специализация в IT?
  Anonymous Poll
    69%
    Backend
      
    1%
    Frontend
      
    9%
    Fullstack
      
    1%
    Mobile
      
    1%
    Desktop
      
    7%
    QA
      
    2%
    DevOps/Sysadmin
      
    0%
    Data Science
      
    1%
    Кибербезопасность
      
    7%
    Другое
      
    😁7🔥2😢1💯1
  Какой грейд у вас на работе?
  Anonymous Poll
    9%
    Стажер
      
    15%
    Джуниор
      
    30%
    Миддл
      
    22%
    Сеньор
      
    8%
    Тимлид
      
    2%
    Архитектор
      
    1%
    СТО
      
    11%
    Я не айтишник
      
    😁4🤔2👍1
  Какой контент вас больше привлекает в ТГ-каналах?
  Anonymous Poll
    34%
    Полезные советы и лайфхаки
      
    52%
    Обучающие материалы
      
    5%
    Развлекательный контент
      
    6%
    Новости и аналитика
      
    1%
    Истории компаний
      
    1%
    Другой (напишу в комментариях)
      
    😁5🤔3🔥2💯1
  Аннотация @EventListener позволяет подписываться на события в приложении. Это мощный инструмент для создания слабосвязанных компонентов: один класс публикует событие, а другой реагирует на него, ничего о нем не зная.
Spring предоставляет встроенный механизм событий. События — это просто Java-объекты, наследующие ApplicationEvent (начиная с Spring 4.2. наследование стало необязательным).
Публикуете событие через ApplicationEventPublisher:
@Component
public class EventPublisher {
private final ApplicationEventPublisher publisher;
public EventPublisher(ApplicationEventPublisher publisher) {
this.publisher = publisher;
}
public void publishEvent(String message) {
System.out.println("Publishing event: " + message);
publisher.publishEvent(new MyEvent(this, message));
}
}
public class MyEvent {
private final String message;
public MyEvent(Object source, String message) {
super();
this.message = message;
}
public String getMessage() {
return message;
}
}
С помощью @EventListener можно подписаться на любое событие:
@Component
public class EventListenerExample {
@EventListener
public void handleEvent(MyEvent event) {
System.out.println("Event received: " + event.getMessage());
}
}
— Слабая связность: Публикатор не знает ничего о слушателях, и наоборот.
— Асинхронность: Можно легко сделать обработку событий асинхронной с помощью @Async.
🧐 Где это использовать?
— Аудит и логирование
Отправляйте события о ключевых действиях пользователя в отдельный аудит-лог.
— Обработка бизнес-логики
Делегируйте сложную обработку событий (например, отправку писем) в отдельные компоненты.
— Модульная архитектура
Сделайте ваши модули независимыми, обмениваясь событиями вместо вызовов методов.
Please open Telegram to view this post
    VIEW IN TELEGRAM
  2👍25🔥6❤3🎉1
  Forwarded from hahacker_news
  
📚 Java Secrets: High performance and scalability (2024) 
✍️ Автор: Alex Harrison
📃 Страниц: 415
Рассмотрены тонкости архитектуры Java, управления памятью, работы с потоками и методов оптимизации производительности. Это руководство охватывает такие ключевые темы, как внутреннее устройство JVM, сборка мусора и параллельное программирование, предлагая лучшие практики и реальные примеры для создания высокопроизводительных Java-приложений. В нем рассматриваются современные фреймворки, реактивное программирование, архитектура микросервисов и облачная нативная разработка. В продвинутых главах обсуждаются распределенные системы, оптимизация баз данных и безопасность приложений, освещаются методы обеспечения отказоустойчивости, балансировки нагрузки и безопасного кодирования. В книге рассматриваются такие будущие тенденции, как Project Loom, GraalVM и передовые инструменты наблюдаемости, что позволяет разработчикам создавать масштабируемые, надежные и эффективные Java-системы.
✍️ Автор: Alex Harrison
📃 Страниц: 415
Рассмотрены тонкости архитектуры Java, управления памятью, работы с потоками и методов оптимизации производительности. Это руководство охватывает такие ключевые темы, как внутреннее устройство JVM, сборка мусора и параллельное программирование, предлагая лучшие практики и реальные примеры для создания высокопроизводительных Java-приложений. В нем рассматриваются современные фреймворки, реактивное программирование, архитектура микросервисов и облачная нативная разработка. В продвинутых главах обсуждаются распределенные системы, оптимизация баз данных и безопасность приложений, освещаются методы обеспечения отказоустойчивости, балансировки нагрузки и безопасного кодирования. В книге рассматриваются такие будущие тенденции, как Project Loom, GraalVM и передовые инструменты наблюдаемости, что позволяет разработчикам создавать масштабируемые, надежные и эффективные Java-системы.
👍9❤3🔥2😁1
  