Java библиотека – Telegram
Java библиотека
31.5K subscribers
2.38K photos
91 videos
10 files
2.19K links
Книги, статьи, мемы и многое другое для Java программиста!

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

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

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

Сообщество VK https://vk.com/javatutorial
Download Telegram
👩‍💻Что должен знать востребованный Scala-разработчик?

Расскажем на бесплатном практическом уроке «Type classes в Scala» от OTUS и Алексея Воронца – руководителя разработки в NAUMEN.

На вебинаре:
— разберем type class паттерн в Scala;
— познакомимся с мотивацией его возникновения и задачами, которые он должен решать;
— сформулируем и разберем основные компоненты;
— решим ряд задач с использованием type class паттерна для закрепления на практике.

Занятие пройдёт 14 декабря в 20:00 мск и будет приурочено к старту курса «Scala-разработчик». После урока вы сможете продолжить обучение на специальных условиях.

👉 Для бесплатного участия и получения записи регистрируйтесь прямо сейчас: регистрация

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
Please open Telegram to view this post
VIEW IN TELEGRAM
👍63🔥2😁1
StringBuilder

StringBuilder — это класс для работы с изменяемыми строками, аналогичный StringBuffer. API класса StringBuilder такой же, как у StringBuffer, он также хранит строку в виде модифицируемого массива символов.

Но, в отличие от StringBuffer, StringBuilder не является потокобезопасным. Он работает быстрее за счет отсутствия синхронизации.
Поэтому его рекомендуется использовать в однопоточных приложениях для работы со строками, когда нет необходимости в синхронизации.

При создании можно задать начальную емкость buffer'а в виде размера массива символов.
Если строка превышает текущую емкость, она автоматически расширяется с сохранением содержимого.
👍28🔥4
Может ли статический метод быть переопределён или перегружен?

Перегружен - да. Всё работает точно так же, как и с обычными методами - 2 статических метода могут иметь одинаковое имя, если количество их параметров или типов различается.

Переопределён - нет. Выбор вызываемого статического метода происходит при раннем связывании (на этапе компиляции, а не выполнения) и выполняться всегда будет родительский метод, хотя синтаксически переопределение статического метода - это вполне корректная языковая конструкция.

В целом, к статическим полям и методам рекомендуется обращаться через имя класса, а не объект.
👍39🔥2
⚡️ Профессия Java-разработчик с нуля и до востребованного специалиста!

Уже 29 декабря стартует новая группа специализации «Java Developer» в OTUS.

👩‍💻 С нуля до Middle за 15 месяцев!

На онлайн-курсе вы получите:
➡️ Уникальные знания от преподавателей — Senior Java-разработчиков ведущих IT-компаний.
➡️ Практику создания реальных проектов — разработка своего серверного приложения на Java
➡️ Актуальные навыки, необходимые для трудоустройства Middle Java-разработчиком
➡️ Вы освоите инструменты: IntelliJ IDEA, Java Development Kit (JDK), Spring Framework, Hibernate, PostgreSQL, Apache Maven, Gradle, Docker, Kubernetes, Apache Kafka, RabbitMQ, JUnit, Postman, Jira.

👉 Получить специальные условия на курс можно оставив заявку по ссылке: https://otus.pw/qNoI/

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5🔥2😁2
Selector

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

Возможности Selector:
— Регистрация множества каналов в Selector для мониторинга.
— Проверка готовности зарегистрированных каналов к операциям чтения, записи.
— Извлечение готовых каналов и выполнение операций с ними.
— Отмена регистрации каналов в Selector.

Использование Selector позволяет избежать блокировки на операциях чтения/записи по каналам и эффективно масштабировать приложение для одновременной работы с большим количеством соединений.
Класс часто применяется в сетевых серверах для неблокирующей обработки большого числа клиентских соединений в одном потоке.
🔥12👍5🎉5
Старт подготовительного курса по Java-разработке.

Когда: 12 декабря.

Даем: 62 урока с практикой в браузере, 3 онлайн вебинара и 1 сессию лайвкодинга с практикующим разработчиком.

Получаем: крепкие знания базы языка, умение понимать код и первую программу на Java, написанную вместе с наставником.

Всего 990 ₽ и ваше жгучее желание начать. Приходите с любым бэкграундом: нам не важны возраст, пол, образование и текущая профессия.

Запишитесь прямо сейчас!

Реклама. АНПОО "ХЕКСЛЕТ КОЛЛЕДЖ". ИНН 7839056670.
7👍3
👩‍💻 Docker Compose и Spring Boot 3.1 👩‍💻

Наверняка вам приходилось запускать разрабатываемое приложение для какого-то ручного тестирования разрабатываемых функций. А для этого, как правило, нужно некоторое окружение: базы данных, серверы кэша, брокеры очередей сообщений и т.д.
И чтобы не разворачивать это всё вручную, можно использовать контейнеры, а разработчики Spring Boot предлагают интеграцию Spring Boot и Docker Compose, благодаря которой использование контейнеров требует минимум кода.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍30🔥4🎉1
Что вы НЕ ЗНАЛИ о разработке ПО?

Расскажем на бесплатном открытом уроке «Методологии разработки ПО» от OTUS.

На вебинаре:
- рассмотрим различные подходы к разработке – водопадная модель, итеративная разработка, спиральная модель, гибкая разработка и др.;
- обсудим их особенности, ограничения и критерии выбора;
- изучим модели жизненного цикла – классическую и модель спирального развития.

Занятие пройдёт 18 декабря в 20:00 мск и будет приурочено к старту курса «Архитектура и шаблоны проектирования». После урока вы сможете продолжить обучение в рассрочку.

Для бесплатного участия и получения записи пройдите короткое тестирование прямо сейчас: https://otus.pw/X1B5/

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
👍9🔥2
CompletableFuture

CompletableFuture в пакете java.util.concurrent является классом, который предоставляет мощный и гибкий подход к асинхронному программированию. Он позволяет выполнять асинхронные операции и обрабатывать их результаты, комбинировать несколько операций и управлять зависимостями между ними.

Помимо операций, представленных на изображении, CompletableFuture также предоставляет множество других методов для работы с асинхронными операциями, таких как thenApply(), thenCompose(), thenCombine(), exceptionally() и другие, которые позволяют обрабатывать результаты, комбинировать операции, обрабатывать исключения и многое другое. Это делает CompletableFuture мощным инструментом для асинхронного программирования.
👍24🔥31😁1
👩‍💻 Какие компетенции отличают востребованных Java-разработчиков?

➡️ Узнайте и освойте его на бесплатном практическом уроке «Разрабатываем appender для Logback».

На вебинаре разберём, как можно сделать самодельный appender для Logback, который будет отправлять логи в TCP-сервер логирования.
Также эксперт подробно ответит на любые возникающие вопросы.

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

👉 Для бесплатного участия и получения записи зарегистрируйтесь прямо сейчас: https://otus.pw/QYRL/

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

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

На взгляд автора хорошей отправной точкой может стать гексагональная архитектура, которая является частной реализацией идей чистой архитектуры. В этом
ролике автор рассматривает основные элементы гексагональной архитектуры, а так же демонстрирует её применение в процессе разработки простого сервиса, модульного монолита и набора микросервисов.
Please open Telegram to view this post
VIEW IN TELEGRAM
14👍6
Какие подходы применять в разработке микросервисов?

Узнайте на бесплатном практическом уроке «Основные паттерны использования GraphQL и gRPC» от OTUS. На вебинаре:

- рассмотрим основные паттерны и подходы к использованию GraphQL и gRPC;
- рассмотрим паттерн запрос-ответ;
- обсудим различия между GraphQL и gRPC и их преимущества и недостатки в различных сценариях;
- изучим паттерны запроса типа «одно на много» и «много на много», а также подходы к управлению версиями.

Занятие пройдёт 12 декабря в 17:00 мск и будет будет приурочено к старту курса «Microservice Architecture». После урока вы сможете продолжить обучение в рассрочку.

Для бесплатного участия и получения записи зарегистрируйтесь прямо сейчас: https://otus.pw/dFM7/
👍4🔥41
Можно ли сузить уровень доступа/тип возвращаемого значения при переопределении метода?

• При переопределении метода нельзя сузить модификатор доступа к методу (например с public в MainClass до private в Class extends MainClass).
• Изменить тип возвращаемого значения при переопределении метода нельзя, будет ошибка attempting to use incompatible return type.
• Можно сузить возвращаемое значение, если они совместимы.
Например:

public class Animal {

public Animal eat() {
System.out.println("animal eat");
return null;
}

public Long calc() {
return null;
}

}
public class Dog extends Animal {

public Dog eat() {
return new Dog();
}
/*attempting to use incompatible return type
public Integer calc() {
return null;
}
*/
}
👍212🔥2😁2
Команда Поиска и рекламных технологий Яндекса приглашает на митап для senior бэкенд-разработчиков в Екатеринбурге.

Поговорим про разработку, поиграем в квиз, понетворкаемся и просто хорошо проведем время.

12 декабря, 18:00.
Регистрируйтесь, количество мест в офлайне ограничено!
8👍4🔥3🎉1
👩‍💻 Основы REST API на Spring Boot 3: Создание простейшего REST сервиса

В видео создаем новый Spring Boot 3 проект для простейшего REST сервиса, рассматриваем аннотации RestController, GetMapping.

Тестируем работоспособность сервиса через веб браузер и Postman
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9🔥1
12 декабря в 18:00 по МСК пройдёт бесплатный вебинар «Продвинутые аспекты Java collections framework»

На вебинаре мы разберем тонкости при работе с массивами, списками и мапами.
Ты узнаешь про разницу в производительности основных коллекций, use cases и а также популярные вопросы с собеседований на позицию Java Middle Developer.

Вебинар подойдет для Java-разработчиков, которые хотят повысить свой грейд до Java Middle

Спикер: Роман Оборин, Software Engineer at Tesco

🚀 Бесплатная регистрация: https://vk.cc/csZu1L

Реклама. ООО "Платформа непрерывного обучения" education.dhabits.ru
erid:2VtzqvH1ZqU
👍10🔥3🎉1
👩‍💻 Простой Telegram-бот на Java и Spring Boot 👩‍💻

В данном видеоуроке автор показывает как можно разработать свой собственный Telegram-бот на Java с использованием Spring Boot. После просмотра данного видео, вы сможете создать свой собственный Telegram-бот, но уже с более сложным функционалом.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍32🔥83
Forwarded from Яндекс
This media is not supported in your browser
VIEW IN TELEGRAM
🔥 Разыгрываем Станцию Дуо Макс! Это первая колонка Яндекса с камерой и сенсорным экраном — флагман новой линейки устройств.

Что делать? Подпишитесь на телеграм-каналы @yandex и @techno_yandex, а потом нажмите кнопку «Участвовать» под этим постом. 15 декабря в 13:00 бот рандомно выберет победителя из числа участников.

▶️ А как производят и тестируют умные устройства Яндекса на заводе в Гуанчжоу, смотрите в мини-сериале YaC 2023 — на Кинопоиске и YouTube.
👍8🎉2
Sorted set

SortedSet — это интерфейс в Java Collection Framework, который предоставляет упорядочение элементов в множестве. Элементы упорядочиваются с помощью их естественного порядка или с помощью компаратора, который обычно предоставляется при создании отсортированного множества.

SortedSet имеет несколько дополнительных операций, которые позволяют использовать упорядочение элементов:
— first() и last() возвращают первый и последний элементы в множестве соответственно.
— headSet(), tailSet() и subSet() возвращают подмножества элементов, которые находятся до, после или между заданными элементами соответственно.

В этом примере мы создаем TreeSet (класс, который реализует SortedSet) и добавляем в него несколько строк. Поскольку строки реализуют интерфейс Comparable, они упорядочиваются в алфавитном порядке. Затем мы используем различные методы SortedSet для получения первого и последнего элементов, а также подмножеств элементов.
👍23🔥3
Как проектировать базы данных в highload проектах?

Обычно при проектировании БД используется метод нормальных форм (NF), но с ростом проекта и увеличением объема данных он может работать медленно и приводить к проблемам производительности.

Узнайте, что делать в этой ситуации на бесплатном открытом уроке от OTUS. На вебинаре:

- рассмотрим особенности проектирования баз данных в условиях highload-проектов;
- обсудим альтернативный подход к проектированию.

Занятие пройдёт 13 декабря в 20:00 мск в рамках курса «Highload Architect». После урока вы сможете продолжить обучение в рассрочку.

Чтобы задать свои вопросы преподавателю, переходите на наш сайт прямо сейчас, регистрируйтесь и воспользуйтесь функцией напоминание в календаре, чтобы не пропустить прямой эфир: https://otus.pw/OVqn/
👍82
Абстракция в Java

Абстракция — это способность выделять существенные характеристики объекта и упускать несущественные.
Абстракция позволяет сосредоточиться на важных свойствах и поведении объекта, скрыв детали реализации.

В Java абстракция реализуется с помощью абстрактных классов и интерфейсов.

Абстрактный класс содержит абстрактные методы без реализации. Подклассы обязаны реализовать эти методы.
Интерфейс задает «контракт», описывая поведение классов без деталей реализации. Классы реализуют интерфейс.

Реализация абстракции требует тщательного анализа предметной области и выделения общих свойств объектов.
👍19🔥3