Библиотека собеса по Java | вопросы с собеседований
6.35K subscribers
355 photos
4 videos
177 links
Вопросы с собеседований по Java и ответы на них.

По рекламе: @proglib_adv

Учиться у нас: https://proglib.io/w/08c603b6

Работать у нас: https://job.proglib.io/

Наши каналы: https://yangx.top/proglibrary/9197
加入频道
😧 58% IT-специалистов страдают: психология успеха и борьба с синдромом самозванца

Синдром самозванца — не просто модный термин, а реальная проблема, с которой сталкиваются даже опытные разработчики. Почему так происходит и как с этим бороться? Разбираемся в причинах «стандартной болезни айтишников»

➡️ Читайте в статье

Спойлер: дело не в навыках, а в психологии успеха

🐸Библиотека шарписта
Please open Telegram to view this post
VIEW IN TELEGRAM
Что такое CORS-атака?

CORS-атака (Cross-Origin Resource Sharing attack) — это эксплуатация неправильных настроек CORS, позволяющая злоумышленнику получить доступ к защищённым данным с другого домена.

⚙️ Как это работает

Браузеры ограничивают выполнение запросов между разными источниками (same-origin policy). CORS (Cross-Origin Resource Sharing) позволяет ослабить эти ограничения. Если сервер неправильно настроен, злоумышленник может отправить вредоносный запрос от имени жертвы и похитить данные.

🔐 Как защититься

— Явно указывать доверенные источники в Access-Control-Allow-Origin
— Использовать строгую проверку Access-Control-Allow-Credentials
— Отключать небезопасные методы (PUT, DELETE, OPTIONS), если они не нужны
— Проверять Origin на сервере, а не только в заголовках CORS

🐸 Библиотека собеса по Java
Please open Telegram to view this post
VIEW IN TELEGRAM
Что означает ключевое слово native?

Ключевое слово native указывает, что метод реализован на языке, отличном от Java (обычно C или C++). Такие методы используются для работы с нативными библиотеками через JNI (Java Native Interface).

Вызов native-методов позволяет взаимодействовать с системными API, работать с железом и оптимизировать производительность, но несет риски, такие как потеря переносимости и потенциальные утечки памяти.

🐸 Библиотека собеса по Java
Please open Telegram to view this post
VIEW IN TELEGRAM
sleep() vs wait()?

Thread.sleep(ms) — усыпляет поток на указанное время, не освобождая монитор. После паузы поток продолжает выполнение. Используется для временной задержки.

wait() — освобождает монитор и переводит поток в состояние ожидания, пока другой поток не вызовет notify() или notifyAll(). Используется для координации потоков в синхронизированных блоках.

Главное отличие: sleep() просто ставит поток на паузу, wait() передает управление другим потокам, освобождая ресурс.

🐸 Библиотека собеса по Java
Please open Telegram to view this post
VIEW IN TELEGRAM
💬 Обратная связь

Какие вопросы публиковать больше?

👍🏼 — Классика с собесов, чтобы точно набить руку на ближайший
🤔 — Вопросы, которые не встречаются в каждой статье вида "N вопросов для собеса"
🔥 — Больше практики, а то одна теория
Please open Telegram to view this post
VIEW IN TELEGRAM
Параметры передаются по ссылке или по значению?

В Java всё передаётся по значению. Но важно понимать: если это объект, то по значению передаётся ссылка на объект, а не сам объект.

Это значит, что внутри метода вы можете изменять поля объекта, но не можете заменить сам объект — новая ссылка не повлияет на оригинал.

🐸 Библиотека собеса по Java
Please open Telegram to view this post
VIEW IN TELEGRAM
💬 Как оставлять комментарии в чате нашего канала

В нашем чате работает бот Shieldy — он защищает от спама, запрашивая у новых участников решение простой капчи.

⚠️ Проблема, с которой сталкиваются многие: вы нажимаете под постом «Прокомментировать», пишете что-то, а потом получаете бан и не можете писать комментарии.

Почему так: Shieldy отправляет капчу в сам чат, а не в комментарии под конкретный пост. Из-за этого капчу можно не увидеть, не отправить ответ на нее, и бот автоматически заблокирует вас.

Как присоединиться к чату, чтобы бот вас не забанил

— Зайдите в описание канала с телефона и нажмите кнопку Discuss / Чат
— Нажмите Join / Присоединиться
— Сразу обратите внимание на сообщение от бота Shieldy
— Решите простой пример и отправьте ответ в чат

После этого бот отправит приветственное сообщение и вы сможете оставлять комментарии. Эту проверку нужно пройти только один раз при вступлении в чат.

❗️ Если вас все-таки забанили

— Это временная блокировка на несколько минут
— Подождите и попробуйте зайти позже, бот снова отправит вам капчу

Админы канала никак не могут ускорить процесс, бот автоматически снимает с вас блокировку через пару минут. Мы понимаем, что эта система неидеальна, и ищем более удобное решение.

👾 Спасибо, что активно участвуете в обсуждении наших постов!
Please open Telegram to view this post
VIEW IN TELEGRAM
Что такое AOP?

AOP (Aspect-Oriented Programming) — это парадигма программирования, позволяющая вынести повторяющийся функционал (например, логирование, безопасность, транзакции) в отдельные модули, называемые аспектами, и "вшить" их в бизнес-логику без изменения её кода.

AOP позволяет разделить технический и бизнес-код, избавляя от дублирования и улучшая читаемость.

🔹 Ключевые термины:

— Join Point: точка в выполнении программы (например, вызов метода).
— Advice: код, который выполняется на Join Point (например, до/после метода).
— Pointcut: выражение, определяющее, где именно применять Advice.
— Aspect: класс, содержащий Advice и Pointcut.
— Weaving: процесс внедрения аспектов в код.

🐸 Библиотека собеса по Java
Please open Telegram to view this post
VIEW IN TELEGRAM
В чём разница между Heap и Stack?

Stack — это область памяти, где хранятся примитивные типы данных и ссылки на объекты, а также контекст выполнения методов (фреймы). Он работает по принципу LIFO (последний зашёл — первый вышел), быстро выделяет и освобождает память, но объём ограничен. Живёт до конца выполнения потока.

Heap — это область памяти, где хранятся все объекты. Примитивные поля объектов тоже попадают в Heap, но только как часть самого объекта. Управляется сборщиком мусора (GC), доступ к данным медленнее, чем в Stack, но размер больше. Объекты в heap живут, пока на них есть ссылки.

🐸 Библиотека собеса по Java
Please open Telegram to view this post
VIEW IN TELEGRAM
🔍Тестовое собеседование на Middle Java-разработчика завтра

26 марта(уже завтра!) в 19:00 по мск приходи онлайн на открытое собеседование, чтобы посмотреть на настоящее интервью на Middle Java-разработчика.

Как это будет:
📂 Илья Аров, старший разработчик в Т1, будет задавать реальные вопросы и задачи разработчику-добровольцу
📂 Илья будет комментировать каждый ответ респондента, чтобы дать понять чего от вас ожидает собеседующий на интервью
📂 В конце можно будет задать любой вопрос Илье

Это бесплатно. Эфир проходит в рамках менторской программы от ШОРТКАТ для Java-разработчиков, которые хотят повысить свой грейд, ЗП и прокачать скиллы.

Переходи в нашего бота, чтобы получить ссылку на эфир → @shortcut_sh_bot

Реклама. ООО "ШОРТКАТ", ИНН: 9731139396, erid: 2VtzqwRjebJ
Please open Telegram to view this post
VIEW IN TELEGRAM
Что такое принципы SOLID?

SOLID — это аббревиатура из пяти принципов объектно-ориентированного дизайна, предложенных Робертом Мартином, которые помогают делать код гибким, расширяемым и легко поддерживаемым.

S — Single Responsibility Principle
Класс должен иметь только одну причину для изменения, то есть одну зону ответственности.

O — Open/Closed Principle
Классы должны быть открыты для расширения, но закрыты для изменения. Расширяйте поведение через наследование или композицию, не изменяя уже написанный код.

L — Liskov Substitution Principle
Подтипы должны заменять базовый тип без нарушения логики. Везде, где ожидается базовый класс, должен корректно работать и его наследник.

I — Interface Segregation Principle
Много специализированных интерфейсов лучше одного общего. Клиенты не должны зависеть от интерфейсов, которые они не используют.

D — Dependency Inversion Principle
Зависимости должны быть от абстракций, а не от конкретных реализаций. Модули верхнего уровня не должны зависеть от модулей нижнего уровня — оба должны зависеть от абстракций.

🐸 Библиотека собеса по Java
Please open Telegram to view this post
VIEW IN TELEGRAM
Зимний режим OFF. Весна начинается с апгрейда.

Если чувствуешь, что за зиму навыки подзастыли — пора их разморозить.

📦 Включили весеннюю распродажу: скидка –35% на курсы до конца марта.

Выбирай направление и выходи из спячки:

— Алгоритмы и структуры данных — чтобы собеседования в Яндекс, Ozon и другие были как уровень easy

— Математика для Data Science — для тех, кто не хочет просто «жать на кнопки», а понимать, что под капотом

— Архитектуры и шаблоны — если хочется мыслить как senior и прокачать системное мышление

— Python, Frontend, основы IT — для тех, кто стартует путь в разработке

👾 Proglib Academy — это как старая добрая 8-битная игра, но вместо врагов — практические задачи и собеседования.

Мы просто упаковали сложное обучение в пиксельную обёртку, чтобы тебе было чуть веселее прокачиваться.

🧠 Отогревай мозги, прокачивай скиллы и хватай свой power-up до конца марта.

👉 Выбрать курс
Что такое Spring Core?

Spring Core — это основа всего фреймворка Spring. Он предоставляет механизм Inversion of Control (IoC) и Dependency Injection (DI), позволяя создавать гибкие, легко тестируемые и слабо связанные компоненты.

Вместо того чтобы объект сам создавал свои зависимости (например, через new), Spring сам внедряет нужные зависимости во время выполнения.

🔹 Компоненты

ApplicationContext: основной контейнер Spring, где хранятся все бины.
— BeanFactory: облегчённый контейнер, из которого вырос ApplicationContext.
— Конфигурация бинов: XML, Java-класс (@Configuration), аннотации (@Component, @Autowired).

🐸 Библиотека собеса по Java
Please open Telegram to view this post
VIEW IN TELEGRAM