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

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

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

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

1. Обзор

Система модулей платформы Java (JPMS) обеспечивает более надежную инкапсуляцию, большую надежность и лучшее разделение задач.

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

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

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

2. Родительский модуль

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

1. Обзор

В этой статье мы покажем причину NoSuchFieldError и узнаем, как ее устранить.

2. Ошибка НоСучФилд

Как следует из названия, NoSuchFieldError возникает, когда указанное поле не существует. NoSuchFieldError расширяет класс IncompiledClassChangeError и вызывается, когда приложение пытается получить доступ или изменить поле объекта или статическое поле класса, но в объекте или классе больше нет этого поля .

` Класс IncompileClassChangeError расширяет класс [LinkageError](https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/LinkageError.html) и возникает, когда мы вносим несовместимые изменения в определение класса. Наконец, LinkageError расширяет Error` и показывает, что класс имеет некоторую зависимость от другого несовместимо измененного класса.

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

1. Обзор

В этой статье мы увидим, как захватить микрофон и записать входящий звук на Java, чтобы сохранить его в файл WAV. Для захвата входящего звука с микрофона мы используем Java Sound API, часть экосистемы Java.

Java Sound API — это мощный API для захвата, обработки и воспроизведения звука, состоящий из 4 пакетов. Мы сосредоточимся на пакете javax.sound.sampled , который предоставляет все интерфейсы и классы, необходимые для захвата входящего звука .

2. Что такое TargetDataLine ?

TargetDataLine — это тип объекта DataLine , который мы используем для захвата и чтения данных, связанных со звуком, и он собирает данные с устройств захвата звука, таких как микрофоны. `` Интерфейс предоставляет все методы, необходимые для чтения и захвата данных, а также считывает данные из буфера целевой строки данных.

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

1. Обзор

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

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

2. Пример входной строки

Прежде всего, давайте подготовим входную строку в качестве примера:

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

1. Обзор

Javadoc — это способ создания документации в формате HTML из исходного кода Java.

В этом руководстве мы сосредоточимся на тегах @version и @since в комментариях к документам.

2. Использование @version и @since

В этом разделе мы поговорим о том, как правильно использовать теги @version и @since .

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

1. Обзор

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

Чтобы узнать больше о самом Stream API, мы можем прочитать эту статью .

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

2. Метод Stream.collect ()

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

1. Обзор

Java 9 представляет новый уровень абстракции над пакетами, официально известный как система модулей платформы Java (JPMS), или для краткости «модули».

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

Мы также создадим простой проект, чтобы продемонстрировать все концепции, которые мы будем изучать в этом руководстве.

2. Что такое модуль?

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

1. Обзор

В этом кратком обзоре мы сосредоточимся на новых интересных улучшениях Stream API, появившихся в Java 9.

2. Стрим Takewhile/Dropwhile

Обсуждения этих методов неоднократно появлялись на StackOverflow (самый популярный — этот ).

Представьте, что мы хотим сгенерировать поток String , добавляя один символ к значению предыдущего потока , пока длина текущего значения в этом потоке не станет меньше 10 .

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

1. Введение

В этой быстрой статье мы рассмотрим StackWalking API Java 9 .

Новая функциональность обеспечивает доступ к потоку StackFrame , что позволяет нам легко просматривать стек как напрямую, так и с пользой использовать мощный Stream API в Java 8 .

2. Преимущества StackWalker

В Java 8 Throwable::getStackTrace и Thread::getStackTrace возвращают массив StackTraceElement s. Без большого количества ручного кода невозможно было отбросить ненужные кадры и оставить только те, которые нас интересуют.

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

1. Обзор

ByteBuffer — один из многих полезных классов в пакете java.nio . Он используется для чтения данных из каналов и прямой записи данных в каналы.

В этом коротком руководстве мы узнаем, как преобразовать ByteBuffer в String в Java .

2. Преобразование байтового буфера в строку

Процесс преобразования ByteBuffer в строку — это декодирование. Для этого процесса требуется Charset .