Co to jest eksternalizacja w Javie? Interfejs, funkcje i przykład

Opublikowany: 2021-02-04

Aby odpowiedzieć na pytanie , czym jest eksternalizacja W java możemy powiedzieć, że jest to powszechny mechanizm implementowany w celu dostosowania serializacji. Jest używany z głównym aspektem, że serializacja java nie jest tak wydajna, więc zewnętrzny parametr dostosowywania jest używany, gdy istnieją nadęte obiekty, które mają wiele właściwości i atrybutów.

Spis treści

Czym są serializacja i eksternalizacja?

Serializacja- Jest to mechanizm służący do komponowania danych obiektu w strumień bajtów, proces jest realizowany głównie w technologiach typu RMI, JMS, JPA. Drugi typ składa się z mechanizmu, który odwraca funkcję i proces serializacji i określany jest jako deserializacja. Funkcją serializacji, jak wskazuje nazwa, jest serializacja obiektów obecnych w java.

Eksternalizacja — jest zdefiniowana jako mechanizm używany do dostosowywania mechanizmu serializacji. Nadprogramy nie są szybkie i responsywne. Generuje potrzebę dobrego mechanizmu, który jest wystarczająco wydajny i responsywny, aby dostosować cały proces.

W serializacji maszyna programowania Java reaguje na proces zapisywania i odczytywania obiektów. Jest to często używany scenariusz, ponieważ programiści są obciążani koniecznością martwienia się o proces serializacji. W takich przypadkach domyślna serializacja robocza nie ma na celu zapisywania ważnych poświadczeń, takich jak identyfikator logowania i hasła.

Jeśli jednak programiści stwierdzą potrzebę zabezpieczenia tych samych poświadczeń, eksternalizacja udowadnia, że ​​jej celem jest zapewnienie pełnej kontroli nad obsługą danych obiektu odczytu i zapisu danych podczas serializacji.

Zamówienie: popularne frameworki Java

Interfejs z możliwością eksternalizacji

Interfejs jest implementowany, gdy istnieje wymóg moderowania odczytywania i zapisywania obiektów podczas serializacji i deserializacji. W związku z tym potrzeba klasy obiektów z interfejsem java.io.externalisable pomaga użytkownikom i programistom zaimplementować ich niestandardowy kod na stanach obiektów poprzez pisanie w writeExternal() i odczytywanie obiektów w metodzie readExternal().

Dla lepszego wyobrażenia zrozumiemy obie metody

readExternal() działa, gdy obiekt pobiera dane wejściowe. Zawartość jest przywracana do oryginalnego kontekstu za pomocą metod wprowadzania danych , wywołując metodę write Object dla obiektów, ciągów i tablic.

writeExternal() działa, gdy obiekt pobiera dane wejściowe, a metody danych wyjściowych zapisują zawartość, wywołując metodę read Object dla obiektów, ciągów i tablic.

Cechy

Eksternalizacja pomaga zaimplementować sterowanie logiczne do aplikacji przez pominięcie metod read External i write External.

Eksternalizacja okazała się skutecznym sposobem dla programistów, ponieważ mogli tworzyć kod z własnym sumieniem i logiką, aby wyeliminować zmienne podczas eksternalizacji obiektu java.

Metody eksternalizacji zapewniają pełną ręczną kontrolę nad podejściem do implementacji, a także można implikować serializację obiektu i dziedziczenie.

Przeczytaj także: Pytania do rozmowy kwalifikacyjnej w języku Java

Przykład

// interfejs

importuj java.io.*;

class Car implementuje uzewnętrznianie {

statyczny wiek;

Nazwa ciągu;

międzynarodowy rok;

samochód publiczny()

{

System.out.println(„Domyślny konstruktor o nazwie”);

}

Samochód(Ciąg n, int y)

{

to.nazwa = n;

ten.rok = r;

wiek = 10 lat;

}

@Nadpisanie

public void writeExternal (ObjectOutput out)

rzuca IOException

{

out.writeObject(nazwa);

out.writeInt(wiek);

out.writeInt(rok);

}

@Nadpisanie

public void readExternal (ObjectInput in)

rzuca IOException, ClassNotFoundException

{

nazwa = (String) w.readObject();

rok = w.odczytajInt();

wiek = w.odczytajInt();

}

@Zastąp publiczny ciąg znaków toString()

{

return („Nazwa: ” + nazwa + „\n”

+ „Rok: ” + rok + „\n”

+ „Wiek: ” + wiek);

}

}

public class ExternExample {

public static void main(String[] args)

{

Samochód samochodowy = nowy samochód(„Shiney”, 1995);

Nowy samochód = null;

// Serializuj samochód

próbować {

FileOutputStream dla

= nowy FileOutputStream(„gfg.txt”);

ObjectOutputStream tak

= nowy ObjectOutputStream(fo);

so.writeObject(samochód);

tak.flush();

}

połów (wyjątek e) {

System.out.println(e);

}

// Deserializuj samochód

próbować {

FileInputStream fi

= nowy FileInputStream(“gfg.txt”);

ObjectInputStream si

= nowy ObjectInputStream(fi);

nowysamochód = (Samochód)si.odczytObiektu();

}

połów (wyjątek e) {

System.out.println(e);

}

System.out.println("Oryginalny samochód to:\n" + samochód);

System.out.println("Nowy samochód to:\n" + nowy samochód);

}

}

Wyjście:

Konstruktor domyślny o nazwie

Oryginalny samochód to:

Nazwa: Shiney

Rok: 1995

Wiek: 10

Nowy samochód to:

Nazwa: Shiney

Rok: 1995

Wiek: 10

Ten przykład jest klasycznym przykładem pokazującym, że po odtworzeniu obiektu, który można zewnętrznie utworzyć, instancja jest wyzwalana za pomocą publicznego konstruktora bez argumentów, co ma tendencję do przywoływania metody readExternal. Tak więc za pomocą interfejsu, który można uzewnętrznić, byłaby pełna kontrola nad analogią do klasy java.

Dlatego podczas korzystania z eksternalizacji ważne i ważne jest, aby wszystkie stany pól były dokładnie w kolejności, w jakiej zostały zapisane.

Przeczytaj także: Pomysły i tematy projektów Java

Ucz się kursów rozwoju oprogramowania online z najlepszych światowych uniwersytetów. Zdobywaj programy Executive PG, Advanced Certificate Programs lub Masters Programs, aby przyspieszyć swoją karierę.

Wniosek

Tak więc pytani o to, co to jest eksternalizacja w java , możemy powiedzieć, że ma ona znaczenie ze względu na niestandardową serializację, którą ma do zaoferowania i daje pełną kontrolę nad dostosowywaniem serializacji, a także nad podejściem do implementacji. Metody readExternal i writeExternal muszą być nadpisane przez klasę. Oferuje znacznie lepszą wydajność niż serializacja.

Połącz się z upGrad, aby uzyskać lepsze i głębsze zrozumienie języka Java za pośrednictwem kursu Executive PG Program na temat tworzenia pełnego stosu, aby zwiększyć krzywą uczenia się, którą możesz rozpocząć od 10 000 rupii i uzyskać dostęp do wykładów online.

Czym są interfejsy w Javie?

Interfejs jest jednym z typów w java, który nie ma żadnej implementacji i jest po prostu grupą sygnatur metod. Nie można utworzyć tego interfejsu. Powodem tego jest to, że te interfejsy są tylko zbiorem sygnatur metod. Kiedy już stworzymy interfejs, nie możemy dalej dodawać do niego nowej metody. Na przykład nie możemy dodać metody w interfejsie java.Aspect, która pomoże nam w modyfikowaniu zachowania klasy spoza klasy. Ponieważ jest to sprzeczne z zasadą programowania obiektowego. W rzeczywistości interfejsy to nic innego jak rozszerzenie adnotacji java. Powinniśmy używać interfejsów, aby nasz kod był lekki.

Co to jest eksternalizacja w Javie?

Eksternalizacja to zdolność obiektu do zmieniania swojego stanu. Eksternalizacja jest wykorzystywana we wzorcach projektowych, takich jak Singleton, Factory i Prototype, w celu zaimplementowania zasady odwrócenia zależności i zasady segregacji interfejsów. Eksternalizacja nie jest wbudowaną funkcją Javy, ale możliwe jest dodanie tej funkcji do klasy. Eksternalizacja to proces przekształcania obiektu w strumień znaków w Javie. Jest to mechanizm, który służy do przechowywania obiektów w plikach w formacie binarnym. Służy do przechowywania danych znakowych w plikach jako ciąg bajtów. Dane można odczytać w kolejnych wykonaniach programu Java.

Jakie są cechy języka programowania Java?

Java to język programowania i platforma obliczeniowa wydana po raz pierwszy przez firmę Sun Microsystems w 1995 roku. Od tego czasu wydano wiele aktualizacji, a najnowsza wersja to Java 11. Java miała działać na dowolnej platformie obsługującej wirtualną maszynę Java, dlatego to także platforma programistyczna. Może działać w środowisku z samą przeglądarką, ale jest najczęściej używany z różnymi wersjami wirtualnej maszyny Java (JVM) w zestawach programów zwanych interfejsami programowania aplikacji lub interfejsami API.