Библиотека джависта | Java, Spring, Maven, Hibernate
24.2K subscribers
1.98K photos
38 videos
42 files
2.8K links
Все самое полезное для Java-разработчика в одном канале.

Список наших каналов: https://yangx.top/proglibrary/9197

Для обратной связи: @proglibrary_feeedback_bot

По рекламе: @proglib_adv

РКН: https://gosuslugi.ru/snet/67a5bbda1b17b35b6c1a55c4
加入频道
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> и результат выводится на экран.
#код
👍20
Почему вам нравится Spring? Опишите его основные преимущества.
#интерактив
2🎉1
Forwarded from Библиотека программиста | программирование, кодинг, разработка
🔤 Азбука SQL в примерах. Часть 3. Обрабатываем результаты и делаем сложные запросы

Мы уже умеем довольно много, и наша база содержит полезную информацию. А еще она умеет проверять новые данные, когда мы их добавляем. Пора разобраться, как их обрабатывать, чтобы узнать из данных что-то интересное.

👉 Читать статью
👉 Часть 1
👉 Часть 2
😁7👍3🥰1
Как хранятся соотношения 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 другой таблицы.
👍8👏4
👨‍💻🧩 Психология и ИТ: 17 личностных качеств, необходимых для успешной карьеры

В статье разберем, какие качества необходимы для успешного старта в IT-сфере.

Читать статью

#новость
👍2
⌨️ Управление доступом к членам класса

Модификаторы уровня доступа определяют, могут ли другие классы использовать определенное поле или вызывать определенный метод.

Существует 4 уровня доступа:

private
Указывает, что доступ возможен только в его собственном классе.

package-private (нет явного модификатора)
Указывает, что доступ только внутри своего собственного пакета.

protected
Указывает, что доступ возможен только внутри его собственного пакета (как в случае с package-private) и, кроме того, для подкласса его класса в другом пакете.

public
Указывает, что доступ возможен отовсюду.
Please open Telegram to view this post
VIEW IN TELEGRAM
🎉22🔥17👍6🥰2
В чём разница между «конкуренцией» и «параллелизмом»?

Конкуренция — это способ одновременного решения множества задач.

Признаки:
• Наличие нескольких потоков управления (например, Thread в Java, корутина в Kotlin), если поток управления один, то конкурентного выполнения быть не может
• Недетерминированный результат выполнения. Результат зависит от случайных событий, реализации и того, как была проведена синхронизация. Даже если каждый поток полностью детерминированный, итоговый результат будет недетерминированным

Параллелизм — это способ выполнения разных частей одной задачи.

Признаки:
• Необязательно имеет несколько потоков управления
• Может приводить к детерминированному результату, так, например, результат умножения каждого элемента массива на число, не изменится, если умножать его по частям параллельно.
👍12😁21🥰1
Что такое мёртвая нить?

Мёртвая нить (deadlock) означает ситуацию, когда две или более нити (потока исполнения) блокируются и ожидают ресурсы, которые удерживают друг друга, что приводит к тому, что ни одна из них не может продолжить свою работу. В итоге программа оказывается в застойном состоянии, так как нити блокируют друг друга и не могут разблокироваться без внешнего вмешательства.

Чтобы избежать мёртвой нити, следует стремиться к тому, чтобы нити блокировали ресурсы в одном и том же порядке. Если это невозможно, можно использовать техники, такие как использование метода tryLock() из java.util.concurrent.locks.Lock, которые позволяют более гибко управлять блокировками и избегать мёртвой нити.

#для_начинающих
😁23❤‍🔥20👍4🤔3👏1
🤔 Очередной #дайджет для джавистов

🔺 Kotlin Explorer — инструмент для быстрого и эффективного реверс-инжиниринга Kotlin кода в Java байткод, Android DEX и OAT

🔺 Spring Boot и Apache Camel — как интегрировать опенсорсный фреймворк и Spring Boot

🔺 VisualVM — анализируйте использование памяти, потребление процессора и поведение потоков для оптимизации вашего приложения

🔺 Модульное тестирование вашей архитектуры Java — начните внедрять свою архитектуру в течение 30 минут, используя уже имеющуюся установку

🔺 Spring Boot 3.2.2 уже доступен — пофиксили 53 бага, улучшили документацию и обновили зависимости
👍149👏7🔥6😁4
🧑‍🍳🧑‍🍳 Apache Maven — введение в автоматизированную сборку проектов

В статье разбирается один из сборщиков проектов Apache Maven. Все начнется с установки, настройки и сборки первого проекта.

Apache Maven — это фреймворк по автоматизации и сборки Java-проектов. Обычно просто называют Maven.

Подробную информацию всегда можно тут.

Продолжить чтение

#гайд
👍9🔥21🥱1
Х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.
6👍3🤔2
Как получить доступ к переопределенным методам родительского класса?

Ответ: С помощью ключевого слова super мы можем обратиться к любому члену родительского класса — методу или полю, если они не определены с модификатором private.
🥰4🤩3😁2
Метод dropWhile был введен в интерфейсе Stream в JDK 9. Этот метод позволяет пропускать элементы в начале потока данных, пока они удовлетворяют определенному условию, и возвращает новый поток, начиная с первого элемента, который не соответствует условию.

В примере метод dropWhile используется для пропуска элементов в потоке до тех пор, пока они меньше 0. После первого элемента, не соответствующего условию, оставшиеся элементы добавляются в новый поток.
👍23😁1
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 📌

Скачать книгу
👍4🔥1🌚1
👒 Весенние конференции JRG

Одни мероприятия будут полностью онлайновыми, а другие пройдут в Москве (но и к таким возможно подключиться удалённо).

Flow (системный и бизнес-анализ), 12 марта, онлайн
SafeCode (безопасность приложений), 13-14 марта, онлайн
TechTrain (профессиональный рост в IT), 6 апреля
Heisenbug (тестирование), 16 апреля в онлайне и 22-23 апреля в Москве
JPoint (Java-разработка), 17 апреля в онлайне и 24-25 апреля в Москве

#мероприятие
👍4
🤔 Очередной #дайджет для джавистов

🔆 Spring Data JPA и Hibernate — решаем проблему динамически изменяемого запроса к базам данных

🔆 Эмулятор QUIK — как наладить тестирование вендорного продукта

🔆 Нагруженные сервисы и нестандартные практики разработки — о нагруженных сервисах, нестандартных практиках в процессах и моделях мотивации людей

🔆 Компоновка аннотаций в Spring — как поместить несколько аннотаций в одну и использовать только ее и как передавать атрибуты в аннотации которые вы объединили

🔆 Разбор задач по программированию и алгоритмам для попадания в Google — разбор 3 типов задач для прохождения собеседования в ведущие технологические компании мира
👍12👏96😁5🥰4
Какое ключевое слово используется в Java для возвращения величины внутри метода?
Anonymous Quiz
3%
void
1%
break
91%
return
5%
get
🎉2717🤔12👏8😁4
🧑‍💻 Статьи для IT: как объяснять и распространять значимые идеи

Напоминаем, что у нас есть бесплатный курс для всех, кто хочет научиться интересно писать — о программировании и в целом.

Что: семь модулей, посвященных написанию, редактированию, иллюстрированию и распространению публикаций.

Для кого: для авторов, копирайтеров и просто программистов, которые хотят научиться интересно рассказывать о своих проектах.

👉Материалы регулярно дополняются, обновляются и корректируются. А еще мы отвечаем на все учебные вопросы в комментариях курса.
👍61