#полезное
🛞 Проект JDBG от roger1337 позволяет подключаться к JVM во время выполнения и исследовать внутреннее состояние Java-программы.
Инструмент использует JNI + JVMTI + DLL-инъекцию, поддерживает просмотр классов, байткода, стека вызовов, локальных переменных и экземпляров объектов.
Создан для исследовательских и образовательных целей, под лицензией Apache 2.0.
Гитхаб
👉 Новости 👉 База вопросов
Инструмент использует JNI + JVMTI + DLL-инъекцию, поддерживает просмотр классов, байткода, стека вызовов, локальных переменных и экземпляров объектов.
Создан для исследовательских и образовательных целей, под лицензией Apache 2.0.
Гитхаб
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
#Собес #java
🤔 Зачем используют JVM?
💬 Кратко:
JVM используется для выполнения Java-программ, обеспечивая платформонезависимость и управление памятью. Она позволяет запускать программы на разных операционных системах без необходимости перекомпиляции.
📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
💬 Кратко:
JVM используется для выполнения Java-программ, обеспечивая платформонезависимость и управление памятью. Она позволяет запускать программы на разных операционных системах без необходимости перекомпиляции.
📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
😵 JMH (Java Microbenchmark Harness)
JMH — это мощная библиотека для написания точных микробенчмарков в Java. Она позволяет измерять производительность кода, избегая ошибок, вызванных JIT-компиляцией и оптимизациями JVM.
Документация
👉 Новости 👉 База вопросов
JMH — это мощная библиотека для написания точных микробенчмарков в Java. Она позволяет измерять производительность кода, избегая ошибок, вызванных JIT-компиляцией и оптимизациями JVM.
Документация
Please open Telegram to view this post
VIEW IN TELEGRAM
#Собес #java #threading #postgres
🤔 Middle Java Backend Developer в компанию Тбанк
Техническое собеседование. Осень 2024. Вилка: 300-350к. Опыт в резюме: 5 лет. Было код-ревью, обсуждали теорию и оптимизацию БД.
💬 Вопросы:
- Решение проблемы N+1 для связанных сущностей
- Использование DTO вместо сущностей
- Почему внедрение зависимостей через конструктор (@RequiredArgsConstructor) предпочтительнее, чем @Autowired в поле? Какие проблемы решает?
- Как избежать перегрузки внешнего сервиса при синхронных вызовах из высоконагруженной системы?
- Как сделать вызов внешнего сервиса (например, отправку алерта) надёжным при высокой нагрузке?
👉 Все вопросы из этого собеседования (25)
📣 Хочешь больше собесов?
Подпишись на наш главный канал
🤔 Middle Java Backend Developer в компанию Тбанк
Техническое собеседование. Осень 2024. Вилка: 300-350к. Опыт в резюме: 5 лет. Было код-ревью, обсуждали теорию и оптимизацию БД.
💬 Вопросы:
- Решение проблемы N+1 для связанных сущностей
- Использование DTO вместо сущностей
- Почему внедрение зависимостей через конструктор (@RequiredArgsConstructor) предпочтительнее, чем @Autowired в поле? Какие проблемы решает?
- Как избежать перегрузки внешнего сервиса при синхронных вызовах из высоконагруженной системы?
- Как сделать вызов внешнего сервиса (например, отправку алерта) надёжным при высокой нагрузке?
👉 Все вопросы из этого собеседования (25)
📣 Хочешь больше собесов?
Подпишись на наш главный канал
❤1
#Собес #git_add
🤔 Что делает команда git add?
💬 Кратко:
Команда
📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
🤔 Что делает команда git add?
💬 Кратко:
Команда
git add подготавливает изменения для фиксации. Она добавляет файлы или их изменения в индекс (staging area), чтобы они попали в следующий коммит.📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
#Собес #primitives #object #performance
🤔 Когда стоит использовать примитивы, а когда объекты в Java?
💬 Кратко:
Примитивы используются, когда важны скорость и память, а объекты — когда требуется больше возможностей, таких как методы или поддержка коллекций. Примитивы подходят для простых данных, а объекты полезны для более сложных операций.
📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
🤔 Когда стоит использовать примитивы, а когда объекты в Java?
💬 Кратко:
Примитивы используются, когда важны скорость и память, а объекты — когда требуется больше возможностей, таких как методы или поддержка коллекций. Примитивы подходят для простых данных, а объекты полезны для более сложных операций.
📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
#Собес #oop #java #spring
🤔 Middle Java Backend разработчик в компанию Яндекс (Вертикали)
Техническое собеседование. Лето 2025. Зарплатная вилка: 250-280к. Опыт в резюме: 4.2 года. Проект: Разработка интеграционного слоя (микросервисы на Spring Boot) для системы расчета штрафов и оценки поставщиков для сети гипермаркетов. Был лайвкодинг.
💬 Вопросы:
- Как вы создавали и использовали кастомные запросы в Hibernate?
- Работали ли вы со Spring Profiles? Для чего они используются?
- Как работает Dependency Injection (DI) в Spring? Как вы его использовали?
- Как настроить конфигурацию с использованием аннотаций в ваших Spring-приложениях?
- Как работает аннотация @Transactional в Spring?
👉 Все вопросы из этого собеседования (26)
📣 Хочешь больше собесов?
Подпишись на наш главный канал
🤔 Middle Java Backend разработчик в компанию Яндекс (Вертикали)
Техническое собеседование. Лето 2025. Зарплатная вилка: 250-280к. Опыт в резюме: 4.2 года. Проект: Разработка интеграционного слоя (микросервисы на Spring Boot) для системы расчета штрафов и оценки поставщиков для сети гипермаркетов. Был лайвкодинг.
💬 Вопросы:
- Как вы создавали и использовали кастомные запросы в Hibernate?
- Работали ли вы со Spring Profiles? Для чего они используются?
- Как работает Dependency Injection (DI) в Spring? Как вы его использовали?
- Как настроить конфигурацию с использованием аннотаций в ваших Spring-приложениях?
- Как работает аннотация @Transactional в Spring?
👉 Все вопросы из этого собеседования (26)
📣 Хочешь больше собесов?
Подпишись на наш главный канал
👍2🔥2❤1🤣1
#Собес #git #merge
🤔 Чем git pull отличается от git merge?
💬 Кратко:
📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
🤔 Чем git pull отличается от git merge?
💬 Кратко:
git pull — это команда, которая сразу делает две вещи: загружает изменения с удаленного сервера (git fetch) и затем пытается автоматически объединить их с вашей текущей веткой (git merge). git merge — это только вторая часть этого процесса; она объединяет изменения из другой ветки (например, той, что вы только что загрузили) в вашу текущую.📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
❤3
#book #алгоритмы
📚 Алгоритмы на Java
Книга Седжвика и Уэйна «Алгоритмы на Java» является классическим справочным руководством в котором содержится необходимый объем знаний для программиста в области алгоритмов, накопленных за последние несколько десятилетий.
Перейти к материалу
👉 База вопросов 👉 Новости
📚 Алгоритмы на Java
Книга Седжвика и Уэйна «Алгоритмы на Java» является классическим справочным руководством в котором содержится необходимый объем знаний для программиста в области алгоритмов, накопленных за последние несколько десятилетий.
Перейти к материалу
👉 База вопросов 👉 Новости
#Собес #pojo #class #oop
🤔 Что такое класс POJO? Приведите пример такого класса.
💬 Кратко:
POJO (Plain Old Java Object) — это простой Java-класс без сложных зависимостей. Он используется для хранения данных и не содержит бизнес-логики.
📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
🤔 Что такое класс POJO? Приведите пример такого класса.
💬 Кратко:
POJO (Plain Old Java Object) — это простой Java-класс без сложных зависимостей. Он используется для хранения данных и не содержит бизнес-логики.
📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
❤1
#Собес #java #sql #microservices
🤔 Middle Java Backend разработчик в компанию Билайн
Техническое собеседование. Лето 2024. Вилка: 250к+. Проект: обещанный платеж. Опыт в резюме: 3 года.
💬 Вопросы:
- Какие механизмы аутентификации и авторизации применяются в микросервисной архитектуре (например, через Spring Security)?
- Что такое миграции баз данных и какие инструменты применяются для их реализации?
- Какие существуют подходы к обработке исключений в Java? В чём отличие обработки через try/catch от предварительной проверки условий?
- Какие механизмы асинхронного программирования есть в Java (например, CompletableFuture) и как они применяются?
- В чём преимущества и недостатки написания SQL-запросов вручную по сравнению с использованием ORM (например, Hibernate)?
👉 Все вопросы из этого собеседования (21)
📣 Хочешь больше собесов?
Подпишись на наш главный канал
🤔 Middle Java Backend разработчик в компанию Билайн
Техническое собеседование. Лето 2024. Вилка: 250к+. Проект: обещанный платеж. Опыт в резюме: 3 года.
💬 Вопросы:
- Какие механизмы аутентификации и авторизации применяются в микросервисной архитектуре (например, через Spring Security)?
- Что такое миграции баз данных и какие инструменты применяются для их реализации?
- Какие существуют подходы к обработке исключений в Java? В чём отличие обработки через try/catch от предварительной проверки условий?
- Какие механизмы асинхронного программирования есть в Java (например, CompletableFuture) и как они применяются?
- В чём преимущества и недостатки написания SQL-запросов вручную по сравнению с использованием ORM (например, Hibernate)?
👉 Все вопросы из этого собеседования (21)
📣 Хочешь больше собесов?
Подпишись на наш главный канал
❤2
#course #ооп #алгоритмы
📚 Бесплатный открытый онлайн-курс Хельсинкского университета
Бесплатный открытый онлайн-курс Хельсинкского университета (МООК) по объектно-ориентированному программированию на Java на английском языке. Курс затрагивает основы компьютерного программирования, а также алгоритмы и основы ООП, содержит много упражнений и подходит для обучения с нуля.
Перейти к материалу
👉 База вопросов 👉 Новости
📚 Бесплатный открытый онлайн-курс Хельсинкского университета
Бесплатный открытый онлайн-курс Хельсинкского университета (МООК) по объектно-ориентированному программированию на Java на английском языке. Курс затрагивает основы компьютерного программирования, а также алгоритмы и основы ООП, содержит много упражнений и подходит для обучения с нуля.
Перейти к материалу
👉 База вопросов 👉 Новости
#Собес #lock #concurrency
🤔 Как сделать потокобезопасную структуру данных для блокировки по определённому ID?
💬 Кратко:
Используйте
📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
🤔 Как сделать потокобезопасную структуру данных для блокировки по определённому ID?
💬 Кратко:
Используйте
ConcurrentHashMap с ReentrantLock или synchronized:Map<Long, Lock> locks = new ConcurrentHashMap<>();
Lock lock = locks.computeIfAbsent(id, k -> new ReentrantLock());
lock.lock();
try {
// Критическая секция
} finally {
lock.unlock();
}
📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
❤1
Forwarded from Димкина Визитка
Maven vs npm/pnpm: Битва менеджеров зависимостей
Привет, коллеги! 👋
Сегодня на примере моего стека (Java/Spring и NestJS) сравним менеджеры зависимостей.
Maven (Java)
Как работает:
- Файл конфигурации
- Скачивание зависимостей в локальный кэш (`~/.m2/repository`)
- Жесткая версионность
- Плагины для сборки, тестирования, деплоя
Особенности:
- Стабильность и предсказуемость
- Единые версии зависимостей для всех разработчиков
- Медленная загрузка зависимостей
- Сложная настройка кастомных сборочных процессов
npm/pnpm (NestJS)
Как работает:
- Файл
-
-
-
Особенности:
- Гибкое версионирование (^, ~, *)
- Быстрая установка (особенно в pnpm)
- Риск конфликта версий
-
#### Сравнение производительности
Скорость установки:
-
-
-
Надежность:
-
-
Выводы
Maven выбирают для enterprise-проектов, где важна стабильность. npm/pnpm предпочтительнее для быстрой разработки и CI/CD.
В моем ed-tech проекте использую pnpm за скорость, на работе — Maven за надежность.
А какие инструменты используете вы? Сталкивались с проблемами зависимостей?
#maven #npm #pnpm #java #nestjs #dependencymanagement #ci_cd
Привет, коллеги! 👋
Сегодня на примере моего стека (Java/Spring и NestJS) сравним менеджеры зависимостей.
Maven (Java)
Как работает:
- Файл конфигурации
pom.xml- Скачивание зависимостей в локальный кэш (`~/.m2/repository`)
- Жесткая версионность
- Плагины для сборки, тестирования, деплоя
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<version>3.2.0</version>
</dependency>
Особенности:
- Стабильность и предсказуемость
- Единые версии зависимостей для всех разработчиков
- Медленная загрузка зависимостей
- Сложная настройка кастомных сборочных процессов
npm/pnpm (NestJS)
Как работает:
- Файл
package.json с семантическим версионированием-
node_modules для хранения зависимостей-
npm — стандартный менеджер-
pnpm — альтернатива с жесткими ссылками{
"dependencies": {
"@nestjs/common": "^10.0.0",
"@nestjs/core": "^10.0.0"
}
}Особенности:
- Гибкое версионирование (^, ~, *)
- Быстрая установка (особенно в pnpm)
- Риск конфликта версий
-
package-lock.json`/`pnpm-lock.yaml для фиксации версий#### Сравнение производительности
Скорость установки:
-
pnpm — самый быстрый за счет жестких ссылок-
npm — значительно улучшил скорость в последних версиях-
Maven — самый медленный, но стабильныйНадежность:
-
Maven — строгая версионность минимизирует риски-
npm/pnpm — lock-файлы решают проблему "у меня работает", но требуют дисциплиныВыводы
Maven выбирают для enterprise-проектов, где важна стабильность. npm/pnpm предпочтительнее для быстрой разработки и CI/CD.
В моем ed-tech проекте использую pnpm за скорость, на работе — Maven за надежность.
А какие инструменты используете вы? Сталкивались с проблемами зависимостей?
#maven #npm #pnpm #java #nestjs #dependencymanagement #ci_cd
❤1❤🔥1🔥1🤝1
#Собес #string #stringbuffer #stringbuilder
🤔 Какая разница между String, StringBuffer и StringBuilder?
💬 Кратко:
- String — неизменяемый класс, каждый раз при изменении строки создается новый объект.
- StringBuffer — изменяемый класс, потокобезопасен, но менее эффективен, чем StringBuilder.
- StringBuilder — изменяемый класс, не является потокобезопасным, но более эффективен в однопоточных приложениях.
📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
🤔 Какая разница между String, StringBuffer и StringBuilder?
💬 Кратко:
- String — неизменяемый класс, каждый раз при изменении строки создается новый объект.
- StringBuffer — изменяемый класс, потокобезопасен, но менее эффективен, чем StringBuilder.
- StringBuilder — изменяемый класс, не является потокобезопасным, но более эффективен в однопоточных приложениях.
📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
❤2🔥1🤝1
#Собес #docker_client #docker_host #docker_registry
🤔 Перечислите компоненты Docker.
💬 Кратко:
Docker состоит из трех основных компонентов: Docker Client, Docker Host и Docker Registry. Docker Client взаимодействует с Docker Host, отправляя команды для управления контейнерами, Docker Host управляет контейнерами и их образами, а Docker Registry хранит образы Docker.
📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
🤔 Перечислите компоненты Docker.
💬 Кратко:
Docker состоит из трех основных компонентов: Docker Client, Docker Host и Docker Registry. Docker Client взаимодействует с Docker Host, отправляя команды для управления контейнерами, Docker Host управляет контейнерами и их образами, а Docker Registry хранит образы Docker.
📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
#book #практика
📚 Java Concurrency на практике
Стандарт в разработке. Книга, которая даст вам прочную базу в Java-разработке и поможет изучить непростую тему потокобезопасности. Возможно, книга немного устарела, ей уже много лет. Но погрузиться с ней в основы получится отлично. Ведь книга описывает типичные ошибки написания конкурентных приложений на Java и распространённые ошибки с многопоточностью.
Перейти к материалу
👉 База вопросов 👉 Новости
📚 Java Concurrency на практике
Стандарт в разработке. Книга, которая даст вам прочную базу в Java-разработке и поможет изучить непростую тему потокобезопасности. Возможно, книга немного устарела, ей уже много лет. Но погрузиться с ней в основы получится отлично. Ведь книга описывает типичные ошибки написания конкурентных приложений на Java и распространённые ошибки с многопоточностью.
Перейти к материалу
👉 База вопросов 👉 Новости
❤1
#Собес #docker #java #deploy
🤔 Как осуществляется контейнеризация Java-приложений с помощью Docker?
💬 Кратко:
Java-приложение можно контейнеризовать, создав Dockerfile, в котором указывается базовый образ с JDK или JRE, копируется jar-файл и прописывается команда запуска. Это позволяет запускать приложение изолированно, независимо от настроек окружения. Основные шаги — сборка jar-файла, написание Dockerfile и сборка образа с помощью команды
📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
🤔 Как осуществляется контейнеризация Java-приложений с помощью Docker?
💬 Кратко:
Java-приложение можно контейнеризовать, создав Dockerfile, в котором указывается базовый образ с JDK или JRE, копируется jar-файл и прописывается команда запуска. Это позволяет запускать приложение изолированно, независимо от настроек окружения. Основные шаги — сборка jar-файла, написание Dockerfile и сборка образа с помощью команды
docker build.📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
❤1
#Собес #junit5 #testng #mockito
🤔 Какие фреймворки используются для тестирования на Java?
💬 Кратко:
Основные: JUnit 5 для юнит-тестов, TestNG как альтернатива. Mockito (и его расширения — Spring MockK, MockBean) для создания заглушек и моков. Для интеграционных тестов Spring Boot Test, DBUnit, WireMock для эмуляции HTTP/REST сервисов и Testcontainers для поднятия тестовой инфраструктуры (БД, Kafka, Redis) в Docker.
📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
🤔 Какие фреймворки используются для тестирования на Java?
💬 Кратко:
Основные: JUnit 5 для юнит-тестов, TestNG как альтернатива. Mockito (и его расширения — Spring MockK, MockBean) для создания заглушек и моков. Для интеграционных тестов Spring Boot Test, DBUnit, WireMock для эмуляции HTTP/REST сервисов и Testcontainers для поднятия тестовой инфраструктуры (БД, Kafka, Redis) в Docker.
📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
❤1
Forwarded from Димкина Визитка
ArrayList vs LinkedList: что выбрать на практике? 🎯
Привет, коллеги! 👋
Сегодня начинаем серию постов про вопросы с собеседований! Будем разбирать самые частые темы, которые действительно спрашивают в IT-компаниях.
Первый на очереди — вечный спор: ArrayList vs LinkedList.
Ключевые различия
ArrayList:
- Основан на массиве
- Быстрый доступ по индексу O(1)
- Медленная вставка/удаление в середине O(n)
- Оптимизирован под чтение
LinkedList:
- Двусвязный список
- Медленный доступ по индексу O(n)
- Быстрая вставка/удаление в середине O(1)
- Оптимизирован под модификации
Практический пример
Когда что использовать?
✅ ArrayList:
- Частое чтение по индексу
- Итерация по элементам
- Предсказуемый размер данных
✅ LinkedList:
- Частые вставки/удаления в начале/середине
- Реализация очередей (Queue/Deque)
- Динамически изменяемые данные
Бенчмарк на реальных операциях
Выводы
В 95% случаев выбирайте ArrayList — он эффективнее по памяти и быстрее для большинства операций.
LinkedList используйте только для специфических сценариев с частыми модификациями в середине списка.
Следующий в серии — HashMap vs ConcurrentHashMap! Ждите скоро ✅
А вы часто используете LinkedList в своих проектах? Делитесь опытом в комментариях! 👇
#java #interview #arraylist #linkedlist #collections
Привет, коллеги! 👋
Сегодня начинаем серию постов про вопросы с собеседований! Будем разбирать самые частые темы, которые действительно спрашивают в IT-компаниях.
Первый на очереди — вечный спор: ArrayList vs LinkedList.
Ключевые различия
ArrayList:
- Основан на массиве
- Быстрый доступ по индексу O(1)
- Медленная вставка/удаление в середине O(n)
- Оптимизирован под чтение
LinkedList:
- Двусвязный список
- Медленный доступ по индексу O(n)
- Быстрая вставка/удаление в середине O(1)
- Оптимизирован под модификации
Практический пример
// ArrayList - быстрое чтение
List<String> arrayList = new ArrayList<>();
arrayList.get(1000); // Мгновенно
// LinkedList - быстрое изменение
List<String> linkedList = new LinkedList<>();
linkedList.add(0, "new element"); // Быстро
Когда что использовать?
✅ ArrayList:
- Частое чтение по индексу
- Итерация по элементам
- Предсказуемый размер данных
✅ LinkedList:
- Частые вставки/удаления в начале/середине
- Реализация очередей (Queue/Deque)
- Динамически изменяемые данные
Бенчмарк на реальных операциях
// Вставка в начало
arrayList.add(0, "new"); // O(n) - медленно
linkedList.addFirst("new"); // O(1) - быстро
// Доступ по индексу
arrayList.get(1000); // O(1) - быстро
linkedList.get(1000); // O(n) - медленно
Выводы
В 95% случаев выбирайте ArrayList — он эффективнее по памяти и быстрее для большинства операций.
LinkedList используйте только для специфических сценариев с частыми модификациями в середине списка.
Следующий в серии — HashMap vs ConcurrentHashMap! Ждите скоро ✅
А вы часто используете LinkedList в своих проектах? Делитесь опытом в комментариях! 👇
#java #interview #arraylist #linkedlist #collections
❤5👍1🔥1