Работа с байтовыми потоками: InputStream, OutputStream
Байтовые потоки в Java используются для чтения и записи данных на уровне байтов. Они идеальны для работы с бинарными данными, такими как изображения, аудио, видео и другие типы файлов, которые не являются текстовыми.
InputStream
InputStream — это абстрактный класс, предназначенный для чтения байтов из различных источников, таких как файлы, массивы байтов, сети и другие.
Основные методы InputStream:
int read(): Читает один байт и возвращает его. Возвращает -1 в случае достижения конца потока.
int read(byte[] b): Читает байты в массив b. Возвращает количество прочитанных байтов или -1, если достигнут конец потока.
int read(byte[] b, int off, int len): Читает до len байтов в массив b, начиная с off. Возвращает количество прочитанных байтов или -1, если достигнут конец потока.
void close(): Закрывает поток и освобождает все связанные с ним ресурсы.
Пример использования FileInputStream для чтения данных из файла:
В этом примере создается FileInputStream для чтения байтов из файла example.bin. Каждый байт читается и выводится на консоль.
OutputStream
OutputStream — это абстрактный класс, предназначенный для записи байтов в различные источники, такие как файлы, массивы байтов, сети и другие.
Основные методы OutputStream:
void write(int b): Записывает один байт.
void write(byte[] b): Записывает все байты из массива b.
void write(byte[] b, int off, int len): Записывает байты из массива b, начиная с off и до len.
void close(): Закрывает поток и освобождает все связанные с ним ресурсы.
void flush(): Очищает буфер, записывая все данные.
Пример использования FileOutputStream для записи данных в файл:
В этом примере создается FileOutputStream для записи байтов в файл example.bin. Строка "Hello, World!" конвертируется в массив байтов и записывается в файл.
#Java #Training #IO
Байтовые потоки в Java используются для чтения и записи данных на уровне байтов. Они идеальны для работы с бинарными данными, такими как изображения, аудио, видео и другие типы файлов, которые не являются текстовыми.
InputStream
InputStream — это абстрактный класс, предназначенный для чтения байтов из различных источников, таких как файлы, массивы байтов, сети и другие.
Основные методы InputStream:
int read(): Читает один байт и возвращает его. Возвращает -1 в случае достижения конца потока.
int read(byte[] b): Читает байты в массив b. Возвращает количество прочитанных байтов или -1, если достигнут конец потока.
int read(byte[] b, int off, int len): Читает до len байтов в массив b, начиная с off. Возвращает количество прочитанных байтов или -1, если достигнут конец потока.
void close(): Закрывает поток и освобождает все связанные с ним ресурсы.
Пример использования FileInputStream для чтения данных из файла:
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
public class InputStreamExample {
public static void main(String[] args) {
try (InputStream inputStream = new FileInputStream("example.bin")) {
int data;
while ((data = inputStream.read()) != -1) {
System.out.print((char) data);
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
В этом примере создается FileInputStream для чтения байтов из файла example.bin. Каждый байт читается и выводится на консоль.
OutputStream
OutputStream — это абстрактный класс, предназначенный для записи байтов в различные источники, такие как файлы, массивы байтов, сети и другие.
Основные методы OutputStream:
void write(int b): Записывает один байт.
void write(byte[] b): Записывает все байты из массива b.
void write(byte[] b, int off, int len): Записывает байты из массива b, начиная с off и до len.
void close(): Закрывает поток и освобождает все связанные с ним ресурсы.
void flush(): Очищает буфер, записывая все данные.
Пример использования FileOutputStream для записи данных в файл:
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
public class OutputStreamExample {
public static void main(String[] args) {
try (OutputStream outputStream = new FileOutputStream("example.bin")) {
String data = "Hello, World!";
outputStream.write(data.getBytes());
} catch (IOException e) {
e.printStackTrace();
}
}
}
В этом примере создается FileOutputStream для записи байтов в файл example.bin. Строка "Hello, World!" конвертируется в массив байтов и записывается в файл.
#Java #Training #IO
Что выведет код?
#Tasks
import java.util.*;
public class ListExample {
public static void main(String[] args) {
List<String> list = new ArrayList<>(Arrays.asList("one", "two", "three", "four", "five"));
list.add(2, "zero");
list.remove("four");
list.set(3, "ten");
Collections.sort(list, Comparator.reverseOrder());
for (String s : list) {
System.out.print(s + " ");
}
}
}
#Tasks
Варианты ответа:
Anonymous Quiz
0%
zero two ten three one
70%
zero two ten one five
20%
zero two three ten one
10%
zero ten two three one
Подписывайтесь на канал, вы будете летать только на своем самолете🛩
https://t.me/Java_for_beginner_dev
#Mems
https://t.me/Java_for_beginner_dev
#Mems
Работа с буферизованными байтовыми потоками: BufferedInputStream, BufferedOutputStream
Буферизация является процессом временного хранения данных в памяти перед их чтением или записью. Буферизация повышает производительность операций ввода-вывода, уменьшая количество обращений к физическим устройствам (таким как диски) и сетевым ресурсам.
BufferedInputStream
BufferedInputStream — это класс, который добавляет возможность буферизации к байтовым потокам ввода. Он оборачивает другие байтовые потоки и использует внутренний буфер для чтения данных.
Основные методы BufferedInputStream:
Конструкторы:
BufferedInputStream(InputStream in): Создает буферизованный поток ввода с указанным потоком.
BufferedInputStream(InputStream in, int size): Создает буферизованный поток ввода с указанным размером буфера.
int read(): Читает один байт из буфера. Возвращает -1 в случае достижения конца потока.
int read(byte[] b, int off, int len): Читает до len байтов в массив b, начиная с off. Возвращает количество прочитанных байтов или -1, если достигнут конец потока.
void close(): Закрывает поток и освобождает все связанные с ним ресурсы.
Пример использования BufferedInputStream для чтения данных из файла:
В этом примере создается BufferedInputStream, оборачивающий FileInputStream, для чтения байтов из файла example.bin. Данные читаются из буфера, что повышает производительность.
BufferedOutputStream
BufferedOutputStream — это класс, который добавляет возможность буферизации к байтовым потокам вывода. Он оборачивает другие байтовые потоки и использует внутренний буфер для записи данных.
Основные методы BufferedOutputStream:
Конструкторы:
BufferedOutputStream(OutputStream out): Создает буферизованный поток вывода с указанным потоком.
BufferedOutputStream(OutputStream out, int size): Создает буферизованный поток вывода с указанным размером буфера.
void write(int b): Записывает один байт в буфер.
void write(byte[] b, int off, int len): Записывает байты из массива b, начиная с off и до len.
void flush(): Очищает буфер, записывая все данные.
void close(): Закрывает поток и освобождает все связанные с ним ресурсы.
Пример использования BufferedOutputStream для записи данных в файл:
В этом примере создается BufferedOutputStream, оборачивающий FileOutputStream, для записи байтов в файл example.bin. Данные сначала записываются в буфер, а затем буфер очищается методом flush.
#Java #Training #IO
Буферизация является процессом временного хранения данных в памяти перед их чтением или записью. Буферизация повышает производительность операций ввода-вывода, уменьшая количество обращений к физическим устройствам (таким как диски) и сетевым ресурсам.
BufferedInputStream
BufferedInputStream — это класс, который добавляет возможность буферизации к байтовым потокам ввода. Он оборачивает другие байтовые потоки и использует внутренний буфер для чтения данных.
Основные методы BufferedInputStream:
Конструкторы:
BufferedInputStream(InputStream in): Создает буферизованный поток ввода с указанным потоком.
BufferedInputStream(InputStream in, int size): Создает буферизованный поток ввода с указанным размером буфера.
int read(): Читает один байт из буфера. Возвращает -1 в случае достижения конца потока.
int read(byte[] b, int off, int len): Читает до len байтов в массив b, начиная с off. Возвращает количество прочитанных байтов или -1, если достигнут конец потока.
void close(): Закрывает поток и освобождает все связанные с ним ресурсы.
Пример использования BufferedInputStream для чтения данных из файла:
import java.io.BufferedInputStream;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
public class BufferedInputStreamExample {
public static void main(String[] args) {
try (InputStream inputStream = new BufferedInputStream(new FileInputStream("example.bin"))) {
int data;
while ((data = inputStream.read()) != -1) {
System.out.print((char) data);
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
В этом примере создается BufferedInputStream, оборачивающий FileInputStream, для чтения байтов из файла example.bin. Данные читаются из буфера, что повышает производительность.
BufferedOutputStream
BufferedOutputStream — это класс, который добавляет возможность буферизации к байтовым потокам вывода. Он оборачивает другие байтовые потоки и использует внутренний буфер для записи данных.
Основные методы BufferedOutputStream:
Конструкторы:
BufferedOutputStream(OutputStream out): Создает буферизованный поток вывода с указанным потоком.
BufferedOutputStream(OutputStream out, int size): Создает буферизованный поток вывода с указанным размером буфера.
void write(int b): Записывает один байт в буфер.
void write(byte[] b, int off, int len): Записывает байты из массива b, начиная с off и до len.
void flush(): Очищает буфер, записывая все данные.
void close(): Закрывает поток и освобождает все связанные с ним ресурсы.
Пример использования BufferedOutputStream для записи данных в файл:
import java.io.BufferedOutputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
public class BufferedOutputStreamExample {
public static void main(String[] args) {
try (OutputStream outputStream = new BufferedOutputStream(new FileOutputStream("example.bin"))) {
String data = "Hello, World!";
outputStream.write(data.getBytes());
outputStream.flush();
} catch (IOException e) {
e.printStackTrace();
}
}
}
В этом примере создается BufferedOutputStream, оборачивающий FileOutputStream, для записи байтов в файл example.bin. Данные сначала записываются в буфер, а затем буфер очищается методом flush.
#Java #Training #IO
Подписывайтесь на канал, и вы сможете придумать смешную надпись даже под такой картинкой😜
https://t.me/Java_for_beginner_dev
#Mems
https://t.me/Java_for_beginner_dev
#Mems
Пузырьковая сортировка в Java
Пузырьковая сортировка следует простой логике. Она сравнивает соседние элементы и меняет местами если они не отсортированы.
Пузырьковая сортировка названа таким образом потому, что в этом способе сортировки, меньшие элементы постепенно всплывают в верхнюю часть списка.
Пузырьковая сортировка имеет среднее и наихудшее время равное О(n²), где n количество элементов которое нужно отсортировать.
Самая медленная сортировка
Сортировка перемешиванием
, или Шейкерная сортировка, или двунаправленная (англ. Cocktail sort) — разновидность пузырьковой сортировки. Анализируя метод пузырьковой сортировки, можно отметить два обстоятельства.
Во-первых, если при движении по части массива перестановки не происходят, то эта часть массива уже отсортирована и, следовательно, её можно исключить из рассмотрения.
Во-вторых, при движении от конца массива к началу минимальный элемент «всплывает» на первую позицию, а максимальный элемент сдвигается только на одну позицию вправо.
Эти две идеи приводят к следующим модификациям в методе пузырьковой сортировки. Границы рабочей части массива (то есть части массива, где происходит движение) устанавливаются в месте последнего обмена на каждой итерации. Массив просматривается поочередно справа налево и слева направо.
Пузырьковая сортировка следует простой логике. Она сравнивает соседние элементы и меняет местами если они не отсортированы.
Пузырьковая сортировка названа таким образом потому, что в этом способе сортировки, меньшие элементы постепенно всплывают в верхнюю часть списка.
Пузырьковая сортировка имеет среднее и наихудшее время равное О(n²), где n количество элементов которое нужно отсортировать.
Самая медленная сортировка
public static void bubbleSort(int[] numbers) {
int n = numbers.length;
int temp = 0;
for (int i = 0; i < n; i++) {
for (int j = 1; j < (n - i); j++) {
if (numbers[j - 1] > numbers[j]) {
//swap elements
temp = numbers[j - 1];
numbers[j - 1] = numbers[j];
numbers[j] = temp;
}
}
}
}
Сортировка перемешиванием
, или Шейкерная сортировка, или двунаправленная (англ. Cocktail sort) — разновидность пузырьковой сортировки. Анализируя метод пузырьковой сортировки, можно отметить два обстоятельства.
Во-первых, если при движении по части массива перестановки не происходят, то эта часть массива уже отсортирована и, следовательно, её можно исключить из рассмотрения.
Во-вторых, при движении от конца массива к началу минимальный элемент «всплывает» на первую позицию, а максимальный элемент сдвигается только на одну позицию вправо.
Эти две идеи приводят к следующим модификациям в методе пузырьковой сортировки. Границы рабочей части массива (то есть части массива, где происходит движение) устанавливаются в месте последнего обмена на каждой итерации. Массив просматривается поочередно справа налево и слева направо.
public static void shakerSort(int arr[]) {
int buff;
int left = 0;
int right = arr.length - 1;
do {
for (int i = left; i < right; i++) {
if (arr[i] > arr[i + 1]) {
buff = arr[i];
arr[i] = arr[i + 1];
arr[i + 1] = buff;
}
}
right--;
for (int i = right; i > left; i--) {
if (arr[i] < arr[i - 1]) {
buff = arr[i];
arr[i] = arr[i - 1];
arr[i - 1] = buff;
}
}
left++;
} while (left < right);
Вы придете на встречу?
Anonymous Poll
56%
Да, конечно, я хочу пообщаться
44%
Да, я хотел бы, но не могу
0%
Нет, я не приду, мне не инетересно!
Java for Beginner
Вы придете на встречу?
Сегодня в 16:00 по МСК, будем общаться, писать простого бота)))
Залетайте, ссылку опубликуем в нашем чате - https://t.me/Java_Beginner_chat
Залетайте, ссылку опубликуем в нашем чате - https://t.me/Java_Beginner_chat
Java for Beginner
Урок по созданию простейшего бота окончен. Жаль что присутствовал всего 1 человек( Чуть позже видео будет на ютуб канале, обязательно выложу сюда. Надеюсь, что оно окажется Вам полезным и на следующих выходных мы соберемся более плотной компанией)))))
https://youtu.be/1OQe8t3O3Ic - смотрим, задаем вопросы, критикуем!)))))
YouTube
Гайд по созданию простейшего телеграмм бота на JAVA. Запись встречи от 30.06.2024
В рамках встречи канала, рассказал как создать простейшего телеграмм бота, приписал простейшую логику.
ссылка на наш канал будет в комментариях!
#java #bot #telegram #intellij #guide #ultimate #гайд #телеграммканал #телеграммбот #телеграм #бот #создать
ссылка на наш канал будет в комментариях!
#java #bot #telegram #intellij #guide #ultimate #гайд #телеграммканал #телеграммбот #телеграм #бот #создать
Объектные потоки: ObjectInputStream, ObjectOutputStream
Объектные потоки в Java используются для чтения и записи объектов. Они позволяют сохранить состояние объекта и затем восстановить его, что полезно для хранения данных между запусками программы или передачи объектов между различными компонентами системы.
ObjectOutputStream
ObjectOutputStream — это класс, который используется для записи объектов в поток. Он записывает объекты в виде последовательности байтов, что позволяет сохранять и передавать объекты.
Основные методы ObjectOutputStream:
Конструкторы:
ObjectOutputStream(OutputStream out): Создает объект ObjectOutputStream, связанный с указанным выходным потоком.
Запись объектов:
void writeObject(Object obj): Записывает объект obj в выходной поток. Объект должен реализовывать интерфейс Serializable.
Другие методы
void close(): Закрывает поток и освобождает все связанные с ним ресурсы.
void flush(): Очищает буфер, записывая все данные в выходной поток.
Пример использования ObjectOutputStream для записи объекта в файл:
В этом примере создается объект Person и записывается в файл person.ser с помощью ObjectOutputStream.
ObjectInputStream
ObjectInputStream — это класс, который используется для чтения объектов из потока. Он восстанавливает объекты из последовательности байтов, записанных с помощью ObjectOutputStream.
Основные методы ObjectInputStream:
Конструкторы:
ObjectInputStream(InputStream in): Создает объект ObjectInputStream, связанный с указанным входным потоком.
Чтение объектов:
Object readObject(): Читает объект из входного потока. Требуется приведение типа (casting) к нужному классу.
Другие методы:
void close(): Закрывает поток и освобождает все связанные с ним ресурсы.
Пример использования ObjectInputStream для чтения объекта из файла:
В этом примере объект Person читается из файла person.ser с помощью ObjectInputStream и выводится на консоль.
#Java #Training #IO
Объектные потоки в Java используются для чтения и записи объектов. Они позволяют сохранить состояние объекта и затем восстановить его, что полезно для хранения данных между запусками программы или передачи объектов между различными компонентами системы.
ObjectOutputStream
ObjectOutputStream — это класс, который используется для записи объектов в поток. Он записывает объекты в виде последовательности байтов, что позволяет сохранять и передавать объекты.
Основные методы ObjectOutputStream:
Конструкторы:
ObjectOutputStream(OutputStream out): Создает объект ObjectOutputStream, связанный с указанным выходным потоком.
Запись объектов:
void writeObject(Object obj): Записывает объект obj в выходной поток. Объект должен реализовывать интерфейс Serializable.
Другие методы
void close(): Закрывает поток и освобождает все связанные с ним ресурсы.
void flush(): Очищает буфер, записывая все данные в выходной поток.
Пример использования ObjectOutputStream для записи объекта в файл:
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectOutputStream;
import java.io.Serializable;
class Person implements Serializable {
private static final long serialVersionUID = 1L;
private String name;
private int age;
public Person(String name, int age) {
this.name = name;
this.age = age;
}
@Override
public String toString() {
return "Person{name='" + name + "', age=" + age + '}';
}
}
public class ObjectOutputStreamExample {
public static void main(String[] args) {
Person person = new Person("John Doe", 30);
try (ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream("person.ser"))) {
oos.writeObject(person);
} catch (IOException e) {
e.printStackTrace();
}
}
}
В этом примере создается объект Person и записывается в файл person.ser с помощью ObjectOutputStream.
ObjectInputStream
ObjectInputStream — это класс, который используется для чтения объектов из потока. Он восстанавливает объекты из последовательности байтов, записанных с помощью ObjectOutputStream.
Основные методы ObjectInputStream:
Конструкторы:
ObjectInputStream(InputStream in): Создает объект ObjectInputStream, связанный с указанным входным потоком.
Чтение объектов:
Object readObject(): Читает объект из входного потока. Требуется приведение типа (casting) к нужному классу.
Другие методы:
void close(): Закрывает поток и освобождает все связанные с ним ресурсы.
Пример использования ObjectInputStream для чтения объекта из файла:
import java.io.FileInputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
public class ObjectInputStreamExample {
public static void main(String[] args) {
try (ObjectInputStream ois = new ObjectInputStream(new FileInputStream("person.ser"))) {
Person person = (Person) ois.readObject();
System.out.println(person);
} catch (IOException | ClassNotFoundException e) {
e.printStackTrace();
}
}
}
В этом примере объект Person читается из файла person.ser с помощью ObjectInputStream и выводится на консоль.
#Java #Training #IO
Что выведет код?
#Tasks
public class VariableTypesExample {
static int classVariable = 10; // Class variable
public static void main(String[] args) {
int localVariable = 5; // Local variable
VariableTypesExample example = new VariableTypesExample();
example.instanceMethod();
staticMethod();
System.out.println("Class Variable: " + classVariable);
System.out.println("Local Variable: " + localVariable);
System.out.println("Instance Variable: " + example.instanceVariable);
}
int instanceVariable = 20; // Instance variable
void instanceMethod() {
classVariable = 15;
instanceVariable = 25;
}
static void staticMethod() {
classVariable = 30;
}
}
#Tasks
Сериализация и десериализация объектов
Сериализация — это процесс преобразования объекта в последовательность байтов, которая может быть сохранена в файл или передана по сети.
Десериализация — это обратный процесс, при котором байты преобразуются обратно в объект. Эти процессы позволяют сохранять состояние объекта и восстанавливать его в любой момент.
Сериализация
Для того чтобы объект можно было сериализовать, его класс должен реализовывать интерфейс Serializable. Этот интерфейс является маркерным, то есть не содержит методов и служит лишь для указания JVM, что объекты этого класса могут быть сериализованы.
Пример класса, реализующего Serializable:
В этом примере класс Person реализует Serializable, что позволяет его объекты сериализовать.
Процесс сериализации:
Создаем объект ObjectOutputStream, связанный с выходным потоком (например, FileOutputStream).
Вызываем метод writeObject(Object obj) для записи объекта в поток.
Пример сериализации:
Десериализация
Процесс десериализации включает чтение последовательности байтов и создание из них объекта. Для этого используется класс ObjectInputStream.
Процесс десериализации:
Создаем объект ObjectInputStream, связанный с входным потоком (например, FileInputStream).
Вызываем метод readObject() для чтения объекта из потока. Обязательно выполняем приведение типа (casting) к нужному классу.
Пример десериализации:
serialVersionUID
Каждый сериализуемый класс должен иметь статическое поле serialVersionUID, которое используется для обеспечения совместимости версий класса. Если serialVersionUID у класса изменится, десериализация объектов, сериализованных с предыдущей версией класса, вызовет ошибку.
Пример объявления serialVersionUID:
Транзиентные поля
Поля, помеченные ключевым словом transient, не будут сериализованы. Это полезно для полей, которые не нужно сохранять, например, паролей или других конфиденциальных данных.
Пример использования transient:
В этом примере поле password не будет сериализовано.
#Java #Training #IO #Serializable
Сериализация — это процесс преобразования объекта в последовательность байтов, которая может быть сохранена в файл или передана по сети.
Десериализация — это обратный процесс, при котором байты преобразуются обратно в объект. Эти процессы позволяют сохранять состояние объекта и восстанавливать его в любой момент.
Сериализация
Для того чтобы объект можно было сериализовать, его класс должен реализовывать интерфейс Serializable. Этот интерфейс является маркерным, то есть не содержит методов и служит лишь для указания JVM, что объекты этого класса могут быть сериализованы.
Пример класса, реализующего Serializable:
import java.io.Serializable;
class Person implements Serializable {
private static final long serialVersionUID = 1L;
private String name;
private int age;
public Person(String name, int age) {
this.name = name;
this.age = age;
}
@Override
public String toString() {
return "Person{name='" + name + "', age=" + age + '}';
}
}
В этом примере класс Person реализует Serializable, что позволяет его объекты сериализовать.
Процесс сериализации:
Создаем объект ObjectOutputStream, связанный с выходным потоком (например, FileOutputStream).
Вызываем метод writeObject(Object obj) для записи объекта в поток.
Пример сериализации:
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectOutputStream;
public class SerializationExample {
public static void main(String[] args) {
Person person = new Person("John Doe", 30);
try (ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream("person.ser"))) {
oos.writeObject(person);
} catch (IOException e) {
e.printStackTrace();
}
}
}
Десериализация
Процесс десериализации включает чтение последовательности байтов и создание из них объекта. Для этого используется класс ObjectInputStream.
Процесс десериализации:
Создаем объект ObjectInputStream, связанный с входным потоком (например, FileInputStream).
Вызываем метод readObject() для чтения объекта из потока. Обязательно выполняем приведение типа (casting) к нужному классу.
Пример десериализации:
import java.io.FileInputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
public class DeserializationExample {
public static void main(String[] args) {
try (ObjectInputStream ois = new ObjectInputStream(new FileInputStream("person.ser"))) {
Person person = (Person) ois.readObject();
System.out.println(person);
} catch (IOException | ClassNotFoundException e) {
e.printStackTrace();
}
}
}
serialVersionUID
Каждый сериализуемый класс должен иметь статическое поле serialVersionUID, которое используется для обеспечения совместимости версий класса. Если serialVersionUID у класса изменится, десериализация объектов, сериализованных с предыдущей версией класса, вызовет ошибку.
Пример объявления serialVersionUID:
class Person implements Serializable {
private static final long serialVersionUID = 1L;
// остальные поля и методы
}
Транзиентные поля
Поля, помеченные ключевым словом transient, не будут сериализованы. Это полезно для полей, которые не нужно сохранять, например, паролей или других конфиденциальных данных.
Пример использования transient:
class User implements Serializable {
private static final long serialVersionUID = 1L;
private String username;
private transient String password;
public User(String username, String password) {
this.username = username;
this.password = password;
}
@Override
public String toString() {
return "User{username='" + username + "', password='" + password + "'}";
}
}
В этом примере поле password не будет сериализовано.
#Java #Training #IO #Serializable
Forwarded from English Beginners