cookie

ما از کوکی‌ها برای بهبود تجربه مرور شما استفاده می‌کنیم. با کلیک کردن بر روی «پذیرش همه»، شما با استفاده از کوکی‌ها موافقت می‌کنید.

avatar

Java Interview Review

Популярные вопросы и ответы с собеседований на Java-разработчика. Канал для Android-разработчиков @AndroidSobes Связаться с нами @SobesAdmin http://itsobes.ru/

نمایش بیشتر
کشور مشخص نشده استزبان مشخص نشده استدسته بندی مشخص نشده است
پست‌های تبلیغاتی
7 423
مشترکین
اطلاعاتی وجود ندارد24 ساعت
-37 روز
-330 روز

در حال بارگیری داده...

معدل نمو المشتركين

در حال بارگیری داده...

Что такое synchronized? Можно применять как модификатор метода, и как самостоятельный оператор с блоком кода. Выполняет код при захваченном мониторе объекта. В виде оператора объект указывается явно. В виде модификатора нестатического метода используется this, статического – .class текущего класса. Один из основных инструментов обеспечения потокобезопасности. Одновременно выполняется не более одного блока synchronized на одном и том же объекте. Такая блокировка называется intrinsic lock или monitor lock, подробно рассматривается в Java Concurrency in Practice 2.3.1. Блок synchronized также необходим для использования методов wait, notify, notifyAll. #Язык #Многопоточность
نمایش همه...
Photo unavailableShow in Telegram
📍Что нужно знать начинающему разработчику на Java? Приходи на практический вебинар по Java для новичков 👉 https://otus.pw/of42/ 📌 Что ждет на занятии? - Поговорим о месте реляционных баз данных в архитектуре информационных систем. - Рассмотрим основные компоненты и возможности РСУБД на примере PostgreSQL. - Сделаем обзор основных технологий по работе с реляционными БД в Java (JDBC, JPA/Hibernate, Spring Data и др.) ❗️ Еще больше навыков и оплачиваема стажировка ждет тебя на специализации «Java-разработчик» от онлайн-платформы OTUS. 👉 Регистрируйтесь на занятие
نمایش همه...
Чем отличаются checked и unchecked исключения? Вопрос формулируют по-разному, суть вопроса – объяснение иерархии классов исключений. Подробно описано в документации. Исключения бывают checked и unchecked. Checked требуется указывать в сигнатуре метода в разделе throws; перехватывать или добавлять в throws в вызывающем его методе. Unchecked можно добавить, но не обязательно, перехватывать не обязательно даже если указана в throws. 🔘 Throwable – базовый класс для всего что может быть использовано с оператором throw и в конструкции try-catch 🔘 RuntimeException – «нормальные» unchecked-исключения 🔘 Error – unchecked исключения, которые означают «серьезные проблемы» приложения. Не должны обрабатываться (хотя технически можно). Теоретически JVM может находиться в невалидном состоянии и не давать больше никаких гарантий 🔘 Exception (кроме RuntimeException) – checked исключения #Язык
نمایش همه...
Какие бывают модификаторы? 🔘 Модификаторы доступа private, protected, public (рассмотрим подробнее в разделе #Классы) 🔘 Модификаторы для многопоточности synchronized и volatile (подробнее чуть позже) 🔘 static (рассмотрим подробнее в разделе #Классы) 🔘 final 🔘 abstract (рассмотрим подробнее в разделе #Классы) 🔘 native – реализация метода скрыта внутри JVM, нельзя указывать в пользовательском коде 🔘 transient – поле будет пропущено при сериализации 🔘 strictfp – самый экзотический, ограничивает точность вычисления для переменной с плавающей точкой до стандарта IEEE. Нужно для переносимости между платформами. #Язык
نمایش همه...
Photo unavailableShow in Telegram
Основы Java за 14 дней вместе с наставником – практикующим разработчиком. 10 учебных модулей, 62 урока с практикой в браузере, вебинары и лайвкодинг-сессия. Не важно, сколько вам лет, какое у вас образование и кем вы работаете сейчас. Начинаем 20 сентября. Занимайте место в группе!
نمایش همه...
Какие существуют литералы? Литерал – последовательность символов, обозначающая значение примитивного типа (или строки). 🔘 Целочисленные (Integer). Возможные форматы: 2019, 1__000_000 (с Java 7), 10048L (можно l, но будет путаться с 1), 0xfd12aa, 0b1011101, 07654321. 🔘 С плавающей точкой (floating-point). Возможные форматы: 123.4, 56.7e8, .07, 42F, 1.4D (избыточно, по умолчанию и так double). 🔘 Символы и строки. Символ (char) – в одинарных кавычках: 'R'. Спецсимволы пишутся с бэкслешем: '\n'. Любой символ можно представлять в виде escape-последовательности: '\u00F1'. Строковый литерал – последовательность символов в двойных кавычках: "Blabla". Для символов строки действуют те же правила. 🔘 Логические (boolean). true и false. 🔘 Специальный литерал null. Все нюансы описаны в официальной документации. #Язык
نمایش همه...
Photo unavailableShow in Telegram
Weekend Offer для Java-разработчиков в команду VK Звонков В команде вы сможете прокачивать свои навыки, участвовать в разработке новых фич, развивать и улучшать существующие решения, решать задачи бесперебойной передачи данных в сложных сетевых условиях. Если вам это интересно, успевайте подать заявку до 9 сентября, где вам подробно расскажут о процессе работы и всех задачах, которые предстоит выполнять, а также проведут интервью и выберут лучших кандидатов, которые будут совершенствовать VK Звонки – универсальный и эффективный инструмент для общения. Узнать подробнее и подать заявку можно по ссылке
نمایش همه...
Чем отличается final finally finalize? (2/2) finally – часть языковой конструкции try-catch-finally. Любое исключение, выброшенное из блока try переводит исполнение в самый соответствующий ему catch (при наличии). Этим продиктована необходимость располагать блоки catch в строгом порядке, от типа исключения-наследника, к родителю. В случае multicatch тот же порядок должен соблюдаться и внутри одного catch. Больше примеров про порядок. После выполнится блок finally. Выполняется он в любом случае, было исключение или нет. Типичное использование – освобождение ресурсов, обязательные завершающие действия. Для требующих финализации классов («ресурсов») добавляется интерфейс AutoCloseable, повторяющийся код блока final выносится в метод close и вызывается неявно в конце try-with-resources. Если в этой конструкции присутствует и явный final, он будет выполнен после. #Язык
نمایش همه...
Чем отличается final finally finalize? (1/2) Тем, что это даже синтаксически разные вещи. Как и вопрос о методах Object, это способ начать разговор. finalize – метод-финализатор из Object, мы уже рассмотрели в предыдущих постах. final – модификатор, который применяется к переменным, полям, методам и классам. Переменная или поле становится неизменяемым и требует инициализации. Финальный метод нельзя переопределить в наследниках. Финальный класс не может иметь наследников вообще. Используется для создания хорошего (Effective Java Item 15) API по принципу наименьших привилегий. Когда в методе используется локальная переменная внешней области видимости, она обязана быть effectively final. В этом случае ключевое слово final необязательно, но значение всё равно не должно меняться. #Язык
نمایش همه...
wait, notify, notifyAll Часто этот вопрос формулируется как задача Producer-сonsumer. Эту задачу и практические задачи на многопоточность вообще при возможности лучше реализовывать на высокоуровневых примитивах синхронизации. Другой подход – воспользоваться также низкоуровневой, но оптимистической блокировкой на compareAndSet. Но обычно использование notify/wait (пессимистическая блокировка) – условие этого задания, то есть требуется реализовать уже существую BlockingQueue. Эти методы вместе с synchronized – самый низкий уровень пессимистических блокировок в Java, использующийся внутри реализации примитивов синхронизации. Еще с Java 5 в непосредственном использовании этих методов нет необходимости, но теоретические знания всё еще часто спрашивают на интервью. Чтобы вызывать эти методы у объекта, необходимо чтобы был захвачен его монитор (т.е. нужно быть внутри synchronized-блока на этом объекте). В противном случае будет выброшено IllegalMonitorStateException. Так что для полного ответа нужно понимать, как работает monitor lock (блок synchronized). Вызов wait тормозит текущий поток на ожидание на этом объекте и отпускает его монитор. Исполнение продолжится, когда другой поток вызовет notify и отпустит блокировку монитора. Если на объекте ожидают несколько потоков, notify разбудит один случайный, notifyAll - все сразу. В теории, ожидание wait может быть прервано без вызова notify, по желанию JVM (spurious wakeup). На практике это бывает крайне редко, но нужно страховаться и после вызова wait добавлять дополнительную проверку условия завершения ожидания. Еще два нештатных случая завершения wait – прерывание потока извне и таймаут ожидания. В случае прерывания выбрасывается InterruptedException. Для таймаута нужно указать время ожидания параметрами метода wait. Значение 0 проигнорируется. Различные проблемы реализации блокировок рассмотрены в Java Concurrency in Practice 14.1.3, 14.2. Для желающих разобраться, как блокировки работают в кишках JVM, написана статья на хабре. #МетодыObject #Многопоточность
نمایش همه...
یک طرح متفاوت انتخاب کنید

طرح فعلی شما تنها برای 5 کانال تجزیه و تحلیل را مجاز می کند. برای بیشتر، لطفا یک طرح دیگر انتخاب کنید.