Что такое экстернализация в 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.