Промышленное производство
Промышленный Интернет вещей | Промышленные материалы | Техническое обслуживание и ремонт оборудования | Промышленное программирование |
home  MfgRobots >> Промышленное производство >  >> Industrial programming >> java

Java 8 — Краткое руководство

Java 8 — Обзор

JAVA 8 — это основная версия разработки языка программирования JAVA. Его первоначальная версия была выпущена 18 марта 2014 года. В выпуске Java 8 в Java появилась поддержка функционального программирования, новый движок JavaScript, новые API-интерфейсы для манипулирования датой и временем, новый API потоковой передачи и т. д.

Новые функции

Рассмотрим следующий фрагмент кода.

Живая демонстрация
09

Запустите программу, чтобы получить следующий результат.

18

Здесь sortUsingJava8() метод использует функцию сортировки с лямбда-выражением в качестве параметра для получения критериев сортировки.

Java 8 — Настройка среды

Настройка локальной среды

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

Java SE можно скачать бесплатно по следующей ссылке —

https://www.oracle.com/technetwork/java/javase/downloads/index-jsp-138363.html

Вы загружаете версию для своей операционной системы.

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

Настройка пути для Windows 2000/XP

Предполагая, что вы установили Java в каталог c:\Program Files\java\jdk —

Настройка пути для Windows 95/98/ME

Предполагая, что вы установили Java в каталог c:\Program Files\java\jdk —

Настройка пути для Linux, UNIX, Solaris, FreeBSD

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

Например, если вы используете bash в качестве оболочки, вы должны добавить следующую строку в конец файла '.bashrc:export PATH=/path/to/java:$PATH'

Популярные редакторы Java

Чтобы писать программы на Java, вам нужен текстовый редактор. На рынке доступны еще более сложные IDE. Но пока вы можете рассмотреть один из следующих вариантов —

Java 8 – лямбда-выражения

Лямбда-выражения появились в Java 8 и считаются самой важной функцией Java 8. Лямбда-выражения облегчают функциональное программирование и значительно упрощают разработку.

Синтаксис

Лямбда-выражение характеризуется следующим синтаксисом.

26

Ниже приведены важные характеристики лямбда-выражения.

Пример лямбда-выражений

Создайте следующую программу Java, используя любой редактор по вашему выбору, например, C:\> JAVA.

Java8Tester.java

Живая демонстрация
30

Проверьте результат

Скомпилируйте класс, используя javac компилятор следующим образом —

48

Теперь запустите Java8Tester следующим образом —

56

Он должен произвести следующий вывод —

69

Ниже приведены важные моменты, которые следует учитывать в приведенном выше примере.

Область

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

Пример области действия

Создайте следующую программу Java, используя любой редактор по вашему выбору, например, C:\> JAVA.

Java8Tester.java

Живая демонстрация
71

Проверьте результат

Скомпилируйте класс, используя javac компилятор следующим образом —

87

Теперь запустите Java8Tester следующим образом —

97

Он должен произвести следующий вывод —

105 

Java 8 – Ссылки на методы

Ссылки на методы помогают указать на методы по их именам. Ссылка на метод описывается с помощью символа "::". Ссылку на метод можно использовать для указания следующих типов методов —

  • Статические методы
  • Методы экземпляра
  • Конструкторы, использующие новый оператор (TreeSet::new)

Пример ссылки на метод

Создайте следующую программу Java, используя любой редактор по вашему выбору, например, C:\> JAVA.

Java8Tester.java

112

Здесь мы передали метод System.out::println в качестве ссылки на статический метод.

Проверьте результат

Скомпилируйте класс, используя javac компилятор следующим образом —

127

Теперь запустите Java8Tester следующим образом —

132

Он должен произвести следующий вывод —

144

Java 8 — функциональные интерфейсы

Функциональные интерфейсы имеют одну функциональность для демонстрации. Например, интерфейс Comparable с одним методом «compareTo» используется для целей сравнения. В Java 8 определено множество функциональных интерфейсов, которые можно широко использовать в лямбда-выражениях. Ниже приведен список функциональных интерфейсов, определенных в пакете java.util.Function.


<тд>

БиКонсумер

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

<тд>

БиФункция

Представляет функцию, которая принимает два аргумента и возвращает результат.

<тд>

Двоичный оператор

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

<тд>

Бипредикат

Представляет предикат (логическую функцию) двух аргументов.

<тд>

Булев поставщик

Представляет поставщика логических результатов.

<тд>

Потребитель

Представляет операцию, которая принимает один входной аргумент и не возвращает результата.

<тд>

Двойной двоичный оператор

Представляет операцию над двумя операндами с двойным значением и получением результата с двойным значением.

<тд>

Двойной потребитель

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

<тд>

Двойная функция

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

<тд>

Двойной предикат

Представляет предикат (логическую функцию) одного аргумента с двойным значением.

<тд>

Двойной поставщик

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

<тд>

Функция DoubleToInt

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

<тд>

Функция DoubleToLong

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

<тд>

Двойной унарный оператор

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

<тд>

Функция

Представляет функцию, которая принимает один аргумент и возвращает результат.

<тд>

IntBinaryOperator

Представляет операцию над двумя операндами с целочисленным значением и возвращает результат с целочисленным значением.

<тд>

Интернет-потребитель

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

<тд>

ИнтФункция

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

<тд>

Интпредикат

Представляет предикат (функция с логическим значением) одного аргумента с целочисленным значением.

<тд>

ИнтПоставщик

Представляет поставщика результатов с типом int.

<тд>

IntToDoubleFunction

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

<тд>

IntToLongFunction

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

<тд>

IntUnaryOperator

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

<тд>

Оператор LongBinary

Представляет операцию над двумя операндами с длинным значением и возвращает результат с длинным значением.

<тд>

Длинный потребитель

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

<тд>

Длинная функция

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

<тд>

Длинный предикат

Представляет предикат (логическую функцию) одного аргумента с длинным значением.

<тд>

Длинный поставщик

Представляет поставщика долгосрочных результатов.

<тд>

Функция LongToDouble

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

<тд>

Функция LongToInt

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

<тд>

LongUnaryOperator

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

<тд>

ОбжДвойной Потребитель

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

<тд>

ОбжИнтПотребитель

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

<тд>

Обжлонгпотребитель

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

<тд>

Предикат

Представляет предикат (логическую функцию) одного аргумента.

<тд>

Поставщик

Представляет поставщика результатов.

<тд>

ToDoubleBiFunction

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

<тд>

ToDoubleFunction

Представляет функцию, которая возвращает двойной результат.

<тд>

ToIntBiFunction

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

<тд>

ToIntFunction

Представляет функцию, которая возвращает результат с целочисленным значением.

<тд>

ToLongBiFunction

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

<тд>

ToLongFunction

Представляет функцию, которая возвращает результат с длинным значением.

<тд>

Унарный оператор

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

Сер.№ Интерфейс и описание
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43

Пример функционального интерфейса

Интерфейс Predicate — это функциональный интерфейс с методом test(Object) для возврата логического значения. Этот интерфейс означает, что объект проверяется на истинность или ложность.

Создайте следующую программу Java, используя любой редактор по вашему выбору, например, C:\> JAVA.

Java8Tester.java

Живая демонстрация
157

Здесь мы передали интерфейс Predicate, который принимает один вход и возвращает логическое значение.

Проверьте результат

Скомпилируйте класс, используя javac компилятор следующим образом —

163

Теперь запустите Java8Tester следующим образом —

177

Он должен произвести следующий вывод —

184

Java 8 — методы по умолчанию

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

Например, интерфейсы «Список» или «Коллекция» не имеют объявления метода «forEach». Таким образом, добавление такого метода просто нарушит реализацию фреймворка коллекции. В Java 8 представлен метод по умолчанию, так что интерфейс List/Collection может иметь реализацию метода forEach по умолчанию, и класс, реализующий эти интерфейсы, не должен реализовывать то же самое.

Синтаксис

195

Несколько значений по умолчанию

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

200

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

217

Второе решение — вызвать метод по умолчанию указанного интерфейса с помощью super.

227

Статические методы по умолчанию

Интерфейс также может иметь статические вспомогательные методы начиная с Java 8.

236

Пример метода по умолчанию

Создайте следующую программу Java, используя любой редактор по вашему выбору, например, C:\> JAVA.

Java8Tester.java

Живая демонстрация
249

Проверьте результат

Скомпилируйте класс, используя javac компилятор следующим образом —

259

Теперь запустите Java8Tester следующим образом —

263

Он должен произвести следующий вывод —

277

Java 8 — Потоки

Поток — это новый абстрактный слой, представленный в Java 8. Используя поток, вы можете обрабатывать данные декларативным способом, подобным операторам SQL. Например, рассмотрим следующую инструкцию SQL.

282

Приведенное выше выражение SQL автоматически возвращает сведения о максимальном наемном работнике без каких-либо вычислений со стороны разработчика. Используя фреймворк коллекций в Java, разработчику приходится использовать циклы и повторять проверки. Другой проблемой является эффективность; поскольку многоядерные процессоры легко доступны, разработчик Java должен писать параллельную обработку кода, которая может быть довольно подвержена ошибкам.

Чтобы решить такие проблемы, в Java 8 была представлена ​​концепция потока, которая позволяет разработчику обрабатывать данные декларативно и использовать многоядерную архитектуру без необходимости писать для этого какой-либо специальный код.

Что такое поток?

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

  • Последовательность элементов − Поток последовательно предоставляет набор элементов определенного типа. Поток получает/вычисляет элементы по требованию. Он никогда не сохраняет элементы.

  • Источник − Stream использует коллекции, массивы или ресурсы ввода-вывода в качестве источника ввода.

  • Агрегированные операции − Stream поддерживает агрегированные операции, такие как фильтрация, сопоставление, ограничение, сокращение, поиск, сопоставление и т. д.

  • Конвейерная обработка − Большинство операций с потоками возвращают сам поток, чтобы их результат можно было передать по конвейеру. Эти операции называются промежуточными операциями, и их функция состоит в том, чтобы принимать входные данные, обрабатывать их и возвращать результат в цель. Метод collect() — это терминальная операция, которая обычно присутствует в конце операции конвейерной обработки, чтобы отметить конец потока.

  • Автоматические итерации − Потоковые операции выполняют внутренние итерации по предоставленным исходным элементам, в отличие от коллекций, где требуется явная итерация.

Создание потоков

В Java 8 интерфейс Collection имеет два метода для создания потока.

  • поток() − Возвращает последовательный поток, считая коллекцию источником.

  • параллельный поток() − Возвращает параллельный поток, считая коллекцию источником.

293

для каждого

Stream предоставил новый метод forEach для повторения каждого элемента потока. В следующем фрагменте кода показано, как вывести 10 случайных чисел с помощью forEach.

302

карта

Метод map используется для сопоставления каждого элемента с соответствующим результатом. Следующий сегмент кода печатает уникальные квадраты чисел, используя карту.

315

фильтр

Метод «фильтр» используется для исключения элементов на основе критерия. Следующий сегмент кода выводит количество пустых строк с использованием фильтра.

325

лимит

Метод «ограничения» используется для уменьшения размера потока. В следующем фрагменте кода показано, как вывести 10 случайных чисел с помощью ограничения.

338

отсортировано

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

342

Параллельная обработка

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

353

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

Коллекционеры

Коллекторы используются для объединения результатов обработки элементов потока. Коллекторы можно использовать для возврата списка или строки.

364

Статистика

В Java 8 введены сборщики статистики для расчета всей статистики при выполнении потоковой обработки.

376

Пример трансляции

Создайте следующую программу Java, используя любой редактор по вашему выбору, например, C:\> JAVA.

Java8Tester.java

Живая демонстрация
385

Проверьте результат

Скомпилируйте класс, используя javac компилятор следующим образом —

391

Теперь запустите Java8Tester следующим образом —

404

Это должно дать следующий результат —

418

Java 8 – необязательный класс

Необязательный объект-контейнер, используемый для хранения ненулевых объектов. Необязательный объект используется для представления null с отсутствующим значением. Этот класс имеет различные служебные методы, облегчающие коду обработку значений как «доступных» или «недоступных» вместо проверки нулевых значений. Он появился в Java 8 и похож на опциональный в Guava.

Объявление класса

Ниже приведено объявление для java.util.Optional. класс —

421

Метод класса

<тд>

статический Необязательный пустой()

Возвращает пустой необязательный экземпляр.

<тд>

логическое равенство (объект obj)

Указывает, является ли какой-либо другой объект «равным» этому необязательному.

<тд>

Необязательный фильтр(Predicate predicate)

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

<тд>

Необязательный flatMap(Функция> сопоставитель)

Если значение присутствует, оно применяет к нему предоставленную функцию сопоставления с факультативом, возвращает этот результат, в противном случае возвращает пустое факультативное значение.

<тд>

Получить()

Если значение присутствует в этом необязательном параметре, возвращает значение, в противном случае генерируется исключение NoSuchElementException.

<тд>

целый хэш-код()

Возвращает значение хэш-кода текущего значения, если оно есть, или 0 (ноль), если значение отсутствует.

<тд>

void ifPresent(Consumer потребитель)

Если значение присутствует, он вызывает указанного потребителя со значением, в противном случае ничего не делает.

<тд>

логическое значение isPresent()

Возвращает true, если присутствует значение, иначе false.

<тд>

Дополнительная карта (функция mapper)

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

<тд>

статический Необязательный из (значение T)

Возвращает необязательный элемент с указанным текущим ненулевым значением.

<тд>

статический Необязательный ofNullable(значение T)

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

<тд>

T orElse(T другое)

Возвращает значение, если оно присутствует, иначе возвращает другое.

<тд>

T orElseGet(Поставщик другое)

Возвращает значение, если оно присутствует, в противном случае вызывает другое и возвращает результат этого вызова.

<тд>

T orElseThrow(Supplier exceptionSupplier)

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

<тд>

Строка toString()

Возвращает непустое строковое представление этого параметра, подходящее для отладки.

Сер.№ Метод и описание
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

Этот класс наследует методы от следующего класса —

  • java.lang.Объект

Необязательный пример

Создайте следующую программу Java, используя любой редактор по вашему выбору, например, C:\> JAVA.

Java8Tester.java

Живая демонстрация
435

Проверьте результат

Скомпилируйте класс, используя javac компилятор следующим образом —

444

Теперь запустите Java8Tester следующим образом —

452

Он должен произвести следующий вывод —

468

Java 8 – Nashorn JavaScript

С Java 8, Nashorn, представлен значительно улучшенный движок javascript, который заменит существующий Rhino. Nashorn обеспечивает от 2 до 10 раз более высокую производительность, поскольку он напрямую компилирует код в памяти и передает байт-код в JVM. Nashorn использует функцию динамического вызова, представленную в Java 7, для повышения производительности.

JJS

Для механизма Nashorn в JAVA 8 представлен новый инструмент командной строки, jjs, для выполнения кода javascript в консоли.

Интерпретация файла js

Создайте и сохраните файл sample.js. в папке c:\>JAVA.

sample.js

470

Откройте консоль и используйте следующую команду.

480

Он выдаст следующий вывод:

490

jjs в интерактивном режиме

Откройте консоль и используйте следующую команду.

501

Передать аргументы

Откройте консоль и используйте следующую команду.

518

Вызов JavaScript из Java

С помощью ScriptEngineManager код JavaScript можно вызывать и интерпретировать в Java.

Пример

Создайте следующую программу Java, используя любой редактор по вашему выбору, например, C:\> JAVA.

Java8Tester.java

Живая демонстрация
526

Проверьте результат

Скомпилируйте класс, используя javac компилятор следующим образом —

538

Теперь запустите Java8Tester следующим образом —

544

Это должно дать следующий результат —

556

Вызов Java из JavaScript

В следующем примере показано, как импортировать и использовать классы Java в сценарии Java.

Создайте и сохраните файл sample.js. в папке c:\>JAVA.

sample.js

566

Откройте консоль и используйте следующую команду.

579

Он должен произвести следующий вывод —

580

Java 8 — новый API даты/времени

В Java 8 представлен новый API даты и времени, который устраняет следующие недостатки старого API даты и времени.

  • Небезопасно для потоков − java.util.Date не является потокобезопасным, поэтому разработчикам приходится иметь дело с проблемой параллелизма при использовании даты. Новый API даты и времени неизменяем и не имеет методов установки.

  • Плохой дизайн − Дата по умолчанию начинается с 1900, месяц начинается с 1, а день начинается с 0, поэтому единообразия нет. В старом API были менее прямые методы для операций с датами. Новый API предоставляет множество служебных методов для таких операций.

  • Сложная обработка часового пояса − Разработчикам пришлось написать много кода для решения проблем с часовыми поясами. Новый API был разработан с учетом специфики предметной области.

Java 8 представляет новый API даты и времени в пакете java.time. Ниже приведены некоторые важные классы, представленные в пакете java.time.

  • Местный − Упрощенный API даты и времени без сложной обработки часового пояса.

  • Зоны − Специализированный API даты и времени для работы с различными часовыми поясами.

Локальный API даты и времени

Классы LocalDate/LocalTime и LocalDateTime упрощают разработку, когда часовые пояса не требуются. Давайте посмотрим на них в действии.

Создайте следующую программу Java, используя любой редактор по вашему выбору, например, C:\> JAVA.

Java8Tester.java

Живая демонстрация
590

Проверьте результат

Скомпилируйте класс, используя javac компилятор следующим образом —

609

Теперь запустите Java8Tester следующим образом —

613

Он должен произвести следующий вывод —

626

Зонированный API даты и времени

Зональный API даты и времени следует использовать, когда необходимо учитывать часовой пояс. Давайте посмотрим на них в действии.

Создайте следующую программу Java, используя любой редактор по вашему выбору, например, C:\> JAVA.

Java8Tester.java

Живая демонстрация
635

Проверьте результат

Скомпилируйте класс, используя javac компилятор следующим образом —

642

Теперь запустите Java8Tester следующим образом —

658

Он должен произвести следующий вывод —

669

Перечисление единиц времени

Перечисление java.time.temporal.ChronoUnit добавлено в Java 8 для замены целочисленных значений, используемых в старом API для представления дня, месяца и т. д. Давайте посмотрим на них в действии.

Создайте следующую программу Java, используя любой редактор по вашему выбору, например, C:\> JAVA.

Java8Tester.java

Живая демонстрация
673

Проверьте результат

Скомпилируйте класс, используя javac компилятор следующим образом —

688

Теперь запустите Java8Tester следующим образом —

699

Это должно дать следующий результат —

702

Период и продолжительность

В Java 8 введены два специализированных класса для работы с разницей во времени.

  • Период − Он имеет дело с количеством времени, основанным на дате.

  • Продолжительность − Это касается количества времени, основанного на времени.

Давайте посмотрим на них в действии.

Создайте следующую программу Java, используя любой редактор по вашему выбору, например, C:\> JAVA.

Java8Tester.java

Живая демонстрация
714

Проверьте результат

Скомпилируйте класс, используя javac компилятор следующим образом —

728

Теперь запустите Java8Tester следующим образом —

730

Он должен произвести следующий вывод —

748

Настройщики времени

TemporalAdjuster используется для выполнения математических операций с датами. Например, получить «Вторая суббота месяца» или «Следующий вторник». Давайте посмотрим на них в действии.

Создайте следующую программу Java, используя любой редактор по вашему выбору, например, C:\> JAVA.

Java8Tester.java

Живая демонстрация
755

Проверьте результат

Скомпилируйте класс, используя javac компилятор следующим образом —

761

Теперь запустите Java8Tester следующим образом —

775

Это должно дать следующий результат —

785

Обратная совместимость

К исходным объектам Date и Calendar добавляется метод toInstant(), который можно использовать для их преобразования в новый API Date-Time. Используйте метод ofInstant(Insant,ZoneId) для получения объекта LocalDateTime или ZonedDateTime. Давайте посмотрим на них в действии.

Создайте следующую программу Java, используя любой редактор по вашему выбору, например, C:\> JAVA.

Java8Tester.java

Живая демонстрация
790

Проверьте результат

Скомпилируйте класс, используя javac компилятор следующим образом —

806

Теперь запустите Java8Tester следующим образом —

810

Он должен произвести следующий вывод —

827

Java 8 — Base64

С появлением Java 8 Base64 наконец получил должное. Java 8 теперь имеет встроенный кодировщик и декодер для кодирования Base64. В Java 8 мы можем использовать три типа кодировки Base64.

  • Простой − Выход сопоставляется с набором символов, лежащих в A-Za-z0-9+/. Кодер не добавляет в вывод никакой перевод строки, а декодер отклоняет любой символ, кроме A-Za-z0-9+/.

  • URL − Выход сопоставляется с набором символов, лежащих в A-Za-z0-9+_. Выходные данные безопасны для URL и имени файла.

  • MIME − Выход преобразуется в удобный для MIME формат. Вывод представлен строками не более чем по 76 символов каждая и использует возврат каретки '\r', за которым следует перевод строки '\n' в качестве разделителя строк. В конце закодированного вывода нет разделителя строк.

Вложенные классы

<тд>

статический класс Base64.Decoder

Этот класс реализует декодер для декодирования байтовых данных с использованием схемы кодирования Base64, как указано в RFC 4648 и RFC 2045.

<тд>

статический класс Base64.Encoder

Этот класс реализует кодировщик для кодирования байтовых данных с использованием схемы кодирования Base64, как указано в RFC 4648 и RFC 2045.

Сер.№ Вложенный класс и описание
1
2

Методы

<тд>

статический Base64.Decoder getDecoder()

Возвращает Base64.Decoder, который декодирует с использованием схемы кодирования base64 типа Basic.

<тд>

статический Base64.Encoder getEncoder()

Возвращает Base64.Encoder, который кодирует с использованием схемы кодирования base64 типа Basic.

<тд>

статический Base64.Decoder getMimeDecoder()

Возвращает Base64.Decoder, который декодирует с использованием схемы декодирования base64 типа MIME.

<тд>

статический Base64.Encoder getMimeEncoder()

Возвращает Base64.Encoder, который кодирует с использованием схемы кодирования base64 типа MIME.

<тд>

статический Base64.Encoder getMimeEncoder(int lineLength, byte[] lineSeparator)

Возвращает Base64.Encoder, который кодирует с использованием схемы кодирования base64 типа MIME с указанной длиной строки и разделителями строк.

<тд>

статический Base64.Decoder getUrlDecoder()

Возвращает Base64.Decoder, который декодирует с использованием схемы кодирования base64 безопасного типа URL и имени файла.

<тд>

статический Base64.Encoder getUrlEncoder()

Возвращает Base64.Encoder, который кодирует с использованием схемы кодирования base64 безопасного типа URL и имени файла.

Сер.№ Название и описание метода
1
2
3
4
5
6
7

Унаследованные методы

Этот класс наследует методы от следующего класса —

  • java.lang.Объект

Пример Base64

Создайте следующую программу Java, используя любой редактор по вашему выбору, скажем, C:/> JAVA.

Java8Tester.java

Живая демонстрация
838

Проверьте результат

Скомпилируйте класс, используя javac компилятор следующим образом —

843

Теперь запустите Java8Tester следующим образом —

858

Он должен произвести следующий вывод —

860

java

  1. Java вектор
  2. Фрезерование - краткое руководство
  3. Краткое руководство по разработке и выполнению PM
  4. Краткое руководство по страхованию от сбоев в цепочке поставок
  5. Краткое руководство по станку для гибки квадратных труб
  6. Краткое руководство по машине холодного отжима
  7. Краткое руководство по планетарной коробке передач
  8. Краткое руководство по струйной мельнице
  9. Краткое руководство по сервопрессу
  10. Краткое руководство по пневматическим цилиндрам