Что такое экстернализация в Java? Интерфейс, особенности и пример

Опубликовано: 2021-02-04

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

Оглавление

Что такое сериализация и экстернализация?

Сериализация — это механизм, используемый для составления данных объекта в поток байтов, этот процесс в основном реализован в технологиях типа RMI, JMS, JPA. Другой тип состоит из механизма, который меняет функцию и процесс сериализации и называется десериализацией. Функция сериализации, как следует из названия, заключается в сериализации объектов, присутствующих в java.

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

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

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

Оформить заказ: популярные Java-фреймворки

Внешний интерфейс

Интерфейс реализуется, когда требуется модерировать чтение и запись объектов во время сериализации и десериализации. Таким образом, потребность в классе объектов с интерфейсом java.io.externalisable помогает пользователям и программистам реализовывать свой собственный код в состояниях объектов, записывая их в метод writeExternal() и читая объекты в методе readExternal() .

Для лучшего представления давайте разберемся в обоих методах

readExternal() работает, когда объект принимает ввод. Содержимое восстанавливается в исходный контекст методами ввода данных , вызывая метод write Object для объектов, строк и массивов.

writeExternal() работает, когда объект принимает ввод, а методы вывода данных сохраняют содержимое, вызывая метод read Object для объектов, строк и массивов.

Функции

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

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

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

Читайте также: Вопросы на собеседовании по Java

Пример

// интерфейс

импортировать java.io.*;

class Car реализует Externalizable {

статический возраст;

Имя строки;

целый год;

общественный автомобиль ()

{

System.out.println("Вызван конструктор по умолчанию");

}

Автомобиль (строка n, целое число y)

{

это.имя = п;

этот.год = г;

возраст = 10;

}

@Override

public void writeExternal (выход ObjectOutput)

бросает IOException

{

out.writeObject(имя);

out.writeInt (возраст);

out.writeInt (год);

}

@Override

public void readExternal (вход ObjectInput)

выдает IOException, ClassNotFoundException

{

имя = (строка)in.readObject();

год = in.readInt();

возраст = in.readInt();

}

@Переопределить общедоступную строку toString()

{

return («Имя: » + имя + «\n»

+ «Год: » + год + «\n»

+ «Возраст: » + возраст);

}

}

открытый класс ExternExample {

public static void main (аргументы String [])

{

Car car = new Car («Блеск», 1995 г.);

Новый автомобиль = ноль;

// Сериализация автомобиля

пытаться {

FileOutputStream fo

= новый FileOutputStream («gfg.txt»);

ObjectOutputStream так

= новый ObjectOutputStream(fo);

так.writeObject (автомобиль);

так.flush();

}

поймать (исключение д) {

Система.out.println(e);

}

// Десериализовать машину

пытаться {

FileInputStream fi

= новый FileInputStream («gfg.txt»);

ObjectInputStream si

= новый ObjectInputStream(fi);

newcar = (Car)si.readObject();

}

поймать (исключение д) {

Система.out.println(e);

}

System.out.println("Исходный автомобиль:\n" + автомобиль);

System.out.println("Новая машина:\n" + newcar);

}

}

Выход:

Вызывается конструктор по умолчанию

Оригинальный автомобиль это:

Имя: Шайни

Год: 1995

Возраст: 10 лет

Новая машина это:

Имя: Шайни

Год: 1995

Возраст: 10 лет

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

Таким образом, при использовании externalize важно и важно, чтобы все состояния поля находились в том порядке, в котором они были записаны.

Читайте также: Идеи и темы проектов Java

Изучайте онлайн -курсы по разработке программного обеспечения в лучших университетах мира. Участвуйте в программах Executive PG, Advanced Certificate Programs или Master Programs, чтобы ускорить свою карьеру.

Заключение

Итак, на вопрос о том, что такое экстернализация в Java , мы можем сказать, что она имеет большое значение из-за пользовательской сериализации, которую она может предложить, и дает полный контроль над настройкой сериализации, а также над подходом к реализации. Методы readExternal и writeExternal должны быть перезаписаны классом. Он предлагает гораздо лучшую производительность, чем сериализация.

Свяжитесь с upGrad, чтобы лучше и глубже понять Java с помощью курса Executive PG Program по полной разработке стека, чтобы улучшить кривую обучения, которую вы можете начать с 10 000 рупий и получить доступ к онлайн-лекциям.

Что такое интерфейсы в Java?

Интерфейс — это один из типов в java, у которого нет никакой реализации, и это просто группа сигнатур методов. Этот интерфейс не может быть создан. Причина этого факта в том, что эти интерфейсы представляют собой просто набор сигнатур методов. Создав интерфейс, мы не можем продолжать добавлять в него новый метод. Например, мы не можем добавить метод в интерфейс java.Aspect, который поможет нам изменить поведение класса извне класса. Поскольку это противоречит принципу объектно-ориентированного программирования. На самом деле интерфейсы — это не что иное, как расширение аннотаций Java. Мы должны использовать интерфейсы, чтобы наш код оставался легким.

Что такое экстернализация в Java?

Экстернализация — это способность объекта изменять свое состояние. Экстернализация используется в шаблонах проектирования, таких как Singleton, Factory и Prototype, для реализации принципа инверсии зависимостей и принципа разделения интерфейса. Экстернализация не является встроенной функцией Java, но эту функцию можно добавить в класс. Экстернализация — это процесс преобразования объекта в поток символов в Java. Это механизм, который используется для хранения объектов в файлах в двоичном формате. Он используется для хранения символьных данных в файлах в виде последовательности байтов. Данные могут быть прочитаны при последующих выполнениях программы Java.

Каковы особенности языка программирования Java?

Java — это язык программирования и вычислительная платформа, впервые выпущенная компанией Sun Microsystems в 1995 году. С тех пор было выпущено несколько обновлений, последняя из которых — Java 11. Java предназначалась для работы на любой платформе, поддерживающей виртуальную машину Java, поэтому также является платформой для программирования. Он может работать в среде только с браузером, но чаще всего используется с различными версиями виртуальной машины Java (JVM) в наборах программ, называемых интерфейсами прикладного программирования или API.