Java библиотека
31.6K subscribers
2.32K photos
77 videos
8 files
2.05K links
Книги, статьи, мемы и многое другое для Java программиста!

По сотрудничеству и рекламе: @NadikaKir

Канал в перечне РКН: https://vk.cc/cJrT4A

Мы на бирже: https://telega.in/c/javalib/

Сообщество VK https://vk.com/javatutorial
Download Telegram
Какие существуют типы связей в базе данных? Приведите примеры.

Один к одному - любому значению атрибута А соответствует только одно значение атрибута В, и наоборот.

Каждый университет гарантированно имеет 1-го ректора: 1 университет → 1 ректор.

Один ко многим - любому значению атрибута А соответствует 0, 1 или несколько значений атрибута В.

В каждом университете есть несколько факультетов: 1 университет → много факультетов.

Многие ко многим - любому значению атрибута А соответствует 0, 1 или несколько значений атрибута В, и любому значению атрибута В соответствует 0, 1 или несколько значение атрибута А.

1 профессор может преподавать на нескольких факультетах, в то же время на 1-ом факультете может преподавать несколько профессоров: Несколько профессоров ↔️ Несколько факультетов.
👍31🔥2🎄2
ООП в языке Java. Сборник заданий и тематических примеров (2023) PDF

Сборник заданий предназначен для проработки приемов объектно-ориентированного программирования в языке Java. Издание содержит задачи на обработку массивов, реализацию интерфейсов, наследование, использование коллекций, дженериков и лямбда-выражений. В каждой теме приводятся примеры решения типовых задач и варианты индивидуальные заданий. Издание ориентировано в первую очередь на тех, кто не имеет опыта практического программирования на языке Java и адресуется студентам, а также всем, кто хотел бы научиться приемам программирования стандартных задач.
👍27🔥3
👋Бэкендер, пора расти!

👉Узнайте как на бесплатном вебинаре онлайн-курса «Clojure Developer» — «Особенности Clojure: сфера разработки, основные фишки языка»: регистрация

На бесплатном вебинаре мы:
— рассмотрим, с какими задачами сталкиваются разработчики Clojure и какие основные особенности отличают его от других бэкендовых языков.
— обсудим преимущества, которые предлагает Clojure по сравнению с другими языками.
— изучим, какие возможности и перспективы он предлагает для разработчиков.

Экспертизой поделится руководитель программы и практик Сергей Ткаченко (Clojure Software developer / Team Lead).

🔥После вебинара вы сможете продолжить обучение на курсе по спеццене, в том числе, в рассрочку.

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6🔥3
Проблема квадрата/прямоугольника, объяснение и решение

В ролике о принципе подстановки Барбары Лисков я привёл в качестве примера его нарушения проблему квадрата/прямоугольника, но не предложил способов её решения. В этом ролике я ещё раз рассказываю об этой проблеме и предлагаю решение.
👍9🔥2
Practical Spring Cloud Function: Developing Cloud-Native Functions for Multi-Cloud and Hybrid-Cloud Environments (2022) PDF, ePUB

Unlike other resources that target only programming communities, this book targets both programming and business communities. With programming models shifting more towards no-code and low-code, citizen programmers from the business side will welcome this book as a guide for how to design and optimize their information pipeline while lowering costs for infrastructure. Programmers, on the other hand, will welcome this book's business-centric programming view, which will get them a step closer to fulfilling real business requirements.

Practical Spring Cloud Function touches on the themes of portability, scalability, high performance and high availability. Each theme is explored via a real enterprise use case and code. The use cases target industries including energy (oil pipeline sensors), automotive (event-driven connected vehicles), and retail (conversational AI).
👍10🔥31
Назовите основные свойства транзакции.

Атомарность (atomicity) гарантирует, что никакая транзакция не будет зафиксирована в системе частично. Будут либо выполнены все её подоперации, либо не выполнено ни одной.

Согласованность (consistency). Транзакция, достигающая своего нормального завершения и, тем самым, фиксирующая свои результаты, сохраняет согласованность базы данных.

Изолированность (isolation). Во время выполнения транзакции параллельные транзакции не должны оказывать влияние на её результат.

Долговечность (durability). Независимо от проблем на нижних уровнях (к примеру, обесточивание системы или сбои в оборудовании) изменения, сделанные успешно завершённой транзакцией, должны остаться сохранёнными после возвращения системы в работу.
👍25🔥74
👩‍💻 Контейнеризация приложений - Spring Boot

Разработку и развёртывание современного серверного программного обеспечения сложно представить себе без использования инструментов контейнеризации, ну, а Docker и вовсе, наверняка, на слуху у подавляющего большинства разработчиков.
Упаковка в контейнеры проектов на платформе Java в целом задача не сложная, но имеет свои нюансы. В этом
ролике автор рассмотрит следующие сценарии упаковки приложения на основе Spring Boot в OCI-образ:
- Локальная сборка проекта с последующей упаковкой в Docker-образ
- Полный цикл сборки проекта в Docker с помощью Dockerfile
- Сборка образа при помощи Spring Boot Plugin и Paketo Buildpacks

Все сценарии будут продемонстрированы с использованием Maven и Gradle.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍223
Где получить практические знания по микросервисной архитектуре?

С микросервисной архитектурой можно облегчить масштабирование, ускорить разработку и сократить итеративный цикл создания сервисов. Это скилл, который кратно увеличит ваши карьерные возможности.

Начните изучение с бесплатного открытого урока «Основные паттерны аутентификации и авторизации в микросервисной архитектуре» от OTUS.

На эфире обсудим:

- Введение в микросервисную архитектуру.
- Паттерн аутентификации в микросервисах.
- Паттерн авторизации и управление доступом.
- Безопасность и мониторинг

🔥 Преподаватель Станислав Щетинников – директор по развитию в Сбербанке.

📅 Занятие пройдёт 11 октября в 20:00 мск в рамках курса «Microservice Architecture».

🚩 Зарегистрируйтесь на событие прямо сейчас: https://otus.pw/a8AN/
👍72🔥2
Какие существуют уровни изолированности транзакций?

В порядке увеличения изолированности транзакций и, соответственно, надёжности работы с данными:
Чтение неподтверждённых данных (грязное чтение) (read uncommitted, dirty read) — чтение незафиксированных изменений как своей транзакции, так и параллельных транзакций. Нет гарантии, что данные, изменённые другими транзакциями, не будут в любой момент изменены в результате их отката, поэтому такое чтение является потенциальным источником ошибок. Невозможны потерянные изменения, возможны неповторяемое чтение и фантомы.
Чтение подтверждённых данных (read committed) — чтение всех изменений своей транзакции и зафиксированных изменений параллельных транзакций. Потерянные изменения и грязное чтение не допускается, возможны неповторяемое чтение и фантомы.
Повторяемость чтения (repeatable read, snapshot) — чтение всех изменений своей транзакции, любые изменения, внесённые параллельными транзакциями после начала своей, недоступны. Потерянные изменения, грязное и неповторяемое чтение невозможны, возможны фантомы.
Упорядочиваемость (serializable) — результат параллельного выполнения сериализуемой транзакции с другими транзакциями должен быть логически эквивалентен результату их какого-либо последовательного выполнения. Проблемы синхронизации не возникают.
👍19🔥3
⚡️ Познакомьтесь с библиотекой Kafka Streams

Для чего используют Kafka Streams? Она позволяет быстро и просто писать код Java/Scala на стороне клиента, при этом разворачивать и использовать распределенное приложение на сервере Kafka в соответствии с DevOps-подходом.

Изучите этот инструмент на бесплатном открытом уроке «Kafka Streams» от OTUS.

📢 Вы узнаете:

- как создать граф обработчиков с использованием DSL;
- как читать сообщения из топика;
- как фильтровать и преобразовывать сообщения;
- что происходит при изменении ключа;
- как организовать роутинг сообщений;
- как работать с состоянием, какие при этом возникают нюансы;
- как работает join потоков сообщений.

➡️ Занятие пройдёт 16 октября в 20:00 мск в рамках курса «Apache Kafka».

🏹 Пройдите бесплатное вступительное тестирование и зарегистрируйтесь на событие: https://otus.pw/qoeg/

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7🔥2
👩‍💻 Кэширование данных в приложении на Spring Boot

На практике часто бывает ситуация, когда необходимо многократно извлекать одни и те же данные, например из базы данных, либо получать их по http или другим затратным способом. В отдельных случаях такие запросы могут работать медленно (например сторонний сервис долго отвечает) и это становится настоящей проблемой, когда нагрузка на приложение возрастает. Повысить производительность приложения в этом случае можно с помощью кэширования - многократно используемые данные сохраняются в памяти и их извлечение происходит без запросов к базе данных и сторонним сервисам. В этом видео автор расскажет о том, как можно настроить кэширование в вашем приложении на Spring Boot.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍242
Как Greenplum помогает аналитикам и архитекторам?

Эта БД используется для сложной аналитики по большим объёмам данных. Она быстро выполняет сложные аналитические запросы благодаря MPP-архитектуре и сочетает в себе возможность масштабируемости на десятки терабайт, строгую консистентность данных, ANSI SQL и джойны.

Изучите эту технологию на бесплатном открытом уроке «Greenplum в высоконагруженных системах» от OTUS.

На эфире разберем:

- Обзор аналитических возможностей Greenplum
- Настройку Greenplum для высоконагруженных систем
- Пример с использованием Greenplum в реальной системе

🔥Преподаватель Дмитрий Золотов – Flutter+Kotlin Developer в Yandex.

Занятие пройдёт 16 октября в 20:00 мск в рамках курса «Highload Architect».

Зарегистрируйтесь на событие прямо сейчас: https://otus.pw/jW0p/
👍9🔥2
Что такое «SQL»?

SQL, Structured query language («язык структурированных запросов») — формальный непроцедурный язык программирования, применяемый для создания, модификации и управления данными в произвольной реляционной базе данных, управляемой соответствующей системой управления базами данных (СУБД).
👍15🔥41
DoubleAdder

DoubleAdder
это класс из пакета java.util.concurrent, предназначенный для эффективного параллельного суммирования значений типа double.

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

Преимущества:
— Высокая скорость за счет разделения на сегменты и отсутствия блокировок.
— Минимизация конфликтов между потоками при обновлении.
— Хорошо масштабируется на большом количестве CPU ядер.
👍20🔥4
⁉️ Как создать TCP/IP-серверное приложение в Java?

Стек протоколов TCP/IP позволяет обеспечивать доставку информации в необходимое место назначения. Умение с ней работать – важный скилл для разработчика.

🦾 Изучите эту технологию на бесплатном открытом уроке «TCP/IP-сервер в Java» от OTUS.

На эфире:

- Посмотрим, какие есть варианты реализации TCP/IP-серверного приложения в Java.
- Изучим пару примеров, их особенности и области применения.

📌 Занятие пройдёт 17 октября в 20:00 мск в рамках курса «Java Developer. Professional». После бесплатного вебинара вы сможете продолжить обучение на курсе в рассрочку.

Это отличная возможность совершенно бесплатно протестировать формат обучения и задать преподавателю любые вопросы в режиме реального времени!

👉 Зарегистрируйтесь на событие прямо сейчас, чтобы ничего не пропустить.

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8🔥31
👩‍💻 Обработка исключений в контроллерах Spring

Часто на практике возникает необходимость централизованной обработки исключений в рамках контроллера или даже всего приложения. В данном видео разберём основные возможности, которые предоставляет Spring Framework для решения этой задачи и на простых примерах посмотрим как всё работает. Вы познакомитесь с такими аннотациями Spring как @ExceptionHandler, @ControllerAdvice и @ResponseStatus и научитесь их применять в своих проектах.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍16🔥3❤‍🔥1
Освойте микросервисную архитектуру за 5 месяцев на курсе «Microservice Architecture» от OTUS

В процессе обучения вы:

- рассмотрите множество нетривиальных проблем проектирования backend-приложений и их дальнейшего сопровождения;
- изучите не только паттерны проектирования новых сервисов, но и подходы к работе с legacy-сервисами;
- научитесь решать проблемы с согласованностью изменений или с оркестрацией сервисов;
- как разработчик научитесь базовым навыкам работы с Kubernetes.

💻 Программа идеально подойдёт архитекторам, разработчикам, системным аналитикам, администраторам и DevOps-инженерам.

В конце программы вы получите практическую помощь в трудоустройстве и карьерную консультацию от эксперта.

🌐 Оцените свой уровень знаний для обучения на курсе: https://otus.pw/VHA4/
👍6🔥2
Что такое «модульное тестирование»?

Модульное/компонентное тестирование (unit testing) - процесс в программировании, позволяющий проверить на корректность отдельные модули исходного кода программы. Идея состоит в том, чтобы писать тесты для каждой нетривиальной функции или метода. Это позволяет достаточно быстро проверить, не привело ли очередное изменение кода к регрессии, то есть к появлению ошибок в уже оттестированных местах программы, а также облегчает обнаружение и устранение таких ошибок.

Модульные тесты можно условно поделить на две группы:
• тесты состояния (state based), проверяющие что вызываемый метод объекта отработал корректно, проверяя состояние тестируемого объекта после вызова метода.

• тесты взаимодействия (interaction tests), в которых тестируемый объект производит манипуляции с другими объектами. Применяются, когда требуется удостовериться, что тестируемый объект корректно взаимодействует с другими объектами.
👍18🔥3
Научись использовать высокотехнологичные решения в своих проектах

Станьте одним из профессионалов, которые способны применять в работе архитектурные решения высшего пилотажа — пройдите обучение «Highload Architect» от OTUS.

Всего за 5 месяцев вы научитесь:

🔸 использовать в своих проектах решения, которые выдерживают сотни тысяч (и даже миллионы) запросов в секунду;
🔸 правильно оптимизировать работоспособность серверов;
🔸 эффективно использовать инструменты, которые уже есть в проектах.

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

🌐 Оцените свой уровень знаний для обучения на курсе: https://otus.pw/Irji/
👍4🔥2
Trie

Trie (дерево префиксов) — это структура данных в виде дерева, используемая для хранения ассоциативных данных, например словарей.
Она позволяет эффективно хранить и находить слова по их префиксам.

Trie состоит из узлов, каждый из которых может ссылаться на несколько дочерних узлов. Каждая ветвь от корня до листа представляет одно слово, а символы слова образуют путь от корня до узла-листа.
Узлы, которые являются концом слова, помечаются специальным флагом.

Поиск слова заключается в прохождении от корня по ветвям символов этого слова. Добавление нового слова — добавление отсутствующих узлов для его символов.

Trie оптимальна для хранения словарей и поиска по префиксам благодаря эффективности этих операций.
В Java для реализации Trie удобно использовать HashMap в узлах для связей с дочерними узлами.
👍17🔥64