Перейти к основному содержимому

1310 записей с тегом "Java"

Посмотреть все теги

· 3 мин. чтения

1. Обзор

В этой быстрой статье мы рассмотрим MappedByteBuffer в пакете java.nio . Эта утилита может быть очень полезна для эффективного чтения файлов.

2. Как работает MappedByteBuffer

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

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

· 7 мин. чтения

1. Введение

В этом кратком руководстве мы рассмотрим разницу между instanceof , Class.isInstance и Class.isAssignableFrom . Мы узнаем, как использовать каждый метод и в чем разница между ними.

2. Настройка

Давайте настроим интерфейс и пару классов, которые будем использовать , изучая функциональность instanceof , Class.isInstance и Class.isAssignableFrom .

Во-первых, давайте определим интерфейс:

· 7 мин. чтения

1. Обзор

Анализ байт-кода является обычной практикой среди разработчиков Java по многим причинам, таким как поиск проблем с кодом, профилирование кода и поиск классов с определенными аннотациями.

В этой статье мы рассмотрим способы просмотра байт-кода файла класса в Java.

2. Что такое байт-код?

Байт-код — это промежуточное представление программы Java, позволяющее JVM преобразовывать программу в инструкции по сборке машинного уровня .

· 10 мин. чтения

1. Обзор

Secured Socket Layer (SSL) — это криптографический протокол, который обеспечивает безопасность при обмене данными по сети. В этом руководстве мы обсудим различные сценарии, которые могут привести к сбою рукопожатия SSL, и способы его устранения.

Обратите внимание, что наше введение в SSL с использованием JSSE более подробно описывает основы SSL.

2. Терминология

Важно отметить, что из-за уязвимостей безопасности SSL в качестве стандарта заменен протоколом безопасности транспортного уровня (TLS). Большинство языков программирования, включая Java, имеют библиотеки для поддержки как SSL, так и TLS.

· 6 мин. чтения

1. Обзор

В этом руководстве мы рассмотрим метод Stream::mapMulti, представленный в Java 16. Мы напишем простые примеры, иллюстрирующие его использование. В частности, мы увидим, что этот метод похож на Stream:: flatMap . Мы рассмотрим, при каких обстоятельствах мы предпочитаем использовать mapMulti , а не flatMap .

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

2. Подпись метода

Опустив подстановочные знаки, метод mapMulti можно записать более кратко:

· 3 мин. чтения

1. Введение

В этом кратком руководстве мы узнаем , как удалить повторяющиеся элементы из списка. Сначала мы будем использовать обычную Java, затем Guava и, наконец, решение на основе Java 8 Lambda.

Этот учебник является частью серии « Java — Back to Basic » здесь, на ForEach.

2. Удалите дубликаты из списка, используя обычную Java

Мы можем легко удалить повторяющиеся элементы из списка с помощью стандартной Java Collections Framework через Set :

· 5 мин. чтения

1. Обзор

Форматирование строк и генерация текстового вывода часто возникают во время программирования. Во многих случаях необходимо добавить новую строку в строку для форматирования вывода.

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

2. Добавление символов новой строки в строку

· 4 мин. чтения

1. Обзор

API процесса в Java был довольно примитивным до Java 5, единственным способом создать новый процесс было использование API Runtime.getRuntime().exec() . Затем в Java 5 был представлен API-интерфейс ProcessBuilder , который поддерживал более чистый способ создания новых процессов.

В Java 9 добавлен новый способ получения информации о текущих и любых порожденных процессах.

В этой статье мы рассмотрим оба этих улучшения.

2. Текущая информация о процессе Java

· 6 мин. чтения

1. Обзор

В этой статье мы рассмотрим реактивные потоки Java 9. Проще говоря, мы сможем использовать класс Flow , который содержит основные строительные блоки для построения логики обработки реактивного потока.

Reactive Streams — это стандарт для асинхронной обработки потоков с неблокирующим обратным давлением. Эта спецификация определена в Reactive Manifesto , и существуют различные ее реализации, например, RxJava или Akka-Streams.

2. Обзор реактивного API

Чтобы построить Flow , мы можем использовать три основные абстракции и объединить их в логику асинхронной обработки.

· 6 мин. чтения

1. Обзор

Тип перечисления Java предоставляет `` поддерживаемый языком способ создания и использования постоянных значений. Определяя конечный набор значений, перечисление более безопасно для типов, чем константные литеральные переменные, такие как String или int .

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

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

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