fa
Feedback
Библиотека собеса по Java | вопросы с собеседований

Библиотека собеса по Java | вопросы с собеседований

رفتن به کانال در Telegram

Вопросы с собеседований по Java и ответы на них. По рекламе: @proglib_adv Учиться у нас: https://proglib.io/w/08c603b6 Для обратной связи: @proglibrary_feeedback_bot

نمایش بیشتر
6 495
مشترکین
+124 ساعت
+137 روز
+1530 روز
آرشیو پست ها
Чем отличается агрегация от композиции? Композиция и агрегация — это разновидности отношений «часть-целое» в объектно-ориентированном программировании. 🔹 Композиция — жесткая связь. Если уничтожается целый объект, то уничтожаются и его части. Пример: Двигатель — это часть автомобиля. Если удалить машину, двигатель тоже исчезнет. 🔹 Агрегация — более слабая связь. Объект-часть может существовать независимо от объекта-целого. Пример: Университет и студенты. Университет может закрыться, но студенты продолжат существовать.

В чем разница между передачей параметров по ссылке и по значению? При передаче параметров по значению (pass-by-value) в метод передается копия переменной, а оригинальное значение остается неизменным. При передаче параметров по ссылке (pass-by-reference) передается сам адрес объекта в памяти, а не его копия. Это позволяет изменять объект внутри метода. Однако в Java все параметры передаются по значению (pass-by-value), но важно понимать разницу для примитивов и объектов: ▪️ Для примитивных типов передается копия значения, и изменения внутри метода не влияют на оригинальную переменную. ▪️ Для объектов передается копия ссылки на объект, но сама ссылка неизменяема. Это значит, что можно изменить состояние объекта внутри метода, но нельзя заменить сам объект.

Добро пожаловать на Виртуальную Стажировку Java https://stepik.org/course/210937/promo Это уникальный проект в котором вас жд
Добро пожаловать на Виртуальную Стажировку Java https://stepik.org/course/210937/promo Это уникальный проект в котором вас ждет мир коммерческой разработки на Java. Вы под руководством опытного ментора реализуете проект от начала до деплоя на прод. В процессе работы над проектом вы познакомитесь и изучите современные технологии и библиотеки, применяемые для создания современных Java Backend приложений. Технологии и инструменты, используемые в проекте: - VCS, Git, GitHub - Build Tool Gradle - Spring Framework, Spring Boot - Design patterns: IoC, Builder, DTO, Factory, Strategy, etc. - HTTP, REST, WEB MVC - SQL, MySQL, H2, JDBC, ORM, JPA, Hibernate, Liquibase - JUnit, Mockito - Lombok, Immutable Objects - Logging, metrics - JAR, WAR, Java Web Server, Apache Tomcat - JSON, XML - Containers, Docker - Message Broker, RabbitMQ - и многое другое. Главной целью этого проекта является прививание инженерного мышления. Мы хотим, чтобы вы стали не просто кодерами, а настоящими инженерами, способными с помощью IT-технологий эффективно решать реальные задачи бизнеса. Основные темы проекта: - Архитектура приложения - Дизайн паттерны - Работа с требованиями - Надёжность - Тестирование - Развертывание - Observability (логи, метрики) - Domain Driven Design (DDD) - Clean code, refactoring - Работа с базой данных - Интеграция приложений - и многое другое. Завершив работу над этим проектом, вы получите опыт коммерческой разработки, знания, подкрепленные практикой, и уникальный кейс в свое портфолио. По всем вопросам пишите автору и ментору проекта: - Телеграмм (@javagurulv) - Email (javagurulv@gmail.com) Телеграмм группа проекта Виртуальная Стажировка Java: https://t.me/+mvRhG9YECTlkZjQ0

Вакансии «Библиотеки программиста» — ждем вас в команде! Мы постоянно растем и развиваемся, поэтому создали отдельную страницу, на которой будут размещены наши актуальные вакансии. Сейчас мы ищем: 👉контент-менеджеров для ведения телеграм-каналов Подробности тут Мы предлагаем частичную занятость и полностью удаленный формат работы — можно совмещать с основной и находиться в любом месте🌴 Ждем ваших откликов 👾

Что такое класс, объект и интерфейс? ▪️ Класс — это шаблон (схема), описывающий свойства (поля) и поведение (методы) объектов. Например, Car — класс, описывающий машину. ▪️ Объект — это экземпляр класса, созданный в памяти с помощью оператора new. У него есть конкретные значения свойств. Например, Car myCar = new Car(123, "Red"); — конкретный объект машины с конкретными свойствами. ▪️Интерфейс — это контракт, задающий, какие методы должен реализовать класс, если он этот интерфейс имплементирует. Например, List — интерфейс, а ArrayList — класс, который его реализует.

Что спрашивают на собеседовании у Middle Java-разработчика? Уже завтра, 19 февраля в 19:00 мск — бесплатное открытое собеседо
Что спрашивают на собеседовании у Middle Java-разработчика? Уже завтра, 19 февраля в 19:00 мск — бесплатное открытое собеседование в прямом эфире! Интервьюер Илья Аров с опытом работы в крупных банках задаст реальные вопросы разработчику-добровольцу и разберёт его ответы. В конце — время вопросов ментору из зала. Что узнаешь на эфире: ✅ Какие вопросы задают на собеседованиях и зачем ✅ Как подготовиться, чтобы получить достойный оффер ✅ Чего ждут от кандидатов на Middle Java Запишись на эфир в боте ШОРТКАТ → @shortcut_sh_bot Реклама. ООО "ШОРТКАТ", ИНН: 9731139396, erid: 2VtzqvyUnW9

Что такое Big O? Big O — это асимптотическая нотация, описывающая, как изменяются временные или пространственные затраты алгоритма при росте входных данных. Она показывает верхнюю границу роста (худший случай), позволяя сравнивать эффективность алгоритмов независимо от оборудования или реализации. 🔹 Основные виды сложностиO(1) — постоянное время, не зависит от размера данных.O(log n) — логарифмическое время, быстро сокращает размер задачи (например, бинарный поиск).O(n) — линейное время, пропорционально количеству элементов.O(n log n) — логлинейное, часто встречается в эффективных сортировках (например, Merge Sort).O(n²) — квадратичное, характерно для вложенных циклов (например, сортировка пузырьком).

💬 Обратная связь Понятно, что грейды — это всё от лукавого относительно, но всё же, к какому грейду вы ближе? 🔥 — Senior 👍🏼 — Middle ❤️ — Junior 😁 — Ещё учусь 👾 — Эта разработка мне уже понятна. Я ищу только одного — покоя, умиротворения и вот этой гармонии, от слияния с бесконечно вечным

⚠️ В машинном обучении, как в любви: слишком идеальные предсказания – это подозрительно! Когда модель слишком прилипчива к тр
⚠️ В машинном обучении, как в любви: слишком идеальные предсказания – это подозрительно! Когда модель слишком прилипчива к тренировочным данным, результат оказывается… ну, как в отношениях, когда всё кажется идеальным, но реальность ломает сердце. ❌ Оверфиттинг (Overfitting) – модель так хорошо запомнила тренировочные данные, что на реальных данных начинает путаться. 💔 В любви: «Я выбрал идеального партнёра по профилю, а в жизни выяснилось, что его «идеальность» – всего лишь иллюзия!» ❌ Андерфиттинг (Underfitting) – модель обучена настолько поверхностно, что предсказывает мэтчи случайным образом. 💔 В любви: «Мне нравятся только люди с именем Александр, а всех остальных я даже не замечаю – бедный фильтр!» ❌ Неправильный выбор фичей (Feature Selection Fail) – если модель опирается на неважные признаки, она предсказывает мэтчи хуже случайности. 💔 В любви: «Ты любишь авокадо? Значит, мы созданы друг для друга!» – а потом оказывается, что это вовсе не про важное. 🎯 На вебинаре мы разобрали, как избежать этих ошибок и создать работающую модель для speed dating, которая на самом деле помогает находить любовь! Вчера мы не просто говорили о любви – мы её предсказывали! 🔥 Спасибо всем, кто был с нами и участвовал! 💘 Как же это было? Если ты пропустил вебинар или хочешь пересмотреть запись – просто перейди по [ссылке] и получи видео 😉

Что такое авторизация и аутентификация? ▪️ Аутентификация — процесс проверки подлинности субъекта (пользователя или системы) на основе предоставленных им учетных данных (например, пары логин/пароль, сертификата или токена). Она подтверждает, что субъект является тем, за кого себя выдаёт. ▪️Авторизация — процесс определения прав и привилегий аутентифицированного субъекта в рамках определённой системы или ресурса. Она определяет, какие действия или ресурсы доступны субъекту после успешной аутентификации. Аутентификация устанавливает личность субъекта, а авторизация — его полномочия в системе.

💘 Что такое JSON? 💘 JSON (JavaScript Object Notation) — текстовый формат для хранения и передачи данных, основанный на синтаксисе объектов JavaScript. Он широко применяется для обмена данными между сервером и клиентом в веб-приложениях и API. 👍 Ключевые особенности JSON — Представляет данные в формате пар "ключ-значение". — Поддерживает простые типы: строки, числа, объекты, массивы, булевые значения и null. — Является независимым от языка программирования, но легко парсится в большинстве языков. — Удобен для сериализации и десериализации данных.

🏗 🔨 Как не сломать продакшен: 8 основных паттернов распределенных систем Разработка распределённых систем сопряжена с множе
🏗 🔨 Как не сломать продакшен: 8 основных паттернов распределенных систем Разработка распределённых систем сопряжена с множеством вызовов: от управления состоянием и взаимодействия сервисов до обработки отказов и масштабирования. Чтобы упростить решение этих задач, инженеры используют проверенные временем архитектурные паттерны. В статье рассматриваются ключевые шаблоны, помогающие строить надёжные и эффективные распределённые системы. ➡️ Читать статью 🐸Библиотека devops'a

Самые полезные каналы для программистов в одной подборке! Сохраняйте себе, чтобы не потерять 💾 🔥Для всех Библиотека программиста — новости, статьи, досуг, фундаментальные темы Книги для программистов IT-мемы Proglib Academy — тут мы рассказываем про обучение и курсы Азбука айтишника — здесь мы познаем азы из мира программирования 🤖Про нейросети Библиотека робототехники и беспилотников | Роботы, ИИ, интернет вещей Библиотека нейрозвука | Транскрибация, синтез речи, ИИ-музыка Библиотека нейротекста | ChatGPT, Gemini, Bing Библиотека нейровидео | Sora AI, Runway ML, дипфейки Библиотека нейрокартинок | Midjourney, DALL-E, Stable Diffusion #️⃣C# Книги для шарпистов | C#, .NET, F# Библиотека шарписта — полезные статьи, новости и обучающие материалы по C# Библиотека задач по C# — код, квизы и тесты Библиотека собеса по C# — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования Вакансии по C#, .NET, Unity Вакансии по PHP, Symfony, Laravel ☁️DevOps Библиотека devops’а — полезные статьи, новости и обучающие материалы по DevOps Вакансии по DevOps & SRE Библиотека задач по DevOps — код, квизы и тесты Библиотека собеса по DevOps — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования 🐘PHP Библиотека пхпшника — полезные статьи, новости и обучающие материалы по PHP Вакансии по PHP, Symfony, Laravel Библиотека PHP для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования Библиотека задач по PHP — код, квизы и тесты 🐍Python Библиотека питониста — полезные статьи, новости и обучающие материалы по Python Вакансии по питону, Django, Flask Библиотека Python для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования Библиотека задач по Python — код, квизы и тесты ☕Java Книги для джавистов | Java Библиотека джависта — полезные статьи по Java, новости и обучающие материалы Библиотека Java для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования Библиотека задач по Java — код, квизы и тесты Вакансии для java-разработчиков 👾Data Science Книги для дата сайентистов | Data Science Библиотека Data Science — полезные статьи, новости и обучающие материалы по Data Science Библиотека Data Science для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования Библиотека задач по Data Science — код, квизы и тесты Вакансии по Data Science, анализу данных, аналитике, искусственному интеллекту 🦫Go Книги для Go разработчиков Библиотека Go разработчика — полезные статьи, новости и обучающие материалы по Go Библиотека Go для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования Библиотека задач по Go — код, квизы и тесты Вакансии по Go 🧠C++ Книги для C/C++ разработчиков Библиотека C/C++ разработчика — полезные статьи, новости и обучающие материалы по C++ Библиотека C++ для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования Библиотека задач по C++ — код, квизы и тесты Вакансии по C++ 💻Другие каналы Библиотека фронтендера Библиотека мобильного разработчика Библиотека хакера Библиотека тестировщика Вакансии по фронтенду, джаваскрипт, React, Angular, Vue Вакансии для мобильных разработчиков Вакансии по QA тестированию InfoSec Jobs — вакансии по информационной безопасности Библиотека разработчика игр | Gamedev, Unity, Unreal Engine 📁Чтобы добавить папку с нашими каналами, нажмите 👉сюда👈 Также у нас есть боты: Бот с IT-вакансиями Бот с мероприятиями в сфере IT Мы в других соцсетях: 🔸VK 🔸YouTube 🔸Дзен 🔸Facebook * 🔸Instagram * * Организация Meta запрещена на территории РФ

Как устроен HashMap под капотом? HashMap основан на массиве бакетов (Node<K, V>[] table), где каждый бакет содержит связанный список или дерево. 🔹 Ключевые моменты — Для хеширование ключа вызывается hashCode(), после чего вычисляется индекс массива через (n - 1) & hash, где n – размер массива. — Если несколько ключей попадают в один бакет, создаётся связанный список. Если число элементов в бакете превысит 8, список заменяется на красно-чёрное дерево для ускорения поиска. — Если загрузка (size / capacity) превышает 0.75, размер массива увеличивается в 2 раза, а элементы перераспределяются. — Поиск идёт по бакету: если элементов несколько, перебирается список (или дерево), сравниваются hashCode() и equals(). — HashMap обеспечивает O(1) для операций get() / put(), но при частых коллизиях или неправильных hashCode() может деградировать до O(log n).

Что такое модульное тестирование? Модульное тестирование (Unit Testing) — это тестирование отдельных компонентов системы (обычно методов или классов) в изоляции от остальных частей кода. Тесты должны быть атомарными, независимыми и воспроизводимыми. Хорошее модульное тестирование покрывает не только «счастливые» сценарии, но и граничные случаи и ошибки.

👀 Задача: Разработка сервиса сокращения URL (middle) В компании возникла необходимость сократить длину ссылок в SMS-сообщени
👀 Задача: Разработка сервиса сокращения URL (middle) В компании возникла необходимость сократить длину ссылок в SMS-сообщениях. Ваша задача — спроектировать и реализовать сервис для сокращения URL. ▪️ Условия: 1. Сервис должен принимать полный URL и возвращать его сокращенную версию. 2. При обращении по сокращенному URL должен происходить редирект на исходный полный URL. 3. Сервис должен быть устойчив к коллизиям и обеспечивать уникальность сокращенных ссылок. 4. Желательно предусмотреть возможность задания времени жизни для сокращенных ссылок. 💡 Ключевые моменты: — Выбор подходящего хранилища для соответствия сокращенных и полных URL (например, база данных или key-value хранилище). — Разработка алгоритма генерации уникальных сокращенных ссылок, устойчивого к коллизиям. — Обеспечение быстрого доступа к данным и минимизация задержек при редиректе. ✔️ Решение: Один из подходов — использовать хеширование для генерации уникальных идентификаторов и хранить соответствия в базе данных с индексами для быстрого поиска. Для повышения производительности можно использовать in-memory хранилище. Реализация на картинке 👆🏻

Что такое Spring IoC контейнер? Spring IoC (Inversion of Control) контейнер — это центральный механизм в Spring, который управляет созданием, конфигурацией и жизненным циклом бинов. 🔹 Какие контейнеры бывают 1️⃣ BeanFactory – легковесный контейнер, подходит для простых сценариев. 2️⃣ ApplicationContext – расширенный контейнер с доп. возможностями (событийная модель, интеграция с AOP и т. д.). Зачем нуженОслабляет связность кода (dependency injection).Упрощает управление зависимостями.Позволяет легко заменять реализации компонентов.Облегчает тестирование за счет моков.

Какие методы HTTP используются в RESTful API? ▪️ GET — для получения данных. ▪️ POST — для создания ресурса. ▪️ PUT — для обновления ресурса. ▪️ PATCH — для частичного обновления ресурса. ▪️ DELETE — для удаления ресурса.

Что такое шаблон проектирования? Шаблон проектирования (Design Pattern) — это типовое решение распространенной проблемы при проектировании ПО. Это не готовый код, а общее руководство по организации структуры кода, которое помогает сделать его более гибким, понятным и поддерживаемым. 🔹 Шаблоны проектирования делятся на три группы: Порождающие – управляют созданием объектов (например, Singleton, Factory, Builder). Структурные – определяют отношения между классами и объектами (например, Adapter, Decorator, Proxy). Поведенческие – описывают взаимодействие между объектами (например, Observer, Strategy, Command). Если стоит написать посты по каждому паттерну → 👍🏼