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
В чем различие между приватным конструктором и финальным классом?

Ограничение области видимости конструктора до private не дает вызвать его из наследника, что приводит к невозможности наследоваться. Это свойство часто используется для утилитарных классов и синглтонов. Если применить порождающий паттерн, то можно вернуть возможность инстанцирования извне.

Если добавить объявлению класса модификатор final, это также запретит от него наследоваться, уже без излишнего ограничения на использование конструктора снаружи. Это основное применение этих двух подходов.

С точки зрения возможности наследования, ограничение через private конструктор более слабое. От такого класса, если он не финальный, можно наследовать внутренние и вложенные подклассы. Публичный вложенный класс может сработать как «паблик морозов» – дать внешним классам наследоваться через себя.
👍222🔥1
Всё об опенсорсе: мастер-классы, круглый стол, задачки и призы

Когда: 23 апреля

Где: Москва, «Агломерат» + онлайн-трансляция

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

А еще познакомитесь с разработчиками из Яндекса и других компаний, победителями Программы грантов Yandex Open Source, порешаете задачки и получите за них призы.

Регистрация на Yandex Open Source Jam по ссылке.
👍73🔥2
Можно ли переопределить статический метод?

Отвечая на этот вопрос, необходимо аккуратно обращаться с терминологией перегрузки и переопределения.

На перегрузку (overload) статического метода не накладывается никаких ограничений. С точки зрения компилятора, методы с разным списком аргументов – разные методы. Но это не переопределение.

Метод с модификатором static относится к классу, а не к его объектам. Для него работает статическое связывание, поэтому именно переопределение (override) в дочернем классе не работает.

Несмотря на это, в дочернем классе можно объявить static метод с такой же сигнатурой, как в родительском. В этом случае произойдет не перегрузка и не переопределение, а перекрытие (shadowing). К такому методу нельзя применить аннотацию
@Override, в нём нельзя использовать ключевое слово super.

Если вы вызываете статический метод от переменной, а не типа, перекрытие таит в себе опасность. Без динамического связывания компилятор знает только о типе переменной, но не о типе ее значения. Если объявленный тип переменной – базовый класс, то метод-перекрытие никогда не вызовется. Поэтому при попытке такого вызова в IDE мы видим предупреждение.
👍244
Как разработчикам эффективно хранить данные в NoSQL?

Приходите на вебинар «Создание словаря» от OTUS и узнайте. На этом открытом уроке вы:

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

Занятие пройдёт 10 апреля в 20:00 мск в рамках набора на онлайн-курс «Алгоритмы и структуры данных». Спикер — опытный программист и преподаватель языка Java.

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

👉 Пройдите короткий тест прямо сейчас, чтобы посетить открытый урок: https://otus.pw/kbae/

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
3👍1🔥1
👩‍💻 ТЕСТИРОВАНИЕ НА JAVA (JUNIT, MOCKITO)

Привет. За 9 минут вы узнаете, как писать unit тесты с помощью библиотек junit и mockito.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍20🔥54
Практический вебинар для веб-разработчиков — изучите основные подходы в обеспечении масштабируемости и отказоустойчивости микросервисов с помощью организации очереди сообщений

Приходите на бесплатный практический урок «Очереди и отложенное выполнение на примере RabbitMQ в .Net» от OTUS, где вы вместе с опытным экспертом разберете:

1. ситуации, когда приходится решать проблему отложенного выполнения и асинхронной обработки;
2. как брокеры сообщений позволяют организовать коммуникацию нескольких сервисов между собой;
3. основные инструменты построения очередей сообщений, их возможности и преимущества;
4. построение очередей сообщений с помощью RabbitMQ и .Net Web Api на практике.

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

Пройдите короткий тест прямо сейчас, чтобы занять место на открытом уроке и получить запись: https://otus.pw/g92Ap/

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

Нельзя расширять класс, объявленный как final. Проще говоря, никакой класс не может наследоваться от данного.

Прекрасным примером final класса в JDK является String. Первый шаг к созданию неизменяемого класса — пометить его как final, и тогда нельзя будет его расширить.
13👍2🍾1
This media is not supported in your browser
VIEW IN TELEGRAM
Приглашаем мобильных и бэкенд-разработчиков на Яндекс Go Day&Night

Конференция в двух частях: днём делимся докладами о мобильной и бэкенд-разработке, а после заката устраиваем тусовку.

Формат: Офлайн
Дата и время: 20 апреля, 14:00 - 02:00

Бесплатно. Регистрация обязательна. Заявки проходят модерацию, количество мест ограничено.

Подробнее

Реклама. ООО «Яндекс» ИНН 7736207543
4👍2
Получаем наиболее распространенный элемент в списке

Сделать это можно с помощью следующего фрагмента кода, подробнее о котором можно почитать здесь.
👍16🔥71
Курс «Быстрый старт в DevOps» бесплатно. Как забрать?

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

2 апреля стартует курс, созданный на основе ваших пожеланий. Мы с командой учебного центра Слёрм ответим на самые актуальные вопросы начинающих девопсеров:
⚡️ что такое DevOps, и как выстроить работу команды в рамках этой методологии;
⚡️ Kubernetes, Docker и т.д.: как базовые инструменты выстраивают работу в DevOps;
⚡️ DevOps и компания: как состыковать критерии успеха.

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

🔗 ЗАБРАТЬ КУРС
👍42🔥1
👩‍💻 Мониторинг сервисов с Micrometer и VictoriaMetrics - Разработка проектов со Spring

В тринадцатом ролике цикла автор продолжает тему мониторинга сервисов, но на этот раз предлагает рассмотреть более распространённую связку инструментов: Micrometer, VictoriaMetrics в качестве альтернативы Prometheus и Grafana. Примеры настройки инструментов мониторинга будут включать и OAuth 2.0.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍177🔥4
МТС приглашает на митап True Tech Java

Вы используете Hibernate? Какую модель предпочитаете: анемичную или богатую? Если вы рассматриваете ваши сущности как DTO с getters/setters, то вы сторонник анемичной. Семен Киреков, Team Lead в МТС Big Data на продукте МТС Аналитика покажет участникам митапа альтернативный вариант — богатую доменную модель.

Что обсудим:

1. Что есть Anemic Domain Model и в чем его проблема?
2. Rich Domain Model в действии;
3. Проблемы с производительностью Rich Domain Model и варианты решения.

Весь код будет доступен в репозитории на GitHub.

Митап пройдет 16 апреля, начало в 18:30.

Чтобы прийти очно или присоединиться онлайн, зарегистрируйтесь по ссылке.

Реклама. ООО "МТС ДИДЖИТАЛ". ИНН: 7707767501. erid: 2Vfnxy6n8eC
👍52🔥2
Что такое абстрактный метод в языке Java?

Абстрактный метод – это метод без тела. Вы просто объявляете метод, не определяя его, с использованием ключевого слова abstract в объявлении метода. Все объявленные внутри интерфейса в языке Java методы – по умолчанию абстрактные. Пример абстрактного метода в языке Java представлен на картинке.

Теперь для реализации этого метода необходимо расширить абстрактный класс и этот метод переопределить.
👍16🔥53
⚡️  Тест по Java от OTUS
Проверь насколько хорошо ты знаешь Java 

Ответишь — пройдешь на продвинутый курс «Java Developer. Professional» от OTUS по специальной цене + получишь доступ к записям открытых уроков курса курса🎁 .

👉  ПРОЙТИ ТЕСТ: 
https://otus.pw/VD2z/?erid=LjN8K3Mnn

🎫  А ещё, сейчас действуют скидка на курс до 21.04. Возможна оплата в рассрочку! Предложение ограничено.

Хотите протестировать учебный процесс заранее? Регистрируйтесь на открытый урок «Знакомство с Micronaut» 11 апреля
3👍3🔥2
Fluent Interface

Fluent Interface (Текучий интерфейс) — это шаблон проектирования, который позволяет создавать код, читающийся как текст на естественном языке.

Он достигается путем создания методов, которые возвращают ссылку на this объект, позволяя вызывать их в цепочке.
👍31🔥43
👩‍💻 Централизованный сбор логов с Grafana Loki - Разработка проектов со Spring

Логгирование является важной составляющей процесса мониторинга сервисов. Однако стандартный вывод логов в консоль или файл неудобен тем, что при необходимости анализа логов нужно подключаться к серверу, на котором запущен сервис. Хорошим решением является централизованное хранение логов, и в данном ролике для этого будет использован Grafana Loki, а так же будет продемонстрирована настройка Logback для интеграции с Grafana Loki.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10🔥71
🤖📊 Бенчмарки состоят из задач разной степени сложности, которые позволяют оценивать знания и навыки языковой модели. По результатам тестирования получается оценка, которую затем можно сравнивать с результатами других моделей или разных версий одной модели, чтобы оценить прогресс обучения.

Один из самых известных бенчмарков для языковых моделей — это MMLU (Massive Multi-task Language Understanding). Он состоит из 57 разделов, охватывающих разные области знаний — от литературы до юриспруденции. MMLU — один из самых популярных тестов для оценки нейросетей.

Но в последнее время в сообществе разработчиков нейросетей возникает всё больше вопросов к бенчмаркам как способу проверять и сравнивать работу моделей. Одна из причин — «загрязнение датасета», при котором тексты бенчмарков попадают в обучающую выборку нейросети.

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

Чтобы оценить работу модели на русском языке, команда YandexGPT адаптировала MMLU: перевела исходные задания с помощью машинного перевода и экспертов, конвертировала единицы измерения из британской системы в метрическую. Новая нейросеть YandexGPT 3 Pro показала на бенчмарке YaMMLU_ru результат 63%. Это выше, чем у YandexGPT 2 (55%), Llama 2 70B (59%) и GPT-3.5 Turbo (58%).

⭐️ Если у вас оформлен Telegram Premium, поддержите наш канал по ссылке

Подписывайтесь 👉 @techno_yandex
Please open Telegram to view this post
VIEW IN TELEGRAM
👍72🔥1
👩‍💻 Простой Telegram-бот на Java и Spring Boot 👩‍💻

В данном видеоуроке автор показывает как можно разработать свой собственный Telegram-бот на Java с использованием Spring Boot. После просмотра данного видео, вы сможете создать свой собственный Telegram-бот, но уже с более сложным функционалом.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍20🔥83
Вебинар для разработчиков и архитекторов

Приходите на живой эфир и вы узнаете:

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

Занятие пройдёт 22 апреля в 19:00 мск в рамках набора на онлайн-курс «Software Architect». Спикер — опытный разработчик на С++, Java, Kotlin и Kafka. Для участников вебинара будет доступна специальная цена на обучение.

🌐 Зарегистрируйтесь, чтобы посетить открытый урок: https://vk.cc/cwbaCn

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
8👍3
Узнаем точную дату с помощью Java

Здесь мы сначала получаем текущую дату через метод LocalDate.now(), затем вычитаем из нее заданное количество дней методом minusDays(), получая дату в прошлом.

Затем создаем объект класса
DateTimeFormatter, который позволяет задать формат выводимой даты (в данном случае "dd.MM.yyyy"). И наконец, форматируем дату методом format() и выводим результат на экран.
👍25🔥51
🧑‍💻Ты Java-разработчик?
Присоединяйся к IT_One CAREER HACKATHON 2024! 💚

Приглашаем Java-разработчиков, ИТ-специалистов уровня junior, middle и senior, провести 3 дня за решением кейса от IT_One.

🚀Рассказываем подробнее:
- Кейс, который предстоит решить: Разработка приложения для управления финансами
- Формат: мероприятие пройдёт онлайн
- Даты хакатона: 17 - 19 мая 2024
- Дедлайн регистрации: до 13.05.2024, 23:59 МСК

🔥Что тебя ждёт?
- Новый кейс в портфолио
- Мерч для победителей и сертификаты всем участникам
- Призовой фонд – 500.000 рублей
- Встречи с экспертами и питчи
- Командная работа 

Проведи выходные с максимальной пользой, участвуй в хакатоне и решай задачу под руководством специалистов на хакатоне от IT_One! 💚

Регистрация уже доступна по ссылке: https://tglink.io/64115e0a1981
👍8🔥43