ar
Feedback
Чашечка Java

Чашечка Java

الذهاب إلى القناة على Telegram

Лучшие материалы по Java на русском и английском Разместить рекламу: @tproger_sales_bot Правила общения: https://tprg.ru/rules Другие каналы: @tproger_channels

إظهار المزيد
8 548
المشتركون
لا توجد بيانات24 ساعات
-137 أيام
-3030 أيام
أرشيف المشاركات
How to solve word break problem in Java using dynamic programming? Example Problem Statement: You are given a dictionary of words and the input string. Determine input string can be segmented into a space-separated sequence of given dictionary words. Note: This question is based on dynamic programming and asked multiple times in top product-based companies. Inputs: Dict = {i, like, am, boy, e, o, dog, cat, g}; word = "iIikedog"  --------can be segmented into space-separated words--------> i, like, dog Ask yourself that 'I', 'like', and 'dog' are presented in the dictionary? Yes, so we can say that the given string can be segmented. Now let's take another example. word = "ilikecatsanddog" --------- can be segmented as-----> i, like, cats, and, dog i, like, cat, s, and, dog We can see that the words 'cats', 'and', 's' are not present in the dictionary so such a string can't be segmented into space-separated words. Let's try to solve it..... Like another dynamic programming problem, we will create a matrix and will use previously calculated results to calculate the current result. Consider the given string as an array like this. i l i k e d o g The columns and rows represent the same given string in the matrix. Now let's try to understand what each cell represents in the matrix. The cells can have two kinds of values either '0' or '1'. Suppose the cells (3,6) and (3,7) have the value '1' this means the substrings from 3 to 6 and 3 to 7 are present in the given input dictionary. If you notice the cell (5,3) and the corresponding substring in the given word the direction is reverse and there is no point in considering the reverse computation of the given string. So we will mark all such cells as '0'. We filled half of the matrix with value '0' so we no need to perform the reverse computations for these cells. This way we can save both memory and time. Now start filling rest of the cells manually by comparing the row-column pair value against the given dictionary. So the cell (0, 0) i.e. 'i' is present in the dictionary so matrix[0][0] = 1. Similarly cell (4, 4) i.e. 'e' is also present in the dictionary so matrix[4][4] = 1. Now let's take one substring 'ilike' and see the logic to solve this problem. i l i k e d o g 0 1 2 3 4 5 6 7 i      l     i     k      e 0     1    2    3      4 We will try to separate this string into 2 parts in all the possible ways. Let say we have first 2 parts: (0, 0)--------> 'i' and (1, 1)----------> 'l' matrix[0][0] && matrix[1][1] 1 && 0 So 'il' is not present in the dictionary. Consider another combination. (4, 3)--------> 'k' and (4, 4)----------> 'e' matrix[4][3] && matrix[4][4] 0 && 1 This is false means 'ke' is not present in the dictionary. So I will keep on taking the substrings from the given word to be space separated and divide them into 2 parts in different ways and will check against the matrix that if both the parts are true i.e. '1' means the substring is present in the dictionary. So finally we will consider the entire given word and divide it into 2 parts in all the possible ways and we will use the values of the previously computed cells to calculate the value of the marked cell and if the the value is '1' means the given word can be separated into the space separated segments. Start Implementing it... Consider below code snippet. i l i k e d o g 0 1 2 3 4 5 6 7 For i = 0 and N = 7 for(int k = 0; k < N+1; k++){ if(matrix[i][i+k]) && matrix[k+1][N]) { return true; } } The if condition shows the logic to divide the given word into 2 parts in all possible ways. Complete Code: public class Main { public String wordBreakProblem(String word, Set<string dict){ int matrix[][] = new int[word.length()][word.length()]; // fill all the cells with '-1'. for(int i=0; i < matrix.length; i++[...]

photo content

AWS Lambda Telemetry API Provides Enhanced Observability Data AWS has released the AWS Lambda Telemetry API, a new way for ex
AWS Lambda Telemetry API Provides Enhanced Observability Data AWS has released the AWS Lambda Telemetry API, a new way for extensions to receive enhanced function telemetry from the Lambda service. The new API simplifies collecting traces, logs, and custom and enhanced metrics from Lambda functions. Along with several example extensions, there are several extensions available from third parties including Datadog, Dynatrace, Serverless, and Sumo Logic. By Matt Campbell Read: https://www.infoq.com/news/2022/11/lambda-telemetry-api/

DDD, HEXAGON, HIBERNATE, не считая JOOQ. Часть 2: гексагональная архитектура Продолжаем серию публикаций для java разработчиков, создающих системы со сложной предметной областью, первую часть можно почитать здесь. В новой статье поговорим о гексагональной архитектуре. Читать: https://habr.com/ru/post/700790/?utm_campaign=700790

Java News Roundup: Spring Framework 6, JCP Election, Project Valhalla, OpenJDK Updates This week's Java roundup for November
Java News Roundup: Spring Framework 6, JCP Election, Project Valhalla, OpenJDK Updates This week's Java roundup for November 14th, 2022 features news from OpenJDK, JDK 20, Project Valhalla, JavaFX 20, JCP election results, Spring Framework 6.0, Spring Data 2022.0, Spring Cloud Dataflow 2.10-RC2, Spring Modulith 0.1-RC1, Quarkus 2.14.1 and 3.0.Alpha1, Micronaut 3.7.4, Piranha 22.11.0, Eclipse Vert.x 4.3.5, Apache Tomcat 10.1.2 and 9.0.69, Apache Beam 2.43.0 and PrimeFaces 12.0.2. By Michael Redlich Read: https://www.infoq.com/news/2022/11/java-news-roundup-nov14-2022/

Какой язык лучше подойдёт для автоматизированного тестирования — Go или Python? В левом углу ринга — быстро набирающий популя
Какой язык лучше подойдёт для автоматизированного тестирования — Go или Python? В левом углу ринга — быстро набирающий популярность Go с возможностью удобного взаимодействия с gRPC. В правом — Python с огромным количеством готовых библиотек. Кому грозит нокаут? Разобрали и разложили по полочкам преимущества и недостатки языков в статье: https://tprg.ru/ZmH6 #go #python #qa Реклама ООО «Озон технологии»

Testcontainers: тестирование с реальными зависимостями Программное обеспечение развивается с течением времени, и автоматизированное тестирование является необходимым условием для непрерывной интеграции и непрерывной доставки. Разработчики пишут различные типы тестов, такие как модульные тесты, интеграционные тесты, тесты производительности и E2E-тесты для измерения различных аспектов программного обеспечения. Обычно модульное тестирование выполняется для проверки только бизнес-логики, и в зависимости от тестируемой части системы внешние зависимости, как правило, имитируются или заглушаются. Но одни только модульные тесты не дают большой уверенности, потому что фактическая сквозная функциональность зависит от интеграции различных внешних сервисов. Таким образом, интеграционные тесты используются для проверки общего поведения системы с использованием реальных зависимостей. Традиционно интеграционное тестирование представляет собой сложный процесс, который может включать несколько этапов. Однако, используя Testcontainers, вы можете получить как легкость и простоту модульных тестов, так и надежность интеграционных тестов, работающих с реальными зависимостями. Читать: https://habr.com/ru/post/700286/?utm_campaign=700286

Upgrade to Apache Commons Text 1.10 to Avoid New Exploit A new vulnerability in the Apache Commons Text, AKA Text4Shell, allo
Upgrade to Apache Commons Text 1.10 to Avoid New Exploit A new vulnerability in the Apache Commons Text, AKA Text4Shell, allows an attacker to execute arbitrary code on the host machine. Originally reported by Alvaro Munoz, principal security researcher at GitHub, CVE-2022-42889, is similar to Spring4Shell and Log4Shell, allowing remote code execution (RCE). By Shaaf Syed Read: https://www.infoq.com/news/2022/11/apache-commons-vulnerability/

Top Java Blogs Weekly: Best of 48/2022 Best of Top Java Blogs, year 2022, week 48 Read: https://www.topjavablogs.com/news/best-of-48-2022

Сборка мусора в неисправных JVM, проактивный подход Команда Netflix Cloud Data Engineering работает с различными приложениями для JVM, включая такие популярные хранилища данных, как Cassandra и Elasticsearch. Хотя большинство наших кластеров стабильно работают, обходясь выделенной им памятью, иногда «запрос смерти» или ошибка в самом хранилище данных приводят к перерасходу памяти, что может спровоцировать лишние циклы сборки мусора или даже привести к исчерпанию памяти в JVM. Читать: https://habr.com/ru/post/700224/?utm_campaign=700224

Разбираетесь в QA? Попробуйте найти баг Мы с компанией «Иннотех» подготовили квест, чтобы проверить, удастся ли вам помочь дж
Разбираетесь в QA? Попробуйте найти баг Мы с компанией «Иннотех» подготовили квест, чтобы проверить, удастся ли вам помочь джуну всего за 5 вопросов: https://tprg.ru/xrEQ Реклама ООО Группа компаний Иннотех

Ещё раз про умный дом Представляю программно-аппаратный проект: локальную сеть умный дом с акцентом на режим охраны. В качестве управляющего устройства используется сотовый телефон с ОС Android версией не ниже 5.0. Через кабель USB телефон подключен к устройству USB/RS485. Для питания всей системы используется блок бесперебойного питания . Узлы управления сбором информации от датчиков и управления исполнительными устройствами реализованы на микросхемах ESP 32. Обмен информацией и питание внешних устройств производится через сетевой кабель. Управляющее устройство (телефон) периодически опрашивает узлы сети и если есть информация от датчиков, в зависимости от настроек, передает сообщения либо в виде SMS, либо в TELEGRAM. А если получена SMS – команда она передается для исполнения на ВУ. Также возможна автономная работа по заложенным сценариям. Читать: https://habr.com/ru/post/700264/?utm_campaign=700264

DDD, HEXAGON, HIBERNATE, не считая JOOQ. Часть 1 Статья написана для java разработчиков, создающих системы со сложной предметной областью. Система, как правило, представлена сетью микросервисов или модульным монолитом. В рамках такой системы обычно содержится большое количество сущностей (JPA/JOOQ), которые одновременно используют как технические, так и бизнес-сущности. Смена технологической базы по прошествии нескольких лет разработки для такой системы является очень дорогостоящим решением. Доработки бизнес-функционала занимают большое количество времени. В первой части статьи проведем теоретический обзор основных терминов и паттернов гексагональной архитектуры и Domain Driven Design или сокращенно DDD. Какие проблемы вы сможете решить, прочитав статью Вероятно, Читать: https://habr.com/ru/post/700158/?utm_campaign=700158

Форматирование милли/микро/нано секунд в java.sql.Timestamp В JVM 1.8 отсутствует удобный и простой в использовании класс форматирования класса java.sql.Timestamp с микро и нано секундами. Есть специализированный пакет java.time с достаточно разнообразной функциональностью. Но его использование для преобразования типа java.sql.Timestamp в строку и из строки в тип выглядит как то сложновато. Хотелось иметь простой способ преобразования с функциональностью класса java.text.SimpleDateFormat. Конечно есть множество советов и вариантов решения этих преобразований в интернет, но все они меня как то не устроили по разным причинам. Повозившись и помучавшись с поиском решения решил написать свой класс, при этом реализовывать весь разбор строки и форматирование в строку совсем не хотелось. Решил наследовать свой класс от одного из существующих классов, переопределив поведение только интересуемой меня функциональности. Но и здесь меня ждало большое разочарование из ограничения зон видимости полей, методов и используемых классов в классах, от которых я пробовал наследоваться. . Хочешь, не хочешь, но надо все же писать полностью свой класс, но писать то все с нуля не хочется. И тут мне в голову пришла идея, раз нельзя наследоваться от класса java.text.SimpleDateFormat, но использовать то его можно же. Идея реализации простая, форматировать и разбирать милли/микро/нано секунды отдельно. Сказано, сделано. Читать: https://habr.com/ru/post/700148/?utm_campaign=700148

Datafaker: альтернатива использованию производственных данных Как разработчики или тестировщики, мы часто сталкиваемся с необходимостью тестирования наших систем. В этом процессе, будь то модульное тестирование, интеграционное тестирование или любая другая форма тестирования, данные часто являются ведущим и решающим фактором. Но получить доступ к хорошим тестовым данным не всегда просто. Иногда данные являются весьма конфиденциальными, например, медицинские или финансовые данные. В других случаях данных недостаточно (например, при попытке нагрузочного тестирования), а иногда искомые данные трудно найти. Для случаев, подобных описанному выше, есть решение называемое Datafaker. Datafaker — это библиотека для JVM, предназначенная для генерации фиктивных данных, похожих на производственные данные. Эти данные могут быть сгенерированы как часть ваших модульных тестов или могут быть сгенерированы в виде внешних файлов, таких как файлы CSV или JSON, чтобы они могли служить в качестве входных данных для других систем. В этой статье вы узнаете, что такое Datafaker, что он может делать и как его можно эффективно использовать для улучшения стратегии тестирования. Читать: https://habr.com/ru/post/667610/?utm_campaign=667610

Подборка актуальных вакансийJava-разработчик Где: Москва, можно удалённо Опыт: от 3 лет — Java-разработчик Где: Москва, можно удалённо Опыт: от 3 лет — Ведущий Java-разработчик Где: удалённо Опыт: от 3 лет — Android-разработчик Где: удалённо Опыт: от 3 лет — Senior Android-разработчик Где: Москва, можно удалённо Опыт: от 3 лет — QA Automation Engineer Где: Москва, можно удалённо Опыт: до 3 лет #вакансии #работа

Мясная аналитика на СlickHouse У нас в hh.ru есть три кластера PostgreSQL, два кластера Cassandra, кластер Hadoop и пять кластеров ClickHouse. Не то чтобы всё это было жизненно необходимо в разработке, но если уж начал собирать серьезную коллекцию, к делу надо подходить серьезно. В этой статье расскажу, как нам удалось запилить конкретную бизнес-фичу с применением ClickHouse и на какие подводные камни при этом наткнулись. Щас будет мясо! Читать: https://habr.com/ru/post/699778/?utm_campaign=699778

Попробуй пройди за 4 часа тестовое задание в канадскую компанию Поделюсь своим свежим опытом непрохождения интервью в канадскую компанию, может кому поможет пройти отбор и получить работу. Либо же узнать что творится с рынком труда с точки зрения разработчика в реальном мире. Читать: https://habr.com/ru/post/699668/?utm_campaign=699668

[recovery mode] Храним процедуры, функции и триггеры на Java Всем привет! Сегодня мы расскажем о полезной возможности СУБД Ред База Данных - создании внешних подпрограмм, то есть процедур, функций и триггеров на языке Java. Например, язык PSQL не позволяет работать с объектами файловой системы или сети, а Java запросто решает такие задачи и существенно расширяет возможности встроенного языка. Читать: https://habr.com/ru/post/699732/?utm_campaign=699732

Хотите развиваться в Java-разработке? Начните с открытого урока "Enum в Java" 24 ноября в 20:00 от OTUS. Данное занятие будет полезно начинающим разработчикам, которые хотят программировать на Java. На занятии Андрей Поляков, Senior Java Developer в компании Unlimint расскажет что такое перечисления и для чего они применяются. Также он разберёт конструкторы, поля, методы и синглетон. В результате занятия вы изучите неочевидные особенности Enum, про которые многие даже не подозревают. Вебинар входит в программу онлайн-курса "Специализация Java-Разработчик" от OTUS. Регистрируйтесь по ссылке: https://otus.pw/U4bZ Реклама ООО «Отус онлайн-образование» LjN8Jwv2v