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

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

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

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

Сообщество VK https://vk.com/javatutorial
Download Telegram
🚀 Заканчивается набор на открытый урок "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 Javascript 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
ServletContext

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

Некоторые из основных методов ServletContext:

getInitParameter(String name): возвращает значение инициализационного параметра сервлета, указанного по имени.
getInitParameterNames(): возвращает имена всех инициализационных параметров сервлета.
getAttribute(String name): возвращает значение атрибута, сохраненного в контексте сервлета по имени.
setAttribute(String name, Object object): устанавливает значение атрибута в контексте сервлета.
getRequestDispatcher(String path): возвращает объект RequestDispatcher, который используется для включения другого ресурса (например, другого сервлета или JSP-страницы) в текущий запрос.
getRealPath(String path): преобразует виртуальный путь в абсолютный путь на сервере.
👍155🔥3
👩‍💻 Что такое Reflection API и как с этим работать?

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

Встречаемся 7 августа в 20:00 мск.

Спикер Александр Фисунов — Senior Kotlin Developer в SSP Software на проекте ВТБ, опытный Java-разработчик и кандидат технических наук.

👉 Регистрируйтесь прямо сейчас, чтобы не пропустить мероприятие: https://vk.cc/cyTeDG

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

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

🖥 GitHub
🟡 Доки

@javalib #java
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥10👍84
Java Guru - вопросы и задачи с собеседований. Канал с помощью которого ты точно получишь оффер!

👩‍💻 Android Developer - канал для андроид разработчиков! Статьи, вопросы и задачи с собеседований, лайфхаки.

👩‍💻 Kotlin Developer - самый топовый канал для котлин разработчика!

📕 Книги для Java программиста - канал с книгами по Java. Постоянно выходят новинки как на русском так и на английском языке!

📰 Java News - канал с последними новостями из мира Java!
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4🎉3🔥21
Метод newSingleThreadExecutor()

Метод newSingleThreadExecutor() используется для создания ExecutorService с единственным рабочим потоком. ExecutorService предоставляет удобный способ управления выполнением задач в асинхронном режиме.

В примере выше создается ExecutorService с одним рабочим потоком, и две задачи (task1 и task2) передаются на выполнение с использованием метода submit(). Закрытие ExecutorService выполняется с помощью метода shutdown(), который гарантирует, что больше никакие задачи не будут приняты, и потоки будут завершены после завершения всех текущих задач.
👍14🔥84
🖥 OSHI — библиотека Java для получения информации об ОС и аппаратных характеристиках

<dependency>
<groupId>com.github.oshi</groupId>
<artifactId>oshi-core</artifactId>
<version>6.6.1</version>
</dependency>


OSHI — это библиотека Java, позволяющая получать информацию об операционной системе и оборудовании, основанная на JNA.
Библиотека не требует установки дополнительных компонентов, позволяет получать такую системную информацию как версия ОС, текущие процессы, использование памяти и процессора, сведения о дисках и разделах, подключенные устройства и т. д.

OSHI кроссплатформенная: работает на Windows, macOS, Linux (и Android), UNIX (AIX, FreeBSD, OpenBSD, Solaris)

🖥 GitHub
🟡 Доки

@javalib #java
Please open Telegram to view this post
VIEW IN TELEGRAM
👍19🔥64
Тестовое собеседование на Middle Java-разработчика в эту среду

7 августа в 19:00 по мск приходи онлайн на открытое собеседование, чтобы посмотреть на настоящее интервью на Middle Java-разработчика.

Как это будет:
1. Степан Аракелян, ex-Tech Lead в МТС и ментор в ШОРКТАТ, проведет настоящее собеседование на Middle Java-разработчика
2. Степан будет комментировать каждый ответ респондента, чтобы дать понять чего от вас ожидает собеседующий на интервью
3. В конце можно будет задать любой вопрос Степану

На открытом эфире ШОРТКАТ ты узнаешь:
- Чего ждут от кандидатов на Middle позиции в Java-разработке
- Какие вопросы задают на интервью и зачем
- Как подготовиться к собесу, чтобы получить оффер

Это бесплатно?
Бесплатно

Переходи в нашего бота, чтобы получить ссылку на эфир → @shortcut_sh_bot
👍95🔥3