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
👍 Тест по Java

Проверь насколько хорошо ты знаешь Java и готов освоить Spring!

Ответишь — пройдешь на продвинутый курс "Разработчик на Spring Framework" от OTUS по специальной цене.

👉 ПРОЙТИ ТЕСТ: https://vk.cc/cyBJTn

Время прохождения теста ограничено 30 минут, 21 вопрос.

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

PathIterator — это интерфейс в Java, который позволяет объектам, реализующим интерфейс Shape, возвращать геометрию своей границы, позволяя вызывающему объекту получать путь этой границы по одному сегменту за раз.

Основные возможности PathIterator:

— PathIterator позволяет перебирать сегменты пути объекта Shape по одному.
— Для каждого сегмента PathIterator может предоставить информацию о его типе (например, линия, кривая Безье), координатах и других атрибутах.
— PathIterator может использоваться для преобразования пути объекта Shape, например, для его масштабирования, поворота или перемещения.
👍166
This media is not supported in your browser
VIEW IN TELEGRAM
Офер в Яндекс для опытных бэкендеров за два дня

24–25 августа приглашаем бэкендеров с опытом работы от пяти лет получить офер в Яндекс через multitrack за 2 дня. Достаточно решить задачи онлайн до 20 августа и пройти несколько технических секции 24 августа, чтобы уже 25-го получить офер и выбрать три команды, к которым вам было бы интересно присоединиться.

Как правило, за несколько собеседований сложно понять, подходит ли вам команда и наоборот. Multitrack позволит вам поработать в трёх разных командах Яндекса и выбрать подходящую. Вы сможете погрузиться в рабочие процессы, познакомиться с будущими коллегами и понять, с какими задачами и технологиями хотите работать.

Узнать подробности и зарегистрироваться.

Реклама. ООО "Яндекс". ИНН 7736207543
👍8😁54🔥4
🖥 Плагин Gradle для анализа зависимостей

plugins {
id("com.autonomousapps.dependency-analysis") version "<<latest_version>>"
}


Это плагин Gradle для JVM-проектов, написанных на Java, Kotlin и т.д.
Предоставляет рекомендации по управлению зависимостями, позволяет обнаруживать неиспользуемые и неправильно используемые зависимости

🖥 GitHub
🟡 Wiki

@javalib #java
Please open Telegram to view this post
VIEW IN TELEGRAM
👍224🔥4❤‍🔥3
👩‍💻 Курс для Java-разработчиков, которые хотят профессионального роста.

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

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

➡️ ПРОЙТИ ТЕСТ: https://vk.cc/cyDRXC

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

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

Помимо операций, представленных на изображении, CompletableFuture также предоставляет множество других методов для работы с асинхронными операциями, таких как thenApply(), thenCompose(), thenCombine(), exceptionally() и другие, которые позволяют обрабатывать результаты, комбинировать операции, обрабатывать исключения и многое другое. Это делает CompletableFuture мощным инструментом для асинхронного программирования.
🔥18👍103
Selector

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

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

Использование Selector позволяет избежать блокировки на операциях чтения/записи по каналам и эффективно масштабировать приложение для одновременной работы с большим количеством соединений.
Класс часто применяется в сетевых серверах для неблокирующей обработки большого числа клиентских соединений в одном потоке.
👍224
🖥 Fury — быстрый фреймворк Java (существует и для других ЯП) для сериализации на основе JIT и zero-copy

<dependency>
<groupId>org.apache.fury</groupId>
<artifactId>fury-core</artifactId>
<version>0.5.1</version>
</dependency>


Fury позволяет ускорить Java-приложение до 170 раз.

🖥 GitHub
🟡 Доки
🟡 Бенчмарки

@javalib #java
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍21😁73🔥3
🚀 Заканчивается набор на открытый урок "Java Generics для автоматизации тестирования"! 🚀

Стартуем 30 июля в 20:00 по мск.  Успейте попасть в группу! 

Присоединяйтесь к нашему открытому уроку по Java Generics от OTUS, ведущего образовательного центра с более чем 130 авторскими курсами для IT-специалистов. 

Открытый урок проходит в рамках курса Java QA Engineer. Professional. Для разработчиков автоматизированного тестирования на Java. Прокачайте профессиональные навыки, углубите и систематизируйте знания, научитесь грамотно внедрять автоматизацию в проекты.

👉 Что Вы узнаете на уроке?

Что такое Java Generics?
Вы разберетесь в основах Java Generics, узнаете, что это такое и зачем они нужны. Поймете, как использование Generics может повысить безопасность и эффективность вашего кода.

Использование Java Generics в UI автоматизации тестирования
Вы изучите применение Java Generics в UI автоматизации тестирования. Узнаете, как Generics помогают создавать более гибкие и переиспользуемые тесты для пользовательского интерфейса, что значительно упростит поддержку автоматизации.

Использование Java Generics в API автоматизации тестирования
Вы освоите методы использования Java Generics в API автоматизации тестирования. Поймете, как применять Generics для создания универсальных и мощных тестов для API, что повысит надежность и масштабируемость ваших тестовых сценариев.

🤔 Как Вы сможете применить полученные знания?

Повысить безопасность и эффективности кода
Вы сможете писать более безопасный и эффективный код, используя Java Generics. Это позволит вам избежать ошибок на этапе компиляции и улучшить качество вашего программного обеспечения.

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

Разработать универсальны тесты для API
Вы сможете создавать универсальные и мощные тесты для API, используя Java Generics. Это повысит надежность ваших тестов и упростит их масштабирование, что важно для эффективного тестирования сложных систем.

Для регистрации на открытый урок нажмите здесь.

Торопитесь! Места ограничены.

Реклама. ООО "ОТУС ОНЛАЙН-ОБРАЗОВАНИЕ". ИНН 9705100963.
5👍3
StringBuilder

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

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

При создании можно задать начальную емкость buffer'а в виде размера массива символов.
Если строка превышает текущую емкость, она автоматически расширяется с сохранением содержимого.
🔥15👍95😁1
This media is not supported in your browser
VIEW IN TELEGRAM
1️⃣ Написание кода (write code):
• Пример кода: System.out.println("Hello, javaguru.by !");
2️⃣ Компиляция (javac):
• javac входит в состав JDK.
• Команда: javac -cp /lib/classes -d ./classes ./package/Main.java
• Результатом компиляции является байт-код (файл с расширением .class), который сохраняется в указанной директории.
3️⃣ Запуск программы (java):
• Байт-код загружается и интерпретируется с помощью Java Runtime Environment (JRE).
• Команда: java -cp ./classes package.Main
• JRE включает в себя Java Virtual Machine (JVM), которая выполняет байт-код.
4️⃣ Выполнение и вывод (execution and output):
• JVM выполняет байт-код, преобразовывая его в машинный код через Execution Engine.
• Результатом выполнения является вывод в консоль: Hello, javaguru.by !


*️⃣ JDK (Java Development Kit): Содержит инструменты для разработки Java-приложений, включая компилятор (javac) и другие утилиты.
*️⃣ JRE (Java Runtime Environment): Среда выполнения Java-программ, включает JVM и Java Class Library.
*️⃣ JVM (Java Virtual Machine): Виртуальная машина Java, выполняющая байт-код. Состоит из Class Loader, Runtime Data Area, Native Method Interface, Execution Engine и других компонентов.

#️⃣Процесс выполнения:

1. Class Loader загружает классы.
2. Runtime Data Area предоставляет область памяти для выполнения программы.
3. Execution Engine интерпретирует и компилирует байт-код в машинный код.
4. Native Method Interface (JNI) позволяет выполнять нативные методы.
5. Native Method Libraries содержат библиотеки нативных методов.

🔠 Здесь java с 0 до экспертности: https://javaguru.by/core

💴 Микросервисы: https://javaguru.by/developer

🔠 Больше полезной инфы: https://javaguru.by
Please open Telegram to view this post
VIEW IN TELEGRAM
16🔥11👍7
Java Bean

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

Основные характеристики JavaBeans:

1. Класс должен быть публичным и иметь открытый конструктор без аргументов.
2. Приватные поля класса должны быть доступны с помощью геттеров и сеттеров (
getter и setter методы).
3. Класс должен быть сериализуемым, то есть должен реализовывать интерфейс
Serializable.

JavaBeans также могут иметь дополнительные свойства, такие как события и методы уведомления, которые позволяют другим компонентам реагировать на изменения состояния.
🔥15👍74
🔄 Как часто вам приходится вносить изменения в тесты из-за обновления интерфейса? 

Это может занимать уйму времени и вызывать постоянные проблемы с поддержкой. Java Generics позволяет вам создать универсальные методы, которые можно использовать с различными элементами UI. 

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

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

🔧Ваши тесты API часто оказываются негибкими и требуют множества изменений при добавлении новых эндпоинтов? 

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

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

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

🔍Приходится ли вам сталкиваться с повторяющимися структурами данных в тестах? 

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

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

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

🌐Сложности с поддержкой тестов на разные типы браузеров? 

Тестирование UI на различных браузерах может быть трудоемким и запутанным. Java Generics позволяет создать обобщенные методы для работы с различными браузерами, что упрощает создание и поддержку тестов. 

Например, вы можете создать метод, который будет работать как с Chrome, так и с Firefox, без необходимости дублирования кода. 

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

📢Хотите узнать как применить Java Generics на своих проектах?

Приходите на открытый урок с Павлом Балахоновым и задавайте свои вопросы.

Открытый урок проходит в рамках курса Java QA Engineer. Professional. Для разработчиков автоматизированного тестирования на Java.

🗓Стартуем сегодня в 20:00 по мск.

Торопитесь! Места ограничены. Для регистрации на открытый урок нажмите здесь.

Реклама. ООО "ОТУС ОНЛАЙН-ОБРАЗОВАНИЕ". ИНН 9705100963.
6👍2🔥2
ListIterator

ListIterator — это интерфейс итератора, предназначенный специально для работы со списками.

В отличие от обычного Iterator, ListIterator позволяет не только итерировать список в прямом направлении, но и в обратном.
Он поддерживает операции для перемещения вперед и назад по списку.

ListIterator реализует методы:
— next(): переход к следующему элементу.
— previous(): переход к предыдущему элементу.
— hasNext(): проверка, есть ли следующий элемент.
— hasPrevious(): проверка, есть ли предыдущий элемент.
— add(): добавление элемента в список.

ListIterator часто используется, когда нужно пройти по списку в обоих направлениях. Например, чтобы сначала обработать элементы в прямом порядке, а затем в обратном. Или чтобы вставить элементы в произвольное место списка.
👍21🔥42🎉2
📚 Пройди тест на знание Java и получи доступ к 59 открытым урокам по Spring

🕗 Два открытых урока можно посмотреть без регистрации и оценить формат обучения. Для доступа ко всем открытым урокам из курса «Разработчик на Spring Framework» от OTUS необходимо пройти входное тестирование: ответить на 21 вопрос и уложиться в тайминг.

📊 -Курс рассчитан на профессионалов с практическим опытом работы на Java.
- Мы будем 5 месяцев погружать вас в теорию и практику Spring Framework.
- Дадим 18 практических работ. Процесс review сдаваемой работы максимально приближен к тому, каким он мог быть на реальном проекте. Помимо этого, мы попросим вас сдать дипломную работу, каких скучных записанных занятий, только живые онлайн-лекции, интересные практические задачи и развернутая обратная связь от лучших экспертов ниши. 📅 Старт группы уже 31 июля 2024г. Доступна рассрочка на обучение.

➡️ НАЧАТЬ ТЕСТИРОВАНИЕ

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
4👍3🔥21
Агрегация

Агрегация — это отношение между классами, когда один класс содержит ссылки на объекты другого класса. Важно отметить, что агрегация является одним из способов управления отношениями между классами в ООП.

Примером агрегации может быть, например, класс «Университет», который содержит коллекцию объектов класса «Студент». В этом случае, «Университет» агрегирует (содержит) множество объектов «Студент». Важно, чтобы объекты «Студент» оставались независимыми и могли существовать отдельно от объекта «Университет».
👍314🔥4
Разработчик ПО из Казани? Познакомься со специалистами ТехноХаба Сбера и прокачай свои скиллы! 👨‍💻👩‍💻

ИТ-академия ИТ-парка запустила курс для разработчиков «Cross-platform developer on JavaScript» совместно с Андреем Власовым — лидером компетенций, руководителем технологического Хаба Сбера в Казани с опытом в разработке 16 лет.

Для кого? 💻

— разработчики ПО с опытом работы frontend 1-2 года

По окончании курса ты получишь знания и навыки, соответствующие уровню Middle Javanoscript Developer, а именно:

Продуктовое мышление
UX/UI проектирования в figma
Разработка web-приложений на React
Разработка серверных приложений на Nodejs + Express + Mongo
Написание эффективных тестов для приложений
Глубокое понимание micro-frontend архитектуры на больших проектах

Запишись на собеседование прямо сейчас: записаться и получить бонусом офлайн-консультацию с наставником, защиту выпускной работы перед экспертами и удостоверение о повышении квалификации. 🔥

▪️Набор открыт до 15 августа
▪️Объем курса: 124 акад/ч (продолжительностью 5 месяцев)
▪️Формат: офлайн, в ИТ-парке им .Б. Рамеева

📲 Номер телефона для связи: +7 937 594 2209

Реклама: ТЕХНОПАРК В СФЕРЕ ВЫСОКИХ ТЕХНОЛОГИЙ "ИТ-ПАРК", ГАУ "ИТ-ПАРК", ИНН: 1655191213, ERID: 2Vtzquqx7Hd
👍43🔥2
🖥 Flyway — инструмент на Java для упрощения миграций БД

<dependency>
<groupId>org.flywaydb</groupId>
<artifactId>flyway-core</artifactId>
<version>10.15.0</version>
</dependency>


В целом, Flyway — это знакомый для многих инструмент;
Flyway без проблем позволяет работать почти со всем БД:
CockroachDB, SQLite, Snowflake, YugabyteDB, TimescaleDB, TiDB, MySQL, MongoDB, PostgreSQL, MariaDB и со многими другими.

🖥 GitHub
🟡 Доки

@javalib #java
Please open Telegram to view this post
VIEW IN TELEGRAM
12👍9🔥5
😰Вы слышали о Kubernetes, но считаете, что это только для крупных проектов с большими бюджетами? Думаете, что развернуть Kubernetes на небольших проектах на Kotlin невозможно из-за высоких затрат?

А теперь представьте, что вы можете развернуть Kubernetes на кластере стоимостью всего 50-70 тысяч рублей! Вы знаете, какое оборудование необходимо, как быстро установить Kubernetes и что нужно для комфортной работы в кластере. Вы можете развернуть свои приложения в режиме высокой доступности и готовы использовать Kubernetes в повседневной разработке на Kotlin.

Хотите это реализовать? Присоединяйтесь к открытому вебинару «Бортовой Kubernetes для разработчика» 1 августа в 19:00 мск и сделайте этот прыжок в будущее!

Спикер Сергей Окатов — кандидат физико-математических наук и архитектор в Solar Security.

⚡️Зарегистрируйтесь на вебинар прямо сейчас и прокачайте свои навыки в разработке: https://otus.pw/IzQz/

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