¿Qué es la externalización en Java? Interfaz, características y ejemplo

Publicado: 2021-02-04

Para responder qué es la externalización en Java , podemos decir que es un mecanismo común que se implementa para personalizar la serialización. Se usa con el aspecto principal de que la serialización de Java no es tan eficiente, por lo que se usa un parámetro de personalización externo cuando hay objetos inflados que contienen múltiples propiedades y atributos.

Tabla de contenido

¿Qué son la serialización y la externalización?

Serialización : es el mecanismo utilizado para componer datos de un objeto en un flujo de bytes, el proceso se implementa principalmente en el tipo de tecnologías RMI, JMS, JPA. El otro tipo consta de un mecanismo que invierte la función y el proceso de serialización y se denomina deserialización. La función de la serialización, como su nombre lo indica, es serializar los objetos presentes en Java.

Externalización- Se define como el mecanismo utilizado para personalizar el mecanismo de serialización. El bloatware no es rápido ni responde. Genera la necesidad de un buen mecanismo que sea lo suficientemente eficiente y receptivo para personalizar todo el proceso.

En la serialización, la máquina de programación java responde al proceso de escritura y lectura de objetos. Este es un escenario de caso muy utilizado ya que los programadores se ven obligados a preocuparse por el proceso de serialización. En tales casos, la serialización de trabajo predeterminada no pretende guardar credenciales importantes como el ID de inicio de sesión y las contraseñas.

Pero, si los programadores encuentran la necesidad de asegurar las mismas credenciales, la externalización demuestra su propósito de dar el control total sobre el manejo de los datos del objeto de lectura y escritura de los datos durante la serialización.

Pago: Marcos populares de Java

La interfaz externalizable

La interfaz se implementa cuando existe un requisito para moderar la lectura y escritura de los objetos durante la serialización y deserialización. Por lo tanto, la necesidad de una clase de objeto con la interfaz java.io.externalizable ayuda a los usuarios y programadores a implementar su código personalizado en los estados de los objetos escribiendo en el método writeExternal() y leyendo objetos en el método readExternal().

Para una mejor idea, comprendamos ambos métodos.

readExternal() funciona cuando un objeto toma la entrada. El contenido se restaura al contexto original mediante los métodos de entrada de datos llamando al método de objeto de escritura para objetos, cadenas y matrices.

writeExternal() funciona cuando un objeto toma la entrada, y los métodos de salida de datos guardan el contenido llamando al método read Object para objetos, cadenas y matrices.

Características

La externalización ayuda a implementar el control lógico en la aplicación al pasar por alto los métodos externos de lectura y escritura.

La externalización demostró ser una forma eficaz para los programadores, ya que se les permitió crear código con su conciencia y lógica para eliminar las variables durante la externalización del objeto Java.

Los métodos de externalización brindan un control manual completo sobre el enfoque de implementación, y la serialización de objetos y la herencia también pueden estar implícitas.

Lea también: Preguntas de la entrevista de Java

Ejemplo

// interfaz

importar java.io.*;

clase Coche implementos Externalizable {

edad interna estática;

Nombre de cadena;

año int;

coche publico()

{

System.out.println(“Constructor predeterminado llamado”);

}

Coche (Cadena n, int y)

{

este.nombre = n;

este.año = y;

edad = 10;

}

@Anular

public void writeExternal(ObjectOutput out)

lanza IOException

{

out.writeObject(nombre);

out.writeInt(edad);

out.writeInt(año);

}

@Anular

public void readExternal(ObjectInput in)

lanza IOException, ClassNotFoundException

{

nombre = (Cadena)in.readObject();

año = en.readInt();

edad = en.readInt();

}

@Anular la cadena pública a la cadena ()

{

return (“Nombre: ” + nombre + “\n”

+ “Año: ” + año + “\n”

+ “Edad: ” + edad);

}

}

clase pública ExternExample {

public static void main(String[] args)

{

Coche coche = Coche nuevo(“Shiney”, 1995);

Coche coche nuevo = null;

// Serializar el auto

tratar {

FileOutputStream para

= new FileOutputStream(“gfg.txt”);

ObjectOutputStream por lo que

= new ObjectOutputStream(fo);

so.writeObject(coche);

so.flush();

}

captura (Excepción e) {

Sistema.salida.println(e);

}

// Deserializar el auto

tratar {

FileInputStream fi

= new FileInputStream(“gfg.txt”);

ObjectInputStream si

= new ObjectInputStream(fi);

newcar = (Car)si.readObject();

}

captura (Excepción e) {

Sistema.salida.println(e);

}

System.out.println(“El auto original es:\n” + auto);

System.out.println(“El auto nuevo es:\n” + autonuevo);

}

}

Producción:

Constructor por defecto llamado

El coche original es:

Nombre: Shiney

Año: 1995

Edad: 10

El coche nuevo es:

Nombre: Shiney

Año: 1995

Edad: 10

Este ejemplo es un ejemplo clásico para representar que cuando se recrea un objeto externalizable, la instancia se activa con el constructor público sin argumentos, esto tiende a invocar el método readExternal. Entonces, con la ayuda de una interfaz externalizable, habría un control total sobre la analogía de la clase java.

Por lo tanto, al usar externalizar, es esencial e importante que todos los estados de campo estén en el orden exacto en que fueron escritos.

Lea también: Ideas y temas de proyectos Java

Aprenda cursos de desarrollo de software en línea de las mejores universidades del mundo. Obtenga programas Executive PG, programas de certificados avanzados o programas de maestría para acelerar su carrera.

Conclusión

Entonces, cuando se nos pregunta qué es la externalización en Java , podemos decir que tiene una gran importancia debido a la serialización personalizada que tiene para ofrecer y brinda un control total para personalizar la serialización y también sobre el enfoque de implementación. Los métodos readExternal y writeExternal deben ser sobrescritos por la clase. Ofrece un rendimiento mucho mejor que la serialización.

Conéctese con upGrad para tener una mejor y más profunda comprensión de Java a través del curso del Programa Executive PG sobre desarrollo de pila completa, para mejorar la curva de aprendizaje que puede comenzar con Rs 10,000 y acceder a las conferencias en línea.

¿Qué son las interfaces en Java?

Una interfaz es uno de los tipos en Java que no tiene ninguna implementación y es solo un grupo de firmas de métodos. Esta interfaz no se puede crear. La razón detrás de este hecho es que estas interfaces son solo una colección de firmas de métodos. Una vez que creamos una interfaz, no podemos seguir agregando nuevos métodos en ella. Por ejemplo, no podemos agregar un método en la interfaz java.Aspect que nos ayudará a modificar el comportamiento de la clase desde fuera de la clase. Como esto va en contra del principio de programación orientada a objetos. En realidad, las interfaces no son más que extensiones de anotaciones de Java. Deberíamos usar interfaces para mantener nuestro código ligero.

¿Qué es la externalización en Java?

La externalización es la capacidad de un objeto para hacer que su estado sea mutable. La externalización se utiliza en patrones de diseño como Singleton, Factory y Prototype para implementar el principio de inversión de dependencia y el principio de segregación de interfaz. La externalización no es una función integrada de Java, pero es posible agregar esa función a una clase. La externalización es un proceso de convertir un objeto en un flujo de caracteres en Java. Es un mecanismo que se utiliza para almacenar objetos en archivos en formato binario. Se utiliza para el almacenamiento de datos de caracteres en archivos como una secuencia de bytes. Los datos se pueden leer en ejecuciones posteriores del programa Java.

¿Cuáles son las características del lenguaje de programación Java?

Java es un lenguaje de programación y una plataforma informática lanzado por primera vez por Sun Microsystems en 1995. Desde entonces, se han lanzado varias actualizaciones, y la última versión es Java 11. Java estaba diseñado para ejecutarse en cualquier plataforma que admita la máquina virtual Java, por lo que es también una plataforma de programación. Puede ejecutarse en un entorno con solo un navegador, pero se usa más comúnmente con varias versiones de Java Virtual Machine (JVM) en conjuntos de programas llamados interfaces de programación de aplicaciones o API.