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

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

Відкрити в Telegram

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

Показати більше
6 494
Підписники
+324 години
+147 днів
+1930 день
Архів дописів
Что означает буква "L" в SOLID? "L" — это принцип Liskov Substitution Principle (Принцип подстановки Барбары Лисков). Объекты должны быть заменяемыми экземплярами своих подтипов без изменения корректности программы. Это значит, что подклассы должны сохранять поведение родительских классов и не нарушать их контракт. 🧑‍💻 Пример: Если класс Bird имеет метод fly(), и у нас есть подкласс Penguin, который не умеет летать, то создание такого подкласса нарушит принцип подстановки, так как он не поддерживает поведение родителя.

🤔 Основы математики в Machine Learning / Deep Learning 🗓 16 октября мы разберем ряд Тейлора, собственные векторы и другие к
🤔 Основы математики в Machine Learning / Deep Learning 🗓 16 октября мы разберем ряд Тейлора, собственные векторы и другие ключевые понятия в ML – https://proglib.io/w/c05ae0de Спикер: Иван Потапов – Staff Machine Learning Engineer at ShareChat. Руководит командой, отвечающей за качество рекомендаций, и имеет 8-летний опыт в сфере машинного обучения. 😮 Что будем обсуждать: – Теорию вероятностей: случайные величины, математическое ожидание и дисперсию. – Линейную алгебру: векторы, матрицы, собственные векторы и собственные значения. – Математический анализ: производные и разложение функций в ряд Тейлора. 👨‍💻 А еще после каждого блока вас ждет практика в применении полученных знаний. 🎯 Почему это важно? Понимание математических основ помогает глубже разобраться в работающих под капотом алгоритмах ML/DL и эффективно применять их на практике. Присоединяйтесь к нам и совершенствуйте свои навыки в машинном обучении! 📌 Регистрация по ссылке: https://proglib.io/w/c05ae0de

Самые полезные каналы для программистов в одной подборке! Сохраняйте себе, чтобы не потерять 💾 🔥Для всех Библиотека программиста — новости, статьи, досуг, фундаментальные темы Книги для программистов 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 запрещена на территории РФ

🎭 Двойная игра в Power BI: как совмещать роли разработчика и администратора Когда твой руководитель говорит: «А теперь ты ещ
🎭 Двойная игра в Power BI: как совмещать роли разработчика и администратора Когда твой руководитель говорит: «А теперь ты еще и администратор сервера Power BI». Гид по выживанию для разработчика, внезапно ставшего многостаночником. Читать статью

👀 Задачи с собеседований: Сортировка пузырьком (jun) - Расскажите про сортировку пузырьком и реализуйте её. Это простой алго
👀 Задачи с собеседований: Сортировка пузырьком (jun) - Расскажите про сортировку пузырьком и реализуйте её. Это простой алгоритм сортировки, который использует два вложенных цикла. Внешний цикл отвечает за количество проходов по массиву, а внутренний сравнивает соседние элементы. Если текущий элемент больше следующего, они меняются местами. Так продолжается, пока массив не будет отсортирован. 💡 Ключевые моменты: ▪️ Худший случай: O(n^2) ▪️ Используется строго для небольших наборов данных. Реализация на картинке 👆🏻

В чем заключается контракт между методами equals() и hashCode()? - Если два объекта равны согласно методу equals(), то их хэш-коды должны быть одинаковыми. - Если два объекта имеют одинаковый хэш-код, это не гарантирует, что они равны по equals(). Однако это ускоряет поиск в коллекциях на основе хэширования. 🔹 Если нарушить этот контракт, возникают такие проблемы: - Проблемы с коллекциями: Например, в HashMap и HashSet объекты могут "потеряться", их поиск будет некорректен, и даже возможно дублирование объектов, которые считаются равными. - Некорректная работа методов: Методы, такие как contains(), remove(), или put() в коллекциях на основе хэширования, могут работать с ошибками, что приведет к потере данных или их некорректной обработке.

❓ Что означает буква "I" в SOLID? "I" — это принцип Interface Segregation Principle (Принцип разделения интерфейсов). Клиенты
Что означает буква "I" в SOLID? "I" — это принцип Interface Segregation Principle (Принцип разделения интерфейсов). Клиенты не должны зависеть от интерфейсов, которые они не используют. Лучше создавать несколько узкоспециализированных интерфейсов, чем один общий интерфейс с множеством методов. 🧑‍💻 Пример: Вместо одного интерфейса Machine, который включает методы print(), scan(), и fax(), лучше создать три отдельных интерфейса для каждого действия, чтобы класс, который реализует только функцию печати, не был вынужден реализовывать ненужные ему методы.

В каком случае блок finally не выполнится? Блок finally почти всегда выполняется, но есть несколько исключений, когда его выполнение будет пропущено: 🔹 Выход из программы с помощью System.exit(int) — если программа завершится через вызов этого метода до выполнения блока finally, то код в этом блоке выполнен не будет, так как JVM завершит работу немедленно. 🔹 Физическое завершение работы JVM — если произойдет сбой системы, отключение питания, завершение работы JVM или фатальная ошибка, блок finally не будет выполнен. 🔹 Бесконечный цикл в блоке try или catch — если в этих блоках находится бесконечный цикл, который никогда не завершится, блок finally не сможет быть выполнен. В нормальных условиях блок finally всегда выполняется, даже если в блоках try или catch произошла ошибка.

Вы Java разработчик и хотите делиться знаниями с другими? Станьте автором курса в Яндекс Практикуме — создавайте и улучшайте
Вы Java разработчик и хотите делиться знаниями с другими? Станьте автором курса в Яндекс Практикуме — создавайте и улучшайте образовательный контент и влияйте на формирование индустрии. Что делать? Помимо теории нужно будет придумывать квизы, тесты, практические задания, дополняя это примерами из вашей профессиональной жизни. Почему вам стоит стать автором курса? - Помощь тысячам людей получить востребованную IT-профессию. - Прокачка себя и подтверждение своей экспертности. - Дополнительный доход на удалёнке с гибким графиком. Посмотреть детали и откликнуться

🧑‍💻 Статьи для IT: как объяснять и распространять значимые идеи Напоминаем, что у нас есть бесплатный курс для всех, кто хо
🧑‍💻 Статьи для IT: как объяснять и распространять значимые идеи Напоминаем, что у нас есть бесплатный курс для всех, кто хочет научиться интересно писать — о программировании и в целом. Что: семь модулей, посвященных написанию, редактированию, иллюстрированию и распространению публикаций. Для кого: для авторов, копирайтеров и просто программистов, которые хотят научиться интересно рассказывать о своих проектах. 👉Материалы регулярно дополняются, обновляются и корректируются. А еще мы отвечаем на все учебные вопросы в комментариях курса.

Тестовое собеседование на Middle Java-разработчика в среду Заходи завтра, 9 октября в 19:00 по мск на открытое онлайн-собесед
Тестовое собеседование на Middle Java-разработчика в среду Заходи завтра, 9 октября в 19:00 по мск на открытое онлайн-собеседование от ШОРТКАТ, чтобы узнать: Чего ждут от кандидатов на Middle позиции в Java-разработке Какие вопросы задают на интервью и зачем Как подготовиться к собесу, чтобы получить оффер Интервью проведёт Роман Половинцев, ex. TeamLead в Сбере. Чтобы записаться на эфир, переходи в бот → @shortcut_sh_bot Реклама. ООО "ШОРТКАТ", ИНН: 9731139396, erid: 2VtzqwHKZfG

Что такое сигнатура метода? ❌ Неверно: это его имя, возвращаемый тип, модификаторы доступа и список параметров. ✔️ Правильный ответ: Сигнатура метода — это комбинация его имени и списка параметров (типов и порядка). Она используется для уникальной идентификации методов в классе. Важно, что возвращаемый тип и модификаторы доступа не являются частью сигнатуры.

👋🏭 От Hello World до Enterprise: 15 Java-проектов для начинающих и профессионалов Ищете интересные идеи для Java-проектов?
👋🏭 От Hello World до Enterprise: 15 Java-проектов для начинающих и профессионалов Ищете интересные идеи для Java-проектов? Можно начать с простых вещей, вроде создания чат-бота или текстового редактора, а затем усложнить задачи, взяв на себя разработку маркетплейса или системы онлайн-обучения. Эти идеи охватывают различные технологии, от баз данных и многопоточности до веб-сервисов и микросервисов. Воплощая их, вы сможете существенно улучшить свои навыки и добавить в портфолио проекты, которые привлекут внимание работодателей. 🔗 Ссылка на статью

ℹ️ Как устроен под капотом TreeSet? TreeSet — это коллекция, которая хранит уникальные элементы и автоматически сортирует их в натуральном порядке или по заданному Comparator. Под капотом используется самобалансирующееся красно-черное дерево, которое гарантирует, что добавление, удаление и поиск элементов будут происходить за логарифмическое время. В отличие от HashSet, TreeSet не только предотвращает дублирование элементов, но и поддерживает их упорядоченность. 🔹 Структура TreeSet В основе TreeSet лежит красно-черное дерево — структура данных, которая поддерживает балансировку после каждой операции вставки или удаления. Т.е. дерево автоматически регулирует свою форму при каждом добавлении или удалении элемента, чтобы предотвратить чрезмерное «перерастание» дерева в одну сторону. Элементы в TreeSet хранятся в виде узлов дерева: ▪️ Каждый узел содержит ключ и ссылки на дочерние узлы ▪️ Дерево автоматически сбалансировано — максимальная глубина любого пути от корня к листу в два раза меньше самой длинной возможной ▪️ Элементы располагаются в отсортированном порядке по мере добавления, что гарантирует логарифмическую сложность поиска и вставки 🔹 Производительность ▪️ Добавление: При добавлении элемента дерево балансируется, чтобы соблюсти свойства красно-черного дерева. Это обеспечивает сложность добавления O(log n). ▪️ Удаление: Работает схожим образом — дерево ребалансируется, а ссылки между узлами корректируются. Удаление также выполняется за O(log n). ▪️ Поиск: Благодаря сбалансированной структуре, поиск элемента в TreeSet занимает O(log n), что делает его быстрее, чем линейный поиск в несбалансированных структурах. 🔹 Использование памяти Каждый узел в TreeSet хранит не только ключ, но и ссылки на дочерние узлы (левый и правый). Это создает определенные накладные расходы по памяти, ведь для каждого элемента требуется больше памяти, чем, например, в HashSet, где хранятся лишь сами элементы. 🔹 Преимущества и недостатки ▪️ Преимущества: - Гарантированный порядок элементов: В отличие от HashSet, TreeSet хранит элементы в отсортированном виде. Это важно, если нужно быстро получать минимальные, максимальные или средние значения без дополнительной сортировки. Также можно извлекать диапазоны значений с помощью методов вроде subSet(). - Навигационные методы: TreeSet предоставляет мощные инструменты для навигации по набору, такие как методы для поиска ближайших элементов (floor(), ceiling()), что делает его удобным для задач с диапазонами данных. ▪️ Недостатки: - Производительность: Операции в TreeSet медленнее, чем в HashSet. - Большие накладные расходы по памяти: Для каждого элемента TreeSet требуется хранить дополнительные ссылки на дочерние узлы, что увеличивает потребление памяти.

Что означает буква "S" в SOLID? "S" — это Single Responsibility Principle (Принцип единственной ответственности). Каждый класс или модуль должен иметь одну и только одну причину для изменения, то есть отвечать только за одну задачу. 🧑‍💻 Пример: Класс, который отвечает за обработку данных, не должен также отвечать за их отображение или сохранение. Нарушение этого принципа может привести к усложнению кода и трудностям с поддержкой.

Что такое инкапсуляция? ❌ Неверно: Это когда все поля класса объявляются приватными и создаются геттеры и сеттеры. ✔️ Правильный ответ: Инкапсуляция — это принцип ООП, при котором детали реализации скрываются от внешнего мира, предоставляя доступ к данным только через публичные методы (геттеры/сеттеры или другие). Она позволяет защитить данные от некорректных изменений и обеспечить контролируемый доступ к ним.

Можно ли наследоваться от класса String? Нет, наследоваться от класса String нельзя. Это связано с тем, что класс String объявлен как final, а это значит, что он не может быть расширен или изменен посредством наследования.

Какой код компилируется быстрее: код с комментариями или без? Комментарии никак не влияют на скорость компиляции. Компилятор игнорирует комментарии при сборке программы, так как они предназначены только для разработчиков. В процессе компиляции комментарии удаляются, и на итоговое скомпилированное приложение они не оказывают никакого влияния. Документация.

Чем отличается переопределение от перегрузки? И переопределение (override), и перегрузка (overload) — это формы полиморфизма в Java, но они работают по-разному. 🔹 Переопределение происходит, когда подкласс изменяет реализацию метода, унаследованного от родительского класса. Метод должен иметь ту же сигнатуру (имя, параметры и возвращаемый тип). Это форма динамического полиморфизма, потому что выбор метода происходит во время выполнения. 🔹 Перегрузка — это создание нескольких методов с одинаковым именем, но с разными параметрами (их типами, количеством или порядком). Это форма статического полиморфизма, так как выбор метода происходит на этапе компиляции. ⚠️ Смена только возвращаемого типа метода не считается перегрузкой. Если у методов совпадают имя и параметры, но различаются только возвращаемые типы, это вызовет ошибку компиляции.

С помощью чего создаётся новый объект? ❌ Неверно: Конструктор. ✔️ Правильный ответ: Объекты создаются с помощью оператора new, конструктор лишь инициализирует объект после его создания.