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
Какое исключение выбрасывается при возникновении ошибки в блоке инициализации класса?

Если возникшее исключение - наследник RuntimeException:
• для статических блоков инициализации будет выброшено java.lang.ExceptionInInitializerError;
• для нестатических будет проброшено исключение-источник.
Если возникшее исключение - наследник Error, то в обоих случаях будет выброшено java.lang.Error. Исключение: java.lang.ThreadDeath - смерть потока. В этом случае никакое исключение выброшено не будет.
👍19🔥3
👩‍💻Что должен знать востребованный 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