#вопросы_с_собеседований
Что такое busy spin?
Что такое busy spin?
busy spin
– это техника, которую программисты используют, чтобы заставить поток ожидать при определённом условии. В отличие от традиционных методов wait()
, sleep()
или yield()
, которые подразумевают уступку процессорного времени, этот метод вместо уступки выполняет пустой цикл. Это необходимо, для того, чтобы сохранить кэш процессора, т.к. в многоядерных системах, существует вероятность, что приостановленный поток продолжит своё выполнение уже на другом ядре, а это повлечет за собой перестройку состояния процессорного кэша, которая является достаточно затратной процедурой.Если одно слово состоит из того же набора букв, что и другое, то эти слова друг для друга являются анаграммами. В этом видео разберём алгоритм проверки таких слов на Java.
Рассмотрим два варианта реализации алгоритма. Один из них использует мапу, второй - стандартную сортировку массивов.
https://youtu.be/QjdqGOvNxRI
Please open Telegram to view this post
VIEW IN TELEGRAM
YouTube
Алгоритм определения анаграмм
#java #алгоритмы #анаграмма Если одно слово состоит из того же набора букв, что и другое, то эти слова друг для друга являются анаграммами. В этом видео разберём алгоритм проверки таких слов на Java.
Рассмотрим два варианта реализации алгоритма. Один из…
Рассмотрим два варианта реализации алгоритма. Один из…
GraphQL - это стандарт клиент-серверного взаимодействия, который позволяет гибко запрашивать данные с сервера. Основное отличие от традиционных REST-запросов состоит в том, что клиент сам выбирает, какие поля он будет запрашивать у сервера, тогда как REST предполагает заранее определённый фиксированный формат. При этом сервер будет подгружать из хранилища ровно те поля, которые необходимы и ничуть не больше.
Относительно недавно в Spring Boot появился компонент для работы c GraphQL и мы сделаем проект на его основе. Для удобства отладки также подключим отладочный веб-интерфейс graphiql.
Ещё рассмотрим проблему N+1, когда для каждого элемента результирующего списка выполняется дополнительный запрос.
https://youtu.be/uzylXF0Rwp4
Please open Telegram to view this post
VIEW IN TELEGRAM
Разберемся, как можно вычислять арифметические выражения. Предположим, на вход нам поступает строка текста, которая содержит корректное арифметическое выражение.
Это выражение состоит из пробелов, чисел, скобок и знаков, обозначающих основные математические действия (плюс, минус, умножить, разделить). Нам нужно разобрать это выражение на отдельные элементы, а затем вычислить результат с учётом приоритетов математических операций.
Обработку такого выражения можно разделить на три основных этапа:
1. Разбиение строки на отдельные части
2. Обработка этих частей с учётом математических операций
3. Само вычисление
https://youtu.be/ZWXwgOCG-gU
Please open Telegram to view this post
VIEW IN TELEGRAM
YouTube
Разбор и вычисление арифметических выражений на Java
#алгоритмы #java #калькулятор Разберёмся, как можно вычислять арифметические выражения. Предположим, на вход нам поступает строка текста, которая содержит корректное арифметическое выражение.
Это выражение состоит из пробелов, чисел, скобок и знаков, обозначающих…
Это выражение состоит из пробелов, чисел, скобок и знаков, обозначающих…
Автор прошел и провел достаточное количество интервью и решил поделиться типовыми вопросами с собеседований, всего планирует 3 части, все вопросы реально спрашивали.
Please open Telegram to view this post
VIEW IN TELEGRAM
YouTube
Вопросы с senior java интервью [1/3]
Всем привет!
Я прошел и провел достаточное количество интервью и решил поделиться типовыми вопросами с собеседований, всего планирую 3 части, все вопросы реально спрашивали.
Ссылка на код:
https://github.com/kirya522/medium-posts/tree/main/java/interview…
Я прошел и провел достаточное количество интервью и решил поделиться типовыми вопросами с собеседований, всего планирую 3 части, все вопросы реально спрашивали.
Ссылка на код:
https://github.com/kirya522/medium-posts/tree/main/java/interview…
Что такое «сервлет»?
Сервлет является интерфейсом, реализация которого расширяет функциональные возможности сервера. Сервлет взаимодействует с клиентами посредством принципа запрос-ответ. Хотя сервлеты могут обслуживать любые запросы, они обычно используются для расширения веб-серверов.
Большинство необходимых для создания сервлетов классов и интерфейсов содержатся в пакетах
Основные методы сервлета:
•
•
•
•
•
Сервлет является интерфейсом, реализация которого расширяет функциональные возможности сервера. Сервлет взаимодействует с клиентами посредством принципа запрос-ответ. Хотя сервлеты могут обслуживать любые запросы, они обычно используются для расширения веб-серверов.
Большинство необходимых для создания сервлетов классов и интерфейсов содержатся в пакетах
javax.servlet и javax.servlet.http
.Основные методы сервлета:
•
public void init(ServletConfig config) throws ServletException
запускается сразу после загрузки сервлета в память;•
public ServletConfig getServletConfig()
возвращает ссылку на объект, который предоставляет доступ к информации о конфигурации сервлета;•
public String getServletInfo()
возвращает строку, содержащую информацию о сервлете, например: автор и версия сервлета;•
public void service(ServletRequest request, ServletResponse response) throws ServletException, java.io.IOException
вызывается для обработки каждого запроса;•
public void destroy()
выполняется перед выгрузкой сервлета из памяти.В этом видео автор рассказывает о проблеме с null в языке программирования Java, из-за которой возникает печально известное NullPointerExeption. Даёт некоторые рекомендации по организации кода для борьбы с этой проблемой и повышения надежности работы программ.
https://youtu.be/QIfIoXW1SHA
Please open Telegram to view this post
VIEW IN TELEGRAM
YouTube
Java. Проблема с null. Null safety.
В этом видео я рассказываю о проблеме с null в языке программирования Java, из-за которой возникает печально известное NullPointerExeption. Даю некоторые рекомендации по организации кода для борьбы с этой проблемой и повышения надежности работы программ.
Какова структура веб-проекта?
src/main/java
Исходники приложения/библиотекиsrc/main/resources
Ресурсные файлы приложения/библиотекиsrc/main/filters
Файлы сервлетных фильтровsrc/main/webapp
Исходники веб-приложенияsrc/test/java
Исходники тестовsrc/test/resources
Ресурсные файлы тестовsrc/test/filters
Тесты сервлетных фильтровsrc/it
Интеграционные тестыsrc/assembly
Описание сборкиsrc/site
СайтLICENSE.txt
Лицензия проектаNOTICE.txt
Замечания и определения библиотек зависимостей.README.txt
Описание проектаУниверсальный загрузчик XML на java. Или как загрузить файлы ГАР на 250 гб и остаться при памяти
https://habr.com/ru/post/724324/
https://habr.com/ru/post/724324/
Хабр
Универсальный загрузчик XML на java. Или как загрузить файлы ГАР на 250 гб и остаться при памяти
С проблемой загрузки больших XML столкнулся при переходе с КЛАДР и ФИАС на справочники ГАР - Государственный адресный реестр (Федеральная информационная адресная система). Справочник ГАР содержит...
Как перестать бояться и собрать все маркетинговые каналы коммуникации в одной платформе.
https://habr.com/ru/company/glowbyte/blog/724296/
https://habr.com/ru/company/glowbyte/blog/724296/
Хабр
Как перестать бояться и собрать все маркетинговые каналы коммуникации в одной платформе
Привет, Хабр! Эксперт комьюнити #Сарафан компании GlowByte Александр Долгих расскажет историю из личного опыта о том, как решалась задача интеграции целевого маркетинга и множества самых разных...
new vs valueOf
Старайтесь всегда использовать метод
Все оболочки, кроме чисел с плавающей точкой, от Byte до Long, имеют кэш. По умолчанию этот кэш содержит значения от -128 до 127. Следовательно, если ваше значение попадает в этот диапазон, то значение вернется из кэша. Значение из кэша достается в 3.5 раза быстрее, чем при использовании конструктора, плюс идёт экономия памяти.
Помимо этого, наиболее часто используемые значения могут также быть закэшированы компилятором и виртуальной машиной.
Старайтесь всегда использовать метод
valueOf
вместо конструктора в стандартных классах-оболочках примитивных типов, кроме тех случаев, когда вам нужно конкретно выделить память под новое значение. Сейчас объясню, почему.Все оболочки, кроме чисел с плавающей точкой, от Byte до Long, имеют кэш. По умолчанию этот кэш содержит значения от -128 до 127. Следовательно, если ваше значение попадает в этот диапазон, то значение вернется из кэша. Значение из кэша достается в 3.5 раза быстрее, чем при использовании конструктора, плюс идёт экономия памяти.
Помимо этого, наиболее часто используемые значения могут также быть закэшированы компилятором и виртуальной машиной.
#вопросы_с_собеседований
Какое начальное количество корзин в HashMap?
В конструкторе по умолчанию - 16, используя конструкторы с параметрами можно задавать произвольное начальное количество корзин.
Какое начальное количество корзин в HashMap?
В конструкторе по умолчанию - 16, используя конструкторы с параметрами можно задавать произвольное начальное количество корзин.