Java Learning
18.7K subscribers
1.62K photos
1 video
3 files
998 links
№ 5079899194

Обучающий канал по Java

Ссылка для друга - https://t.iss.one/+ZEYYht6-46w5MDM6

По всем вопросам @mascarov_valentin

Реклама на бирже - https://telega.in/c/Java_per_month
Download Telegram
Что такое тернарный оператор выбора?

Тернарный условный оператор ?: - оператор, которым можно заменить некоторые конструкции операторов if-then-else.

Выражение записывается в следующей форме:

 условие ? выражение1 : выражение2

Если условие выполняется, то вычисляется выражение1 и его результат становится результатом выполнения всего оператора. Если же условие равно false, то вычисляется выражение2 и его значение становится результатом работы оператора. Оба операнда выражение1 и выражение2 должны возвращать значение одинакового (или совместимого) типа.
👍23
Collections.emptyList()

Collections.emptyList() возвращает пустой неизменяемый список.
Это статический фабричный метод из класса Collections, который возвращает пустой список типа List<Object>.

Основные моменты:
— Возвращает пустой список, а не null. Это полезно, чтобы избежать проверок на null.
— Список неизменяемый (immutable). Нельзя добавлять или удалять элементы из него.
— Работает быстрее, чем создание нового списка через new ArrayList().
— Может использоваться как значение по умолчанию или стартовое значение для списка.
👍22
unmodifiableList

unmodifiableList используется для создания неизменяемого списка на основе другого списка.

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

Созданный список нельзя изменить: нельзя добавлять/удалять элементы, изменять их, иначе будет выброшено исключение.

В примере на основе mutableList создан неизменяемый список. Попытка изменить его выбросит исключение, но изменения в mutableList отразятся в immutableList.
👍15
#вопросы_с_собеседований
Что такое Executor?

Executor — это интерфейс, который позволяет запускать задачи асинхронно. Используется вместе с интерфейсами Callable и Future для асинхронного выполнения задач.

Он определяет единственный метод execute(), который принимает объект Runnable с задачей для выполнения.
Интерфейс позволяет отделить логику создания и запуска потоков от самих задач.

Потоки создаются заранее и хранятся в пуле, а задачи просто отправляются на выполнение через execute().
Это дает выигрыш в производительности, т. к. исключает накладные расходы на создание новых потоков.
👍14
#Вопросы_с_собеседования
Какие условия “благополучной” сериализации объекта?

Для успешной сериализации объекта должны выполняться следующие условия:

1. Класс объекта должен имплементировать интерфейс Serializable.

2. В классе должно быть определено serialVersionUID — идентификатор версии класса. Это нужно для совместимости версий класса при десериализации.

3. Все поля класса должны быть сериализуемыми типами данных. Примитивные типы сериализуются автоматически, для объектов вложенных классов нужно также выполнить условия сериализации.

4. Если в классе есть поля, которые не нужно сериализовывать, они помечаются модификатором transient.

5. Методы класса сериализации не подлежат, сериализуются только данные объекта.

6. Класс должен иметь конструктор по умолчанию без параметров для корректной десериализации.
👍25🤔1
Метод weakCompareAndSwap()

Метод weakCompareAndSwap() используется для атомарного обновления полей объекта без блокировки.

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

В этом примере два потока пытаются атомарно изменить значение счетчика с 0 на 1 и 2 соответственно. Метод weakCompareAndSwap гарантирует, что только один поток сможет успешно выполнить изменение.
👍14
Mockito

Mockito — это фреймворк для создания заглушек (mocks) в Java. Заглушки — это имитаторы реальных объектов, которые используются при тестировании кода.

Зачем использовать Mockito?

С помощью Mockito вы можете легко создавать заглушки для сложных объектов, что позволяет вам сосредоточиться на тестировании конкретного фрагмента кода. Также заглушки Mockito позволяют вам имитировать различные сценарии, что помогает вам написать более надежные тесты.

#для_продвинутых
👍16
Jackson

Jackson — это популярная библиотека Java для сериализации и десериализации объектов Java в различные текстовые форматы, такие как JSON, XML, YAML и CSV.

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

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

#для_продвинутых
👍20
Apache POI

Apache POI – это библиотека с открытым исходным кодом для работы с форматами файлов Microsoft Office в Java.

Она позволяет читать, создавать и редактировать файлы Excel, Word, PowerPoint и другие.

#для_начинающих
👍29
Библиотека Apache Commons BeanUtils

Apache Commons BeanUtils — это набор утилит для работы с Java-бинами в проектах на Java. Java-бин — это простой класс Java, который следует определенным соглашениям:

Он имеет поля (атрибуты) для хранения данных.
Он предоставляет методы доступа (геттеры и сеттеры) для чтения и записи значений этих полей.
Обычно он имеет пустой конструктор по умолчанию.

Библиотека BeanUtils упрощает работу с такими классами, избавляя вас от необходимости вручную вызывать методы доступа.

#для_продвинутых
👍9🤔1
Apache Commons Lang3

Apache Commons Lang3 — это библиотека Java, предоставляющая набор утилит для работы с базовыми классами Java, такими как String, Object, Collection и др.

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

#для_продвинутых
👍15
Fastjson

Fastjson — это высокопроизводительная библиотека Java, предназначенная для преобразования объектов Java в JSON и наоборот. Она легкая, быстрая и простая в использовании.

#для_начинающих
👍20
SLF4J

SLF4J (Simple Logging Facade for Java) — это библиотека для логирования, предоставляющая простой и унифицированный интерфейс для работы с различными системами логирования в Java.

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

#для_продвинутых
👍163
OkHttp

OkHttp — это эффективная библиотека HTTP-клиента с открытым исходным кодом для Java и Kotlin, разработанная Square. Она обеспечивает простой и удобный API для выполнения HTTP-запросов, включая поддержку протоколов HTTP/1.1 и HTTP/2.

#для_продвинутых
👍191
Retrofit

Retrofit — это популярная библиотека Java, которая упрощает взаимодействие с REST API. Она позволяет легко создавать HTTP-запросы, получать и обрабатывать ответы, а также сериализовать и десериализовать данные.

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

#для_продвинутых
👍13😁3
Hystrix

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

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

#для_продвинутых
👍201
Resilience4j

Resilience4j — это библиотека отказоустойчивости, разработанная для Java 8 и функционального программирования. Она позволяет повысить надежность и устойчивость вашего приложения к сбоям.

Resilience4j предоставляет декораторы, которые можно использовать для обертывания функциональных интерфейсов, лямбда-выражений или ссылок на методы. Эти декораторы добавляют к обернутому коду функциональность отказоустойчивости.

#для_продвинутых
👍11
Что такое Apache Commons Net?

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

Цель библиотеки:
— Предоставить базовый доступ к протоколам, а не высокоуровневые абстракции.
— Сделать разработку сетевых приложений Java более простой и удобной.

Как использовать Apache Commons Net?

1. Добавьте библиотеку в свой проект.
2. Включите необходимые пакеты в ваш код.
3. Создайте экземпляр класса, соответствующего нужному протоколу.
4. Используйте методы класса для взаимодействия с протоколом.

#для_продвинутых
👍14