forbigående er en variabelmodifikator som brukes i serialisering . På tidspunktet for serialisering, hvis vi ikke ønsker å lagre verdien av en bestemt variabel i en fil, bruker vi forbigående nøkkelord. Når JVM kommer over forbigående nøkkelordet ignorerer den opprinnelige verdien til variabelen og lagrer standardverdien for den variabeldatatypen. forbigående nøkkelord spiller en viktig rolle for å møte sikkerhetsbegrensninger. Det er forskjellige eksempler fra det virkelige liv hvor vi ikke ønsker å lagre private data i fil. En annen bruk av forbigående nøkkelord er ikke å serialisere variabelen hvis verdi kan beregnes/utledes ved hjelp av andre serialiserte objekter eller system som alder på en person gjeldende dato osv. Praktisk talt har vi serialisert bare de feltene som representerer en instanstilstand etter at all serialisering handler om å lagre tilstanden til et objekt til en fil. Det er en god vane å bruke forbigående keyword with private confidential fields of a class during serialization. Java // A sample class that uses transient keyword to // skip their serialization. class Test implements Serializable { // Making password transient for security private transient String password; // Making age transient as age is auto- // computable from DOB and current date. transient int age; // serialize other fields private String username email; Date dob; // other code } forbigående og statisk: Siden statisk felt er ikke en del av tilstanden til objektet det er ingen bruk/påvirkning av å bruke forbigående nøkkelord med statiske variabler. Det er imidlertid ingen kompilasjonsfeil. forbigående og endelig: endelige variabler er direkte serialisert av verdiene deres, så det er ingen bruk/påvirkning av å erklære sluttvariabel som forbigående . There is no compile-time error though. Java // Java program to demonstrate transient keyword // Filename Test.java import java.io.*; class Test implements Serializable { // Normal variables int i = 10 j = 20; // Transient variables transient int k = 30; // Use of transient has no impact here transient static int l = 40; transient final int m = 50; public static void main(String[] args) throws Exception { Test input = new Test(); // serialization FileOutputStream fos = new FileOutputStream('abc.txt'); ObjectOutputStream oos = new ObjectOutputStream(fos); oos.writeObject(input); // de-serialization FileInputStream fis = new FileInputStream('abc.txt'); ObjectInputStream ois = new ObjectInputStream(fis); Test output = (Test)ois.readObject(); System.out.println('i = ' + output.i); System.out.println('j = ' + output.j); System.out.println('k = ' + output.k); System.out.println('l = ' + output.l); System.out.println('m = ' + output.m); } } Output : i = 10 j = 20 k = 0 l = 40 m = 50