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.
- Co je externalizace v Javě?
- Kdy použít externalizaci?
- Co je to rozhraní externalizace?
- Rozdíl mezi externalizací a serializací
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ů .
Parametry | Externalizace | Serializace |
Proces | Používá proces vlastní serializace | Používá výchozí proces serializace |
UID | Není třeba UID | Potřebuje serialVersionUID |
Úložný prostor | Musíte uložit data, která mají objekt | Objekt můžete uložit přímo |
Přístup | Externalizovatelné 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.