Разберемся, как можно вычислять арифметические выражения. Предположим, на вход нам поступает строка текста, которая содержит корректное арифметическое выражение.
Это выражение состоит из пробелов, чисел, скобок и знаков, обозначающих основные математические действия (плюс, минус, умножить, разделить). Нам нужно разобрать это выражение на отдельные элементы, а затем вычислить результат с учётом приоритетов математических операций.
Обработку такого выражения можно разделить на три основных этапа:
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, используя конструкторы с параметрами можно задавать произвольное начальное количество корзин.
В каком случае требуется переопределять метод service()?
Метод
Когда контейнер сервлетов получает запрос клиента, то происходит вызов метода
Метод
service()
переопределяется, когда необходимо, чтобы сервлет обрабатывал все запросы (и GET
, и POST
) в одном методе.Когда контейнер сервлетов получает запрос клиента, то происходит вызов метода
service()
, который в зависимости от поступившего запроса вызывает или метод doGet()
или метод doPost()
.Первое знакомство с протоколом HTTP через написание простейшего Web сервера на Java
https://habr.com/ru/post/441150/
https://habr.com/ru/post/441150/
Хабр
Первое знакомство с протоколом HTTP через написание простейшего Web сервера на Java
Думаю что не будет преувеличением утверждать, что знание и понимание сути протокола HTTP необходимо любому, кто решил сколь-нибудь серьезно заняться любым из нап...
#вопросы_с_собеседований
Реализуйте симметрическую разность двух коллекций, используя методы Collection (addAll(...), removeAll(...), retainAll(...)).
Симметрическая разность двух коллекций — это множество элементов, одновременно не принадлежащих обоим исходным коллекциям.
Реализуйте симметрическую разность двух коллекций, используя методы Collection (addAll(...), removeAll(...), retainAll(...)).
Симметрическая разность двух коллекций — это множество элементов, одновременно не принадлежащих обоим исходным коллекциям.
#вопросы_с_собеседований
Как отсортировать список строк с помощью лямбда-выражения?
Ответ на картинке.
Как отсортировать список строк с помощью лямбда-выражения?
Ответ на картинке.
В этом видео разбирается классическая задача о рюкзаке и алгоритмы её решения. Особое внимание уделяется решению задачи с помощью динамического программирования.
https://youtu.be/wcjqBf2qRe0
Please open Telegram to view this post
VIEW IN TELEGRAM
YouTube
Java. Задача о рюкзаке. Динамическое программирование.
В этом видео разбирается классическая задача о рюкзаке и алгоритмы её решения. Особое внимание уделяется решению задачи с помощью динамического программирования.
Исходный код:
https://github.com/Arhiser/java_tutorials/tree/master/src/ru/arhiser/knapsack…
Исходный код:
https://github.com/Arhiser/java_tutorials/tree/master/src/ru/arhiser/knapsack…
#вопросы_с_собеседований
Что произойдет, если ключевое слово static не использовать с методом main() в Java?
Ошибки компиляции не будет, но во время выполнения мы получим ошибку NoSuchMethodError.
Что произойдет, если ключевое слово static не использовать с методом main() в Java?