O que é externalização em Java? Interface, recursos e exemplo

Publicados: 2021-02-04

Para responder o que é externalização Em java , podemos dizer que é um mecanismo comum que é implementado para customizar a serialização. Ele é usado com o principal aspecto de que a serialização java não é tão eficiente, então um parâmetro de customização externo é usado quando há objetos inchados que possuem várias propriedades e atributos.

Índice

O que são Serialização e Externalização?

Serialização- É o mecanismo usado para compor os dados de um objeto em um byte-stream, o processo é implementado principalmente em tecnologias do tipo RMI, JMS, JPA. O outro tipo consiste em um mecanismo que inverte a função e o processo de serialização e denominado desserialização. A função de serialização como o nome descreve é ​​serializar os objetos presentes em java.

Externalização- É definido como o mecanismo usado para personalizar o mecanismo de serialização. O bloatware não é rápido e responsivo. Gera a necessidade de um bom mecanismo que seja eficiente e responsivo o suficiente para customizar todo o processo.

Na serialização, a máquina de programação java responde ao processo de escrita e leitura de objetos. Este é um cenário de caso muito usado, pois os programadores são cobrados da necessidade de se preocupar com o processo de serialização. Nesses casos, a serialização de trabalho padrão não pretende salvar credenciais importantes, como o ID de login e as senhas.

Mas, se os programadores encontrarem a necessidade de garantir as mesmas credenciais, a externalização comprova seu propósito de dar o controle total sobre o manuseio dos dados do objeto de leitura e escrita dos dados durante a serialização.

Confira: Frameworks Java Populares

A interface externalizável

A interface é implementada quando há a necessidade de moderar a leitura e a escrita dos objetos durante a serialização e desserialização. Assim, a necessidade de uma classe de objeto com a interface java.io.externalisable, ajuda os usuários e programadores a implementar seu código personalizado nos estados dos objetos escrevendo no método writeExternal() e lendo objetos no método readExternal().

Para uma melhor ideação vamos entender os dois métodos

readExternal() funciona quando um objeto recebe a entrada. O conteúdo é restaurado ao contexto original pelos métodos de entrada de dados chamando o método write Object para objetos, strings e arrays.

writeExternal() funciona quando um objeto recebe a entrada e os métodos de saída de dados salvam o conteúdo chamando o método read Object para objetos, strings e arrays.

Recursos

A externalização ajuda a implementar o controle lógico para o aplicativo ignorando os métodos read External e write External.

A externalização mostrou-se um meio eficaz para os programadores, pois eles foram habilitados a criar código com sua consciência e lógica para eliminar as variáveis ​​durante a externalização do objeto java.

Os métodos de externalização fornecem controle manual completo sobre a abordagem de implementação, e a serialização de objetos e a herança também podem ser implícitas.

Leia também: Perguntas da entrevista sobre Java

Exemplo

//interface

import java.io.*;

class Car implementa Externalizable {

idade int estática;

Nome da cadeia;

int ano;

carro público()

{

System.out.println(“Construtor padrão chamado”);

}

Carro(String n, int y)

{

este.nome = n;

este.ano = y;

idade = 10;

}

@Sobrepor

public void writeExternal(ObjectOutput out)

lança IOException

{

out.writeObject(nome);

out.writeInt(idade);

out.writeInt(ano);

}

@Sobrepor

public void readExternal(ObjectInput in)

lança IOException, ClassNotFoundException

{

nome = (String)in.readObject();

ano = in.readInt();

idade = in.readInt();

}

@Override public String toString()

{

return (“Nome: ” + nome + “\n”

+ “Ano: ” + ano + “\n”

+ “Idade: ” + idade);

}

}

public class ExternExample {

public static void main(String[] args)

{

Carro carro = new Carro(“Shiney”, 1995);

Carro novocarro = null;

// Serializar o carro

experimentar {

FileOutputStream para

= new FileOutputStream(“gfg.txt”);

ObjectOutputStream então

= new ObjectOutputStream(fo);

so.writeObject(carro);

so.flush();

}

catch (Exceção e) {

System.out.println(e);

}

// Desserializa o carro

experimentar {

FileInputStream fi

= new FileInputStream(“gfg.txt”);

ObjectInputStream si

= new ObjectInputStream(fi);

newcar = (Car)si.readObject();

}

catch (Exceção e) {

System.out.println(e);

}

System.out.println(“O carro original é:\n” + carro);

System.out.println(“O novo carro é:\n” + newcar);

}

}

Saída:

Construtor padrão chamado

O carro original é:

Nome: Shiny

Ano: 1995

Idade: 10

O novo carro é:

Nome: Shiny

Ano: 1995

Idade: 10

Este exemplo é um exemplo clássico para mostrar que quando um objeto externalizável é recriado, a instância é acionada com o construtor público sem argumentos, isso tende a invocar o método readExternal. Assim, com a ajuda de uma interface externalizável, haveria controle total sobre a analogia da classe java.

Assim, ao usar externalize, é essencial e importante que todos os estados de campo estejam na ordem exata em que foram escritos.

Leia também: Ideias e tópicos do projeto Java

Aprenda cursos de desenvolvimento de software online das melhores universidades do mundo. Ganhe Programas PG Executivos, Programas de Certificado Avançado ou Programas de Mestrado para acelerar sua carreira.

Conclusão

Sendo assim, ao ser perguntado sobre o que é externalização em java , podemos dizer que pesa a importância devido à serialização customizada que oferece e dá total controle para customizar a serialização e também sobre a abordagem de implementação. Os métodos readExternal e writeExternal devem ser substituídos pela classe. Ele oferece um desempenho muito melhor do que a serialização.

Conecte-se com o upGrad para ter uma compreensão melhor e mais profunda de java através do curso Executive PG Program sobre desenvolvimento full stack, para melhorar a curva de aprendizado, você pode começar por Rs 10.000 e acessar as palestras on-line.

O que são interfaces em Java?

Uma interface é um dos tipos em java que não possui nenhuma implementação e é apenas um grupo de assinaturas de métodos. Esta interface não pode ser criada. A razão por trás desse fato é que essas interfaces são apenas uma coleção de assinaturas de métodos. Uma vez que criamos uma interface, não podemos continuar adicionando novos métodos nela. Por exemplo, não podemos adicionar um método na interface java.Aspect que nos ajudará a modificar o comportamento da classe de fora da classe. Como isso vai contra o princípio de programação orientada a objetos. Na realidade, as interfaces nada mais são do que extensões de anotações java. Devemos usar interfaces para manter nosso código leve.

O que é externalização em Java?

A externalização é a capacidade de um objeto tornar seu estado mutável. A externalização é usada em padrões de projeto como Singleton, Factory e Prototype para implementar o princípio de inversão de dependência e o Princípio de Segregação de Interface. A externalização não é um recurso interno do Java, mas é possível adicionar esse recurso a uma classe. A externalização é um processo de conversão de um objeto em um fluxo de caracteres em Java. É um mecanismo usado para armazenar objetos em arquivos em formato binário. É usado para armazenamento de dados de caracteres em arquivos como uma sequência de bytes. Os dados podem ser lidos em execuções subsequentes do programa Java.

Quais são os recursos da linguagem de programação Java?

Java é uma linguagem de programação e plataforma de computação lançada pela Sun Microsystems em 1995. Várias atualizações foram lançadas desde então, sendo a versão mais recente o Java 11. O Java foi planejado para ser executado em qualquer plataforma que possa suportar a máquina virtual Java. é também uma plataforma de programação. Ele pode ser executado em um ambiente com apenas um navegador, mas é mais comumente usado com várias versões da Java Virtual Machine (JVM) em conjuntos de programas chamados interfaces de programação de aplicativos ou APIs.