forbigående er en variabel modifikator, der bruges i serialisering . På tidspunktet for serialisering, hvis vi ikke ønsker at gemme værdien af en bestemt variabel i en fil, så bruger vi forbigående søgeord. Når JVM støder på forbigående nøgleordet ignorerer den oprindelige værdi af variablen og gemmer standardværdien for den variable datatype. forbigående nøgleord spiller en vigtig rolle for at opfylde sikkerhedsbegrænsninger. Der er forskellige eksempler fra det virkelige liv, hvor vi ikke ønsker at gemme private data i fil. En anden brug af forbigående nøgleordet er ikke at serialisere den variabel, hvis værdi kan beregnes/afledes ved hjælp af andre serialiserede objekter eller system såsom alder på en persons nuværende dato osv. Praktisk talt serialiserede vi kun de felter, som repræsenterer en instanstilstand, efter at al serialisering handler om at gemme et objekts tilstand til en fil. Det er en god vane at bruge 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 felter er ikke en del af objektets tilstand, der er ingen brug/påvirkning af at bruge forbigående nøgleord med statiske variable. Der er dog ingen kompileringsfejl. forbigående og endelig: endelige variabler serialiseres direkte efter deres værdier, så der er ingen brug/påvirkning af at erklære slutvariabel 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