Transient i Java: Hvad, hvorfor og hvordan fungerer det?



Transient i Java er et nøgleord, der bruges i serialisering. Det bruges, når du ikke vil gemme værdien af ​​en variabel i en fil

Transient i Java bruges til at markere medlemsvariablen, der ikke skal serialiseres, når den fortsættes til streams af bytes. Dette nøgleord spiller en vigtig rolle for at imødekomme sikkerhedsbegrænsninger i . Det ignorerer den oprindelige værdi af en variabel og gemmer standardværdien for denne variabel .

Følgende er de emner, der vil blive diskuteret i denne artikel:





Lad os komme igang!

Linux-systemadministratorroller og ansvar

Hvad er forbigående nøgleord i Java?

Transient er grundlæggende en variabelmodifikator, der bruges til serialisering. Hvad er serialisering nu? Serialisering i Java er en mekanisme, der bruges til at konvertere et objekts tilstand til en byte-strøm. Hvis du ikke vil gemme værdien på en bestemt variabel i en fil på tidspunktet for serialisering, skal du bruge det forbigående nøgleord.



Syntaks :

privat forbigående

eller

forbigående privat

Hvis du definerer et datamedlem som forbigående, serieres det ikke. Dette skyldes, at hvert felt markeret som forbigående vil ikke blive serieliseret. Du kan bruge dette forbigående nøgleord til at indikere den Java-virtuelle maskine (JVM), at den forbigående variabel ikke er en del af et objekts vedvarende tilstand.



Lad os skrive et meget grundlæggende eksempel for at forstå Transient i Java.

klasse Demo implementerer Serialiserbar {// Gør menneskelig forbigående privat forbigående String menneskelig forbigående int alder // serieliser andre felter privat Stringnavn, adresse Dato dob // resten af ​​koden}

Her oprettede jeg en klasse kaldet Demo, som implementerer Serializable. Alderdatamedlemmet i Demo-klassen er erklæret forbigående, dens værdi serieres ikke. Men hvis du deserialiserer objektet, du får standardværdien for en forbigående variabel.

Hvorfor bruges Transient modifier?

Transient i Java bruges til at indikere, at et felt ikke skal være en del af serieiseringsprocessen.

Modifikatoren Transient kan anvendes på medlemsvariabler i en klasse for at slå serialisering fra på disse medlemsvariabler. Hvert felt, der er markeret som forbigående, serieres ikke. Du kan bruge dette forbigående nøgleord til at angive for Java virtuel maskine at den forbigående variabel ikke er en del af et objekts vedvarende tilstand.

Du har måske dette spørgsmål kørende i dit hoved. Hvornår skal jeg bruge denne Transient i Java?

Svaret på dette ville være:

  1. Du kan bruge dette forbigående nøgleord, når du har felter, der er afledt / beregnet fra andre felter inden for forekomsten af ​​en klasse.
  2. Brug den med felter, der ikke er markeret som “Serializable” i JDK eller applikationskode. Dette skyldes, at klasser, som ikke implementerer Serializable-interface, henvises til inden for en hvilken som helst serie, der kan serialiseres, og de ikke kan serialiseres og vil kaste undtagelsen 'java.io.NotSerializableException'. Bemærk, at disse ikke-serierbare referencer skal være mærket 'forbigående' før serialisering af hovedklassen.

Hvordan bruges Transient med Final Keyword?

Transient i Java kan bruges sammen med sidste nøgleord fordi det opfører sig forskelligt i forskellige situationer, hvilket generelt ikke er tilfældet med andre nøgleord i Java .

sorter array i c ++

Se på dette eksempel.

privat streng fornavn privat streng efternavn // sidste felt 1 offentlig endelig forbigående String pass = 'adgangskode' // sidste felt 2 offentlig endelig forbigående Låselås = Lock.getLock ('demo')

Nu når du kører serialiseringen (skriv / læs) igen, får du denne output:

Kenny
Stærk
adgangskode
nul

konvertere dobbelt til heltal i java

Dette skyldes, at vi har markeret 'passet' til forbigående, og stadig er feltet markeret. For en lignende erklæring blev lås ikke serielt. Årsagen er, hver gang et endeligt felt evalueres som et konstant udtryk,det serieliseres ved, at JVM ignorerer tilstedeværelsen af ​​forbigående nøgleord.

Forskel mellem forbigående og flygtig

Dette er et vigtigt spørgsmål, der stilles under en . Hvad er forskellen mellem forbigående og flygtigt nøgleord i Java?

Flygtige og Transient er to helt forskellige nøgleord, der bruges i . Et forbigående nøgleord bruges under serialisering af Java-objekt. Flygtig er relateret til synligheden af ​​variabler, der er modificeret af flere tråde.

Den eneste lighed mellem disse søgeord er, at de er mindre anvendte eller usædvanlige søgeord og ikke så populære som offentlige, statiske eller endelige.

Dette bringer os til slutningen af ​​denne artikel, hvor vi har lært om Transient i Java. Håber du er klar med alt, hvad der er delt med dig i denne vejledning.

Hvis du fandt denne artikel om 'Transient in Java' relevant, skal du tjekke en betroet online læringsvirksomhed med et netværk på mere end 250.000 tilfredse elever spredt over hele kloden.

Vi er her for at hjælpe dig med hvert trin på din rejse, for at blive et udover dette java-interviewspørgsmål, kommer vi med en læseplan, der er designet til studerende og fagfolk, der ønsker at være Java-udvikler. Kurset er designet til at give dig et forspring i Java-programmering og træne dig til både kerne- og avancerede Java-koncepter sammen med forskellige Java-rammer som Hibernate & Spring.

Hvis du støder på spørgsmål, er du velkommen til at stille alle dine spørgsmål i kommentarfeltet i 'Transient in Java', og vores team vil med glæde svare.