Telegram Web
Ссылки на методы в Java

Лямбды в Java полезны во многих направлениях. Лямбда-выражения можно использовать для более простых задач, а лямбда-утверждения — для более сложных. Лямбды могут вызывать другие методы для текущего объекта (this) и объектов, которые находятся в области видимости, таких как текущий элемент итерации и конечная локальная переменная за пределами лямбды. Лямбду всегда можно упростить, поместив код в другой метод.

Читать статью
Data Wrangling Using Pandas, SQL, and Java

Автор:
Oswald Campesato
Год издания: 2023

#java #en

Скачать книгу
🗑 Понимание различных сборщиков мусора в Java:

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

🔵 Parallel Garbage Collector: Подходит для приложений с высокими требованиями к пропускной способности. Использует несколько потоков для выполнения как малых, так и больших сборок мусора, уменьшая время пауз, но при этом увеличивая использование CPU.

🔵 Concurrent Mark-Sweep (CMS) Garbage Collector: Разработан для минимизации пауз за счёт выполнения основной части работы по сборке мусора параллельно с выполнением приложений. Подходит для приложений, где критически важна низкая задержка.

🔵 G1 Garbage Collector: Сбалансированный сборщик мусора, который стремится обеспечить предсказуемое время пауз, разделяя кучу на регионы и выполняя сборку мусора поэтапно. Является хорошим выбором по умолчанию для большинства приложений.

🔵 Z Garbage Collector и Shenandoah: Сборщики мусора с ультранизкой задержкой, разработанные для работы с большими кучами. Основная часть работы по сборке мусора выполняется параллельно, что позволяет минимизировать время пауз даже при очень больших кучах.

👉 Уютное сообщество джавистов #java
Please open Telegram to view this post
VIEW IN TELEGRAM
Kotlin Design Patterns and Best Practices

Автор:
Alexey Soshin
Год издания: 2022

#kotlin #en

Скачать книгу
🤫 Некоторые популярные методы аутентификации

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

🔵 Аутентификация с помощью токенов:
Использует сгенерированные токены, такие как JSON Web Tokens (JWT), которые обмениваются между клиентом и сервером, обеспечивая повышенную безопасность без необходимости отправки учетных данных с каждым запросом.
Идеально подходит для более безопасных и масштабируемых систем.

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

🔵 Аутентификация с использованием API-ключей:
Назначает уникальные ключи пользователям или приложениям, которые отправляются в заголовках или параметрах; несмотря на простоту, может не обладать всеми преимуществами безопасности, как методы на основе токенов или OAuth.
Удобна для простого контроля доступа в менее чувствительных средах или для предоставления доступа к определённым функциям без необходимости предоставления разрешений, привязанных к конкретному пользователю.

💬 Какой метод аутентификации вы считаете наиболее эффективным с точки зрения обеспечения безопасности и удобства использования в ваших приложениях?

👉 Уютное сообщество джавистов #java
Please open Telegram to view this post
VIEW IN TELEGRAM
⌨️ Управление доступом к членам класса

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

Существует 4 уровня доступа:

private
Указывает, что доступ возможен только в его собственном классе.

package-private (нет явного модификатора)
Указывает, что доступ только внутри своего собственного пакета.

protected
Указывает, что доступ возможен только внутри его собственного пакета (как в случае с package-private) и, кроме того, для подкласса его класса в другом пакете.

public
Указывает, что доступ возможен отовсюду.

👉 Уютное сообщество джавистов #java
Please open Telegram to view this post
VIEW IN TELEGRAM
🚫 Ключевые проблемы многопоточности

🔵 Состояние гонки (Race Conditions):

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

🔵 Взаимные блокировки (Deadlocks):

Ситуация, когда два или более потока застревают в ожидании друг друга для освобождения ресурсов, что приводит к тупиковой ситуации.
Пример: Два человека держат предметы, которые нужны друг другу, и оба ждут, пока другой первый отдаст свой предмет.

🔵 Ошибки конкуренции (Concurrency Bugs):

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

🔵 Прерывание потока (Thread Interruption):

Основная проблема заключается в том, что сигнал на прерывание лишь уведомляет поток о необходимости остановки, но сам поток должен обработать этот сигнал и завершить свою работу самостоятельно.
Пример: Если вам нужно, чтобы рабочий остановился, вы посылаете ему сигнал "стоп". Но нет гарантий, что это случится.

🔵 Ошибки согласованности памяти (Memory Consistency Errors):

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

🔵 Соперничество за ресурсы (Resource Contention):

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

🔵 Голодание (Starvation):

Ситуация, когда потоку постоянно отказывают в доступе к ресурсам из-за приоритета других потоков.
Пример: Если одного работника постоянно обходят вниманием в пользу других, он никогда не сможет выполнить свою работу.

👉 Уютное сообщество джавистов #java
Please open Telegram to view this post
VIEW IN TELEGRAM
Spring Boot and Angular

Автор:
Devlin Basilan Duldulao
Год издания: 2022

#java #spring #en

Скачать книгу
Learning Java

Автор:
Loy Marc, Niemeyer Patrick, Leuck Daniel
Год издания: 2020

#java #en

Скачать книгу
The Java Module System

Автор:
Nicolai Parlog
Год издания: 2019

#java #en

Скачать книгу
Mastering Java: A Beginner's Guide

Автор:
Sufyan bin Uzayr
Год издания: 2022

#java #en

Скачать книгу
🤫 Секреты эффективной работы с ArrayList

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

1️⃣ Уменьшайте количество расширений: Каждый раз, когда ArrayList превышает свою текущую емкость, он создает новый массив большего размера. Это может замедлить работу, особенно при больших объемах данных. Чтобы избежать этого, инициализируйте ArrayList с заранее рассчитанной емкостью, если примерно знаете объем данных.

2️⃣ Избегайте частых вставок и удалений в середине списка: Операции вставки и удаления элементов в середине ArrayList требуют сдвига всех последующих элементов. Если такие операции критичны, рассмотрите использование LinkedList.

3️⃣ Используйте метод trimToSize(): Если ваш ArrayList больше не будет изменяться, вызов метода trimToSize() освободит неиспользуемую память, оптимизируя использование ресурсов.

4️⃣ Итерации важны: Используйте цикл for-each или метод forEach() для итерации по ArrayList. Они обеспечивают более читаемый и безопасный код. Но если нужен доступ по индексу, стандартный цикл for — ваш выбор.

5️⃣ Будьте осторожны с автобоксингом: При работе с примитивными типами, такими как int, ArrayList автоматически упаковывает их в Integer. Это может привести к лишним затратам памяти. Если производительность критична, используйте специализированные классы, такие как IntArrayList из библиотеки fastutil.

👉 Уютное сообщество джавистов #java
Please open Telegram to view this post
VIEW IN TELEGRAM
Interactive Object-Oriented
Programming in Java

Автор:
Vaskaran Sarcar
Год издания: 2020

#java #en

Скачать книгу
Web Development Toolkit
for Java Developers

Автор:
Dr. Nirali Dabhi
Год издания: 2023

#java #spring #en

Скачать книгу
97 вещей, о которых должен знать
каждый Jаvа-программист

Автор:
Кевлин Хенни
Год издания: 2023

#java #ru

Скачать книгу
Классические задачи
Computer Science
на языке Java

Автор:
Дэвид Копец
Год издания: 2022

#java #ru

Скачать книгу
Designing Hexagonal Architecture with Java

Автор:
Davi Vieira
Год издания: 2023

#java #en

Скачать книгу
От Java к Kotlin

Авторы:
Дункан Макгрегор, Нэт Прай
Год издания: 2023

#java #kotlin #ru

Скачать книгу
Java: руководство для начинающих. 9 изд

Автор:
Герберт Шилдт
Год издания: 2023

#java #ru

Скачать книгу
Java: устранение проблем

Автор:
Лауренциу Спилкэ
Год издания:
2023

#java #ru

Скачать книгу
2025/02/11 10:16:17
Back to Top
HTML Embed Code: