Che cos'è l'esternalizzazione in Java? Interfaccia, caratteristiche ed esempio

Pubblicato: 2021-02-04

Per rispondere a cos'è l'esternalizzazione In java , possiamo dire che è un meccanismo comune implementato per personalizzare la serializzazione. Viene utilizzato con l'aspetto principale che la serializzazione java non è così efficiente, quindi viene utilizzato un parametro di personalizzazione esterno quando sono presenti oggetti gonfi che contengono più proprietà e attributi.

Sommario

Cosa sono la serializzazione e l'esternalizzazione?

Serializzazione- È il meccanismo utilizzato per comporre i dati di un oggetto in un flusso di byte, il processo è implementato principalmente in tecnologie di tipo RMI, JMS, JPA. L'altro tipo consiste in un meccanismo che inverte la funzione e il processo di serializzazione e chiamato deserializzazione. La funzione di serializzazione come mostra il nome è serializzare gli oggetti presenti in java.

Esternalizzazione- È definito come il meccanismo utilizzato per personalizzare il meccanismo di serializzazione. Il bloatware non è veloce e reattivo. Genera la necessità di un buon meccanismo che sia sufficientemente efficiente e reattivo per personalizzare l'intero processo.

Nella serializzazione, la macchina di programmazione Java risponde al processo di scrittura e lettura di oggetti. Questo è uno scenario molto utilizzato in quanto i programmatori vengono esonerati dalla necessità di preoccuparsi del processo di serializzazione. In questi casi, la serializzazione funzionante predefinita non intende salvare credenziali importanti come l'ID di accesso e le password.

Ma, se i programmatori riscontrano la necessità di proteggere le stesse credenziali, l'esternalizzazione dimostra il suo scopo di dare il pieno controllo sulla gestione dei dati dell'oggetto di lettura e scrittura dei dati durante la serializzazione.

Checkout: framework Java popolari

L'Interfaccia Esternalizzabile

L'interfaccia viene implementata quando è necessario moderare la lettura e la scrittura degli oggetti durante la serializzazione e la deserializzazione. Pertanto, la necessità di una classe di oggetti con l' interfaccia java.io.externalisable, aiuta utenti e programmatori a implementare il loro codice personalizzato sugli stati degli oggetti scrivendo nel metodo writeExternal() e leggendo gli oggetti nel metodo readExternal().

Per una migliore ideazione cerchiamo di capire entrambi i metodi

readExternal() funziona quando un oggetto riceve l'input. I contenuti vengono ripristinati nel contesto originale dai metodi di input dei dati chiamando il metodo write Object per oggetti, stringhe e matrici.

writeExternal() funziona quando un oggetto riceve l'input e i metodi di output dei dati salvano il contenuto chiamando il metodo read Object per oggetti, stringhe e array.

Caratteristiche

L'esternalizzazione consente di implementare il controllo logico nell'applicazione ignorando i metodi di lettura External e di scrittura External.

L'esternalizzazione si è rivelata un modo efficace per i programmatori in quanto sono stati in grado di creare codice con la loro coscienza e logica per eliminare le variabili durante l'esternalizzazione dell'oggetto java.

I metodi di esternalizzazione forniscono un controllo manuale completo sull'approccio di implementazione e possono essere implicate anche la serializzazione degli oggetti e l'ereditarietà.

Leggi anche: Domande sull'intervista Java

Esempio

// interfaccia

importa java.io.*;

classe Auto implementa Esternalizzabile {

età interna statica;

Nome stringa;

intero anno;

auto pubblica()

{

System.out.println("Costruttore predefinito chiamato");

}

Auto(Stringa n, int y)

{

questo.nome = n;

questo.anno = y;

età = 10;

}

@Oltrepassare

public void writeExternal(ObjectOutput out)

genera IOException

{

out.writeObject(nome);

out.writeInt(età);

out.writeInt(anno);

}

@Oltrepassare

public void readExternal(ObjectInput in)

genera IOException, ClassNotFoundException

{

nome = (Stringa)in.readObject();

anno = in.readInt();

età = in.readInt();

}

@Esegui l'override della stringa pubblica suString()

{

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

+ “Anno: ” + anno + “\n”

+ “Età: ” + età);

}

}

public class ExternExample {

public static void main(String[] args)

{

Auto auto = auto nuova ("Shiney", 1995);

auto nuova = nullo;

// Serializza l'auto

Tentativo {

FileOutputStream fo

= nuovo FileOutputStream(“gfg.txt”);

ObjectOutputStream così

= nuovo ObjectOutputStream(fo);

so.writeObject(auto);

so.flush();

}

cattura (Eccezione e) {

System.out.println(e);

}

// Deserializza l'auto

Tentativo {

FileInputStream fi

= nuovo FileInputStream(“gfg.txt”);

ObjectInputStream si

= nuovo ObjectInputStream(fi);

newcar = (Auto)si.readObject();

}

cattura (Eccezione e) {

System.out.println(e);

}

System.out.println("L'auto originale è:\n" + auto);

System.out.println("La macchina nuova è:\n" + macchina nuova);

}

}

Produzione:

Costruttore predefinito chiamato

L'auto originale è:

Nome: Shiny

Anno: 1995

Età: 10

La nuova vettura è:

Nome: Shiny

Anno: 1995

Età: 10

Questo esempio è un classico esempio per illustrare che quando viene ricreato un oggetto esternalizzabile, l'istanza viene attivata con il costruttore public no-argument, questo tende a richiamare il metodo readExternal. Quindi, con l'aiuto di un'interfaccia esternalizzabile, ci sarebbe il pieno controllo sull'analogia della classe java.

Pertanto, durante l'utilizzo di Externalize è essenziale e importante che tutti gli stati del campo siano nell'ordine esatto in cui sono stati scritti.

Leggi anche: Idee e argomenti del progetto Java

Impara i corsi di sviluppo software online dalle migliori università del mondo. Guadagna programmi Executive PG, programmi di certificazione avanzati o programmi di master per accelerare la tua carriera.

Conclusione

Quindi, alla domanda su cosa sia l'esternalizzazione in Java , possiamo dire che pesa l'importanza a causa della serializzazione personalizzata che ha da offrire e offre il pieno controllo per personalizzare la serializzazione e anche l'approccio di implementazione. I metodi readExternal e writeExternal devono essere sovrascritti dalla classe. Offre prestazioni molto migliori rispetto alla serializzazione.

Connettiti con upGrad per avere una comprensione migliore e più approfondita di java tramite il corso Executive PG Program sullo sviluppo dello stack completo, per migliorare la curva di apprendimento puoi iniziare con Rs 10.000 e accedere alle lezioni online.

Cosa sono le interfacce in Java?

Un'interfaccia è uno dei tipi in Java che non ha alcuna implementazione ed è solo un gruppo di firme del metodo. Impossibile creare questa interfaccia. Il motivo alla base di questo fatto è che queste interfacce sono solo una raccolta di firme di metodi. Una volta creata un'interfaccia, non possiamo continuare ad aggiungere un nuovo metodo in essa. Ad esempio, non possiamo aggiungere un metodo nell'interfaccia java.Aspect che ci aiuterà a modificare il comportamento della classe dall'esterno della classe. Poiché ciò va contro il principio di programmazione orientata agli oggetti. In realtà le interfacce non sono altro che estensioni di annotazioni java. Dovremmo usare le interfacce per mantenere il nostro codice leggero.

Che cos'è l'esternalizzazione in Java?

L'esteriorizzazione è la capacità di un oggetto di rendere mutevole il suo stato. L'esternalizzazione viene utilizzata in modelli di progettazione come Singleton, Factory e Prototype per implementare il principio di inversione delle dipendenze e il principio di segregazione dell'interfaccia. L'esternalizzazione non è una funzionalità incorporata di Java, ma è possibile aggiungere quella funzionalità a una classe. L'esternalizzazione è un processo di conversione di un oggetto in un flusso di caratteri in Java. È un meccanismo utilizzato per archiviare oggetti in file in formato binario. Viene utilizzato per la memorizzazione dei dati dei caratteri nei file come sequenza di byte. I dati possono essere letti nelle successive esecuzioni del programma Java.

Quali sono le caratteristiche del linguaggio di programmazione Java?

Java è un linguaggio di programmazione e una piattaforma informatica rilasciata per la prima volta da Sun Microsystems nel 1995. Da allora sono stati rilasciati numerosi aggiornamenti, con l'ultima versione Java 11. Java doveva essere eseguito su qualsiasi piattaforma in grado di supportare la macchina virtuale Java, quindi è anche una piattaforma di programmazione. Può essere eseguito in un ambiente con solo un browser, ma è più comunemente usato con varie versioni di Java Virtual Machine (JVM) in set di programmi chiamati interfacce di programmazione dell'applicazione o API.