Cartesian product
Это операция, которая создает все возможные пары элементов, взятых из двух наборов. В Java это реализуется с помощью оператора foreach, который работает с коллекциями.
Например, если у нас есть две коллекции: A = {1, 2, 3} и B = {a, b}, то произведение A и B будет выглядеть следующим образом:
{(1, a), (1, b), (2, a), (2, b), (3, a), (3, b)}
Таким образом, мы получаем шесть возможных пар элементов из коллекций A и B.
В этом примере мы создаем две коллекции и используем два вложенных цикла для создания cartesian product. Созданное произведение сохраняется в коллекцию cartesianProduct типа List> и результат выводится на экран.
#код
Это операция, которая создает все возможные пары элементов, взятых из двух наборов. В Java это реализуется с помощью оператора foreach, который работает с коллекциями.
Например, если у нас есть две коллекции: A = {1, 2, 3} и B = {a, b}, то произведение A и B будет выглядеть следующим образом:
{(1, a), (1, b), (2, a), (2, b), (3, a), (3, b)}
Таким образом, мы получаем шесть возможных пар элементов из коллекций A и B.
В этом примере мы создаем две коллекции и используем два вложенных цикла для создания cartesian product. Созданное произведение сохраняется в коллекцию cartesianProduct типа List> и результат выводится на экран.
#код
Почему вам нравится Spring? Опишите его основные преимущества.
#интерактив
#интерактив
🔤 Азбука SQL в примерах. Часть 3. Обрабатываем результаты и делаем сложные запросы
Мы уже умеем довольно много, и наша база содержит полезную информацию. А еще она умеет проверять новые данные, когда мы их добавляем. Пора разобраться, как их обрабатывать, чтобы узнать из данных что-то интересное.
👉 Читать статью
👉 Часть 1
👉 Часть 2
Мы уже умеем довольно много, и наша база содержит полезную информацию. А еще она умеет проверять новые данные, когда мы их добавляем. Пора разобраться, как их обрабатывать, чтобы узнать из данных что-то интересное.
👉 Читать статью
👉 Часть 1
👉 Часть 2
Forwarded from Библиотека собеса по Java | вопросы с собеседований
Как хранятся соотношения one-to-one, one-to-many и many-to-many в виде таблиц?
Соотношения one-to-one, one-to-many и many-to-many в таблицах баз данных хранятся следующим образом:
Соотношение one-to-one — в одном primary key одной таблицы хранятся значения, связанные с другой одиночной таблицей во внешнем ключе (foreign key).
Соотношение one-to-many — в таблице, которая «one», в качестве primary key используется идентификатор объекта, который распространяется на все связанные объекты в таблице, которая «many». Так, одно значение может ссылаться на несколько значений в другой таблице.
Соотношение many-to-many — необходимо создать дополнительную таблицу, которая связывает связанные таблицы. Так, в этой дополнительной таблице устанавливается соответствие между primary key одной таблицы и primary key другой таблицы.
Соотношения one-to-one, one-to-many и many-to-many в таблицах баз данных хранятся следующим образом:
Соотношение one-to-one — в одном primary key одной таблицы хранятся значения, связанные с другой одиночной таблицей во внешнем ключе (foreign key).
Соотношение one-to-many — в таблице, которая «one», в качестве primary key используется идентификатор объекта, который распространяется на все связанные объекты в таблице, которая «many». Так, одно значение может ссылаться на несколько значений в другой таблице.
Соотношение many-to-many — необходимо создать дополнительную таблицу, которая связывает связанные таблицы. Так, в этой дополнительной таблице устанавливается соответствие между primary key одной таблицы и primary key другой таблицы.
👨💻🧩 Психология и ИТ: 17 личностных качеств, необходимых для успешной карьеры
В статье разберем, какие качества необходимы для успешного старта в IT-сфере.
Читать статью
#новость
В статье разберем, какие качества необходимы для успешного старта в IT-сфере.
Читать статью
#новость
Модификаторы уровня доступа определяют, могут ли другие классы использовать определенное поле или вызывать определенный метод.
Существует 4 уровня доступа:
private
Указывает, что доступ возможен только в его собственном классе.
package-private (нет явного модификатора)
Указывает, что доступ только внутри своего собственного пакета.
protected
Указывает, что доступ возможен только внутри его собственного пакета (как в случае с package-private) и, кроме того, для подкласса его класса в другом пакете.
public
Указывает, что доступ возможен отовсюду.
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Библиотека задач по Java | тесты, код, задания
В чём разница между «конкуренцией» и «параллелизмом»?
Конкуренция — это способ одновременного решения множества задач.
Признаки:
• Наличие нескольких потоков управления (например, Thread в Java, корутина в Kotlin), если поток управления один, то конкурентного выполнения быть не может
• Недетерминированный результат выполнения. Результат зависит от случайных событий, реализации и того, как была проведена синхронизация. Даже если каждый поток полностью детерминированный, итоговый результат будет недетерминированным
Параллелизм — это способ выполнения разных частей одной задачи.
Признаки:
• Необязательно имеет несколько потоков управления
• Может приводить к детерминированному результату, так, например, результат умножения каждого элемента массива на число, не изменится, если умножать его по частям параллельно.
Конкуренция — это способ одновременного решения множества задач.
Признаки:
• Наличие нескольких потоков управления (например, Thread в Java, корутина в Kotlin), если поток управления один, то конкурентного выполнения быть не может
• Недетерминированный результат выполнения. Результат зависит от случайных событий, реализации и того, как была проведена синхронизация. Даже если каждый поток полностью детерминированный, итоговый результат будет недетерминированным
Параллелизм — это способ выполнения разных частей одной задачи.
Признаки:
• Необязательно имеет несколько потоков управления
• Может приводить к детерминированному результату, так, например, результат умножения каждого элемента массива на число, не изменится, если умножать его по частям параллельно.
Forwarded from Библиотека задач по Java | тесты, код, задания
Что такое мёртвая нить?
Мёртвая нить (deadlock) означает ситуацию, когда две или более нити (потока исполнения) блокируются и ожидают ресурсы, которые удерживают друг друга, что приводит к тому, что ни одна из них не может продолжить свою работу. В итоге программа оказывается в застойном состоянии, так как нити блокируют друг друга и не могут разблокироваться без внешнего вмешательства.
Чтобы избежать мёртвой нити, следует стремиться к тому, чтобы нити блокировали ресурсы в одном и том же порядке. Если это невозможно, можно использовать техники, такие как использование метода tryLock() из java.util.concurrent.locks.Lock, которые позволяют более гибко управлять блокировками и избегать мёртвой нити.
#для_начинающих
Мёртвая нить (deadlock) означает ситуацию, когда две или более нити (потока исполнения) блокируются и ожидают ресурсы, которые удерживают друг друга, что приводит к тому, что ни одна из них не может продолжить свою работу. В итоге программа оказывается в застойном состоянии, так как нити блокируют друг друга и не могут разблокироваться без внешнего вмешательства.
Чтобы избежать мёртвой нити, следует стремиться к тому, чтобы нити блокировали ресурсы в одном и том же порядке. Если это невозможно, можно использовать техники, такие как использование метода tryLock() из java.util.concurrent.locks.Lock, которые позволяют более гибко управлять блокировками и избегать мёртвой нити.
#для_начинающих
🤔 Очередной #дайджет для джавистов
🔺 Kotlin Explorer — инструмент для быстрого и эффективного реверс-инжиниринга Kotlin кода в Java байткод, Android DEX и OAT
🔺 Spring Boot и Apache Camel — как интегрировать опенсорсный фреймворк и Spring Boot
🔺 VisualVM — анализируйте использование памяти, потребление процессора и поведение потоков для оптимизации вашего приложения
🔺 Модульное тестирование вашей архитектуры Java — начните внедрять свою архитектуру в течение 30 минут, используя уже имеющуюся установку
🔺 Spring Boot 3.2.2 уже доступен — пофиксили 53 бага, улучшили документацию и обновили зависимости
🔺 Kotlin Explorer — инструмент для быстрого и эффективного реверс-инжиниринга Kotlin кода в Java байткод, Android DEX и OAT
🔺 Spring Boot и Apache Camel — как интегрировать опенсорсный фреймворк и Spring Boot
🔺 VisualVM — анализируйте использование памяти, потребление процессора и поведение потоков для оптимизации вашего приложения
🔺 Модульное тестирование вашей архитектуры Java — начните внедрять свою архитектуру в течение 30 минут, используя уже имеющуюся установку
🔺 Spring Boot 3.2.2 уже доступен — пофиксили 53 бага, улучшили документацию и обновили зависимости
🧑🍳🧑🍳 Apache Maven — введение в автоматизированную сборку проектов
В статье разбирается один из сборщиков проектов Apache Maven. Все начнется с установки, настройки и сборки первого проекта.
Apache Maven — это фреймворк по автоматизации и сборки Java-проектов. Обычно просто называют Maven.
Подробную информацию всегда можно тут.
Продолжить чтение
#гайд
В статье разбирается один из сборщиков проектов Apache Maven. Все начнется с установки, настройки и сборки первого проекта.
Apache Maven — это фреймворк по автоматизации и сборки Java-проектов. Обычно просто называют Maven.
Подробную информацию всегда можно тут.
Продолжить чтение
#гайд
Х5 Backend Meetup
1 февраля в 19:00 состоится третий Backend Meetup от X5 Tech. На этот раз снова собирается бэкенд-сообщество, чтобы обсудить 4 доклада от специалистов по Python и Java. Ждут вcех в пространстве «Весна» и в онлайн-трансляции.
Программа:
DDD в D. Безбородые решения в бородатом стеке (DDD в Django)
Каждый раз, начиная новый проект, мы хотим сделать всё хорошо. Но через некоторое время проект превращается в легаси, которое тяжело изменять.
ElasticSearch как база данных нулевой нормальности
Спикер поделится практическим опытом использования Open Source-системы ElasticSearch в качестве альтернативы привычным реляционным базам данных. О разработке схемы данных, плюсах и минусах, границах применимости.
Прагматичный взгляд на разработку. Почему кодинг — не главное
Автор расскажет, почему написание кода — всего лишь часть работы разработчика, как прагматичный подход может спасти от замены на СhatGPT и на чём нужно сосредоточиться, чтобы приносить максимальную пользу команде.
Чистая архитектура в монолите
Спикер расскажет о предпосылках использования чистой архитектуры и проблемах, с которыми он столкнулся при работе с толстым слоем представления и раздутыми моделями в монолите с фреймворком на паттерне Active Record.
1 февраля в 19:00 состоится третий Backend Meetup от X5 Tech. На этот раз снова собирается бэкенд-сообщество, чтобы обсудить 4 доклада от специалистов по Python и Java. Ждут вcех в пространстве «Весна» и в онлайн-трансляции.
Программа:
DDD в D. Безбородые решения в бородатом стеке (DDD в Django)
Каждый раз, начиная новый проект, мы хотим сделать всё хорошо. Но через некоторое время проект превращается в легаси, которое тяжело изменять.
ElasticSearch как база данных нулевой нормальности
Спикер поделится практическим опытом использования Open Source-системы ElasticSearch в качестве альтернативы привычным реляционным базам данных. О разработке схемы данных, плюсах и минусах, границах применимости.
Прагматичный взгляд на разработку. Почему кодинг — не главное
Автор расскажет, почему написание кода — всего лишь часть работы разработчика, как прагматичный подход может спасти от замены на СhatGPT и на чём нужно сосредоточиться, чтобы приносить максимальную пользу команде.
Чистая архитектура в монолите
Спикер расскажет о предпосылках использования чистой архитектуры и проблемах, с которыми он столкнулся при работе с толстым слоем представления и раздутыми моделями в монолите с фреймворком на паттерне Active Record.
Forwarded from Библиотека собеса по Java | вопросы с собеседований
Как получить доступ к переопределенным методам родительского класса?
Ответ: С помощью ключевого слова super мы можем обратиться к любому члену родительского класса — методу или полю, если они не определены с модификатором private.
Ответ: С помощью ключевого слова super мы можем обратиться к любому члену родительского класса — методу или полю, если они не определены с модификатором private.
Метод dropWhile был введен в интерфейсе Stream в JDK 9. Этот метод позволяет пропускать элементы в начале потока данных, пока они удовлетворяют определенному условию, и возвращает новый поток, начиная с первого элемента, который не соответствует условию.
В примере метод dropWhile используется для пропуска элементов в потоке до тех пор, пока они меньше 0. После первого элемента, не соответствующего условию, оставшиеся элементы добавляются в новый поток.
В примере метод dropWhile используется для пропуска элементов в потоке до тех пор, пока они меньше 0. После первого элемента, не соответствующего условию, оставшиеся элементы добавляются в новый поток.
Forwarded from Книги для программистов
Mastering MEAN Stack: Build full stack applications using MongoDB, Express.js, Angular, and Node.js (2023)
Автор: Pinakin Ashok Chaubal
Количество страниц: 260
#js
Книга представляет собой исчерпывающее руководство по разработке с использованием стека MEAN (MongoDB, Express.js, Angular и Node.js). Книга знакомит с основами полностековой разработки и преимуществами стека MEAN. В ней рассказывается об установке и настройке компонентов MEAN, а также о том, как их подключать для создания мощных полностековых приложений. В книге также рассматриваются механизмы безопасности, такие как аутентификация и авторизация, обеспечивающие безопасность приложений. Поможет вам приобрести навыки разработки фронт-энда с помощью Angular и интеграции бэкЭнда с помощью Node.js. В книге также рассматриваются вопросы обновления данных в реальном времени с NATS Streaming, методы автоматизированного тестирования и интеграция дополнительных сервисов.
📌 Всё самое полезное читайте в нашем канале Frontend 📌
Скачать книгу
Автор: Pinakin Ashok Chaubal
Количество страниц: 260
#js
Книга представляет собой исчерпывающее руководство по разработке с использованием стека MEAN (MongoDB, Express.js, Angular и Node.js). Книга знакомит с основами полностековой разработки и преимуществами стека MEAN. В ней рассказывается об установке и настройке компонентов MEAN, а также о том, как их подключать для создания мощных полностековых приложений. В книге также рассматриваются механизмы безопасности, такие как аутентификация и авторизация, обеспечивающие безопасность приложений. Поможет вам приобрести навыки разработки фронт-энда с помощью Angular и интеграции бэкЭнда с помощью Node.js. В книге также рассматриваются вопросы обновления данных в реальном времени с NATS Streaming, методы автоматизированного тестирования и интеграция дополнительных сервисов.
📌 Всё самое полезное читайте в нашем канале Frontend 📌
Скачать книгу
👒☕ Весенние конференции JRG
Одни мероприятия будут полностью онлайновыми, а другие пройдут в Москве (но и к таким возможно подключиться удалённо).
Flow (системный и бизнес-анализ), 12 марта, онлайн
SafeCode (безопасность приложений), 13-14 марта, онлайн
TechTrain (профессиональный рост в IT), 6 апреля
Heisenbug (тестирование), 16 апреля в онлайне и 22-23 апреля в Москве
JPoint (Java-разработка), 17 апреля в онлайне и 24-25 апреля в Москве
#мероприятие
Одни мероприятия будут полностью онлайновыми, а другие пройдут в Москве (но и к таким возможно подключиться удалённо).
Flow (системный и бизнес-анализ), 12 марта, онлайн
SafeCode (безопасность приложений), 13-14 марта, онлайн
TechTrain (профессиональный рост в IT), 6 апреля
Heisenbug (тестирование), 16 апреля в онлайне и 22-23 апреля в Москве
JPoint (Java-разработка), 17 апреля в онлайне и 24-25 апреля в Москве
#мероприятие
🤔 Очередной #дайджет для джавистов
🔆 Spring Data JPA и Hibernate — решаем проблему динамически изменяемого запроса к базам данных
🔆 Эмулятор QUIK — как наладить тестирование вендорного продукта
🔆 Нагруженные сервисы и нестандартные практики разработки — о нагруженных сервисах, нестандартных практиках в процессах и моделях мотивации людей
🔆 Компоновка аннотаций в Spring — как поместить несколько аннотаций в одну и использовать только ее и как передавать атрибуты в аннотации которые вы объединили
🔆 Разбор задач по программированию и алгоритмам для попадания в Google — разбор 3 типов задач для прохождения собеседования в ведущие технологические компании мира
🔆 Spring Data JPA и Hibernate — решаем проблему динамически изменяемого запроса к базам данных
🔆 Эмулятор QUIK — как наладить тестирование вендорного продукта
🔆 Нагруженные сервисы и нестандартные практики разработки — о нагруженных сервисах, нестандартных практиках в процессах и моделях мотивации людей
🔆 Компоновка аннотаций в Spring — как поместить несколько аннотаций в одну и использовать только ее и как передавать атрибуты в аннотации которые вы объединили
🔆 Разбор задач по программированию и алгоритмам для попадания в Google — разбор 3 типов задач для прохождения собеседования в ведущие технологические компании мира
Какое ключевое слово используется в Java для возвращения величины внутри метода?
Anonymous Quiz
3%
void
1%
break
91%
return
5%
get
🧑💻 Статьи для IT: как объяснять и распространять значимые идеи
Напоминаем, что у нас есть бесплатный курс для всех, кто хочет научиться интересно писать — о программировании и в целом.
Что: семь модулей, посвященных написанию, редактированию, иллюстрированию и распространению публикаций.
Для кого: для авторов, копирайтеров и просто программистов, которые хотят научиться интересно рассказывать о своих проектах.
👉Материалы регулярно дополняются, обновляются и корректируются. А еще мы отвечаем на все учебные вопросы в комментариях курса.
Напоминаем, что у нас есть бесплатный курс для всех, кто хочет научиться интересно писать — о программировании и в целом.
Что: семь модулей, посвященных написанию, редактированию, иллюстрированию и распространению публикаций.
Для кого: для авторов, копирайтеров и просто программистов, которые хотят научиться интересно рассказывать о своих проектах.
👉Материалы регулярно дополняются, обновляются и корректируются. А еще мы отвечаем на все учебные вопросы в комментариях курса.