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

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

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

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

1. Обзор

В этой статье мы собираемся изучить основы одного из ключевых дополнительных API нового ввода-вывода (NIO2) в Java 7 — API асинхронного канала .

Это первая статья в серии статей, посвященных этой конкретной теме.

API-интерфейсы асинхронного канала являются усовершенствованием более ранних API-интерфейсов ввода-вывода (NIO), которые поставлялись с Java 1.4. Чтобы прочитать о NIO Selectors, перейдите по этой ссылке .

Еще одним усовершенствованием API-интерфейсов NIO является новый API-интерфейс файловой системы. Вы также можете узнать больше о его файловых операциях и операциях с путями на этом сайте.

Чтобы использовать асинхронные каналы NIO2 в наших проектах, нам нужно импортировать пакет java.nio.channels , так как в нем собраны необходимые классы:

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

1. Обзор

В этой статье мы сосредоточимся на новых API-интерфейсах ввода-вывода на платформе Java — NIO2 — для выполнения основных операций с файлами .

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

2. Настройка

Настройка вашего проекта для использования файловых API — это просто вопрос импорта:

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

1. Обзор

В этой статье мы узнаем, как использовать новый API пути ввода-вывода (NIO2) в Java.

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

2. Настройка

Поддержка NIO2 включена в пакет java.nio.file . Таким образом, настройка вашего проекта для использования Path API — это просто вопрос импорта всего в этом пакете:

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

1. Обзор

В этой статье мы собираемся изучить один из ключевых дополнительных API нового ввода-вывода (NIO2) в Java 7 — API асинхронного файлового канала.

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

Вы также можете узнать больше об операциях с файлами NIO.2 и операциях с путями — их понимание значительно облегчит понимание этой статьи.

Чтобы использовать асинхронные файловые каналы NIO2 в наших проектах, мы должны импортировать пакет java.nio.channels , так как он объединяет все необходимые классы:

import java.nio.channels.*;

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

1. Обзор

В этой статье мы собираемся изучить одну из расширенных функций API-интерфейсов файловой системы Java 7 NIO.2, а именно API-интерфейсы файловых атрибутов.

Ранее мы рассмотрели API -интерфейсы File и Path , если вы хотите сначала углубиться в эти основополагающие элементы.

Все файлы, необходимые для обработки операций с файловой системой, объединены в пакет java.nio.file :

import java.nio.file.*;

2. Основные атрибуты файла

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

1. Обзор

Строки в Java внутренне представлены char[] , содержащим символы String . И каждый char состоит из 2 байтов, потому что Java внутри использует UTF-16.

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

Для представления многих символов требуется 16 бит, но по статистике для большинства требуется всего 8 бит — представление символов LATIN-1. Таким образом, есть возможность улучшить потребление памяти и производительность.

Также важно то, что String обычно обычно занимают большую часть пространства кучи JVM. И из-за того, как они хранятся в JVM, в большинстве случаев экземпляр String может занимать вдвое больше места , чем ему действительно нужно .

В этой статье мы обсудим опцию Compressed String, представленную в JDK6, и новую компактную строку, недавно представленную в JDK9. Оба они были разработаны для оптимизации потребления памяти строками в JMV.

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

1. Обзор

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

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

2. Давайте сделаем шаг назад

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

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

1. Обзор

Создание неизменяемых объектов-значений вводит немного нежелательного шаблона. Кроме того, стандартные типы коллекций Java потенциально могут привнести изменчивость в объекты-значения, где эта черта нежелательна.

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

2. Ценные объекты и защитные копии

Сообщество Java обычно рассматривает объекты-значения как классификацию типов, представляющих неизменяемые записи данных. Конечно, такие типы могут содержать ссылки на стандартные типы коллекций Java, такие как java.util.List .

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

1. Введение

Разделение строк — очень частая операция; это краткое руководство сосредоточено на некоторых API, которые мы можем использовать, чтобы сделать это просто на Java.

2. Строка.split()

Начнем с основной библиотеки — сам класс String предлагает метод split() — очень удобный и достаточный для большинства сценариев. Он просто разбивает данную строку на основе разделителя, возвращая массив строк .

Давайте посмотрим на некоторые примеры. Начнем с разделения запятой:

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

1. Обзор

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

2. Строка.indexOf

Давайте сначала попробуем использовать метод String.indexOf . indexOf дает нам первую позицию, где найдена подстрока, или -1, если она вообще не найдена.

Когда мы ищем «Rhap», он возвращает 9: