Co je externalizace v Javě a kdy ji použít?

Externalizace v Javě se používá k uložení třídy Java do bajtového proudu. Třída, kterou je třeba externalizovat, musí implementovat rozhraní Externalizable.

Serializace Java není příliš efektivní. Liserializujete nafouklé objekty, které mají mnoho atributů a vlastností, nechcete serializovat. To je místo, kde do obrazu vstupuje externalizace v Javě. Tento článek vám pomůže porozumět fungování externalizace.

Pojďme začít!





Co je externalizace v Javě?

Externalizace v Javě se používá, kdykoli potřebujete přizpůsobit serializace mechanismus. Pokud třída implementuje rozhraní Externalizable, pak se serializace objektu provede pomocí metody writeExternal () . Když je Externalizable objekt rekonstruován na konci přijímače, vytvoří se instance pomocí konstruktoru bez argumentu a tato metoda se nazývá readExternal ().

jak nainstalovat okna zatmění

To v zásadě slouží účelu vlastní serializace, kde se můžete rozhodnout, co se uloží do streamu.



Kdy používáte externalizaci?

Pokud chcete serializovat pouze část souboru objekt , pak je nejlepší volbou externalizace. Budete muset serializovat pouze povinná pole objektu.

Co je to rozhraní externalizace?

Pokud chcete řídit proces čtení a zápisu objektů během procesu serializace a de-serializace, musíte mít implementovanou třídu objektu java.io.Externalizable . Teprve potom můžete implementovat vlastní kód pro čtení a zápis stavů objektu. Metody, readExternal () a writeExternal () jsou definovány Externalizovatelné rozhraní .

Pojďme tyto metody podrobně pochopit.



readExternal (ObjectInput in)

Objekt rozhraní implementuje tuto metodu, která pomáhá při obnově jejího obsahu voláním metod zDataInputpro primitivní typy. Také voláreadObjectpro objekty, řetězce a pole. Nyní pojďme diskutovat o tom, jak implementovat tuto metodu readExternal.

Takhle readExternal () metoda trvá Vstup objektu , můžete použít jeho metodu ke čtení stavů objektu ze základního proudu těchto pravidel:

nejlepší software pro programování v java
  • U primitivních typů můžete použít readXXX () metody DataInputrozhraní. Jsou to zejména readBoolean (), readByte (), readInt (), readLong ().
  • Pokud máte typy objektů, jako jsou řetězce, pole, libovolný z vašich vlastních třídy , použijete readObject () metoda.

Příklad:

public void readExternal (ObjectInput in) hodí ClassNotFoundException, IOException {this.code = in.readInt () this.name = (String) in.readObject () this.password = (String) in.readObject () this.birthday = ( Datum) in.readObject ()}

Jak můžete vidět zde, provedl jsem serializaci následujících atributů: kód, jméno, heslo a datum narození.

writeExternal (ObjectOutput out)

Objekt rozhraní implementuje tuto metodu za účelem uložení obsahu voláním metod DataOutput pro primitivní hodnoty nebo voláním writeObject metoda ObjectOutput pro objekty, řetězce a pole. Nyní se podívejme na proces implementace.

Takhle writeExternal () metoda trváObjectOutput, můžete použít jeho metodu k zápisu stavů objektu do podkladového proudu, postupujte podle těchto pravidel:

  • U primitivních typů použijte writeXXX () metody DataOutputrozhraní, jako writeBoolean (), writeByte (), writeInt (), writeLong (), atd.
  • Pro typy objektů jako , pole , vaše vlastní třídy, můžete použít writeObject () metoda.

Příklad:

public void writeExternal (ObjectOutput out) vyvolá IOException {out.writeInt (code) out.writeObject (name) // napsat prázdné heslo: out.writeObject ('') out.writeObject (narozeniny)}

Zde však vidíte, že jsem serializoval následující atributy: kód, jméno, heslo a datum narození.

Nyní přejdeme k dalšímu tématu v tomto článku Externalizace v jazyce Java. Pojďme se nyní zabývat hlavními rozdíly mezi Externalizací a Serializací v Javě.

saltstack vs loutka vs kuchař

Externalizace vs Serializace: Rozdíl mezi externalizací a serializací

Toto je jeden z nejčastěji kladených dotazů .

ParametryExternalizaceSerializace
ProcesPoužívá proces vlastní serializacePoužívá výchozí proces serializace
UIDNení třeba UIDPotřebuje serialVersionUID
Úložný prostorMusíte uložit data, která mají objektObjekt můžete uložit přímo
PřístupExternalizovatelné rozhraní poskytuje aplikaci úplnou kontrolu nad procesem serializace.
Žádný přístup

Doufám, že máte jasno v otázce Externalizace vs Serializace. Tímto se dostáváme na konec tohoto článku o „Externalizaci v Javě“. Doufám, že máte jasno v tématech sdílených s vámi.

Doufám, že se výše uvedený obsah osvědčil při vylepšování vašeho znalost. Pokračujte ve čtení, pokračujte ve zkoumání!

Podívejte se také Edureka, důvěryhodná online vzdělávací společnost se sítí více než 250 000 spokojených studentů rozložených po celém světě. Školicí a certifikační kurz Edureka Java J2EE a SOA je určen pro studenty a profesionály, kteří chtějí být vývojářem Java. Kurz je navržen tak, aby vám poskytl náskok v programování Java a naučil vás základní i pokročilé koncepty Java spolu s různými jako Hibernate & Spring.