ohimenevä on muuttujien muuntaja, jota käytetään sarjoittaminen . Jos emme halua tallentaa tietyn muuttujan arvoa tiedostoon serialisoinnin aikana, käytämme ohimenevä avainsana. Kun JVM törmää ohimenevä avainsana se jättää huomioimatta muuttujan alkuperäisen arvon ja tallentaa kyseisen muuttujan tietotyypin oletusarvon. ohimenevä avainsanalla on tärkeä rooli turvallisuusrajoitusten täyttämisessä. On olemassa useita tosielämän esimerkkejä, joissa emme halua tallentaa yksityisiä tietoja tiedostoon. Toinen käyttö ohimenevä avainsana ei ole serialoida muuttuja, jonka arvo voidaan laskea/johtaa käyttämällä muita serialisoituja objekteja tai järjestelmiä, kuten henkilön ikää nykyinen päivämäärä jne. Käytännössä sarjoimme vain ne kentät, jotka edustavat ilmentymän tilaa, kun kaikki serialisointi on tallentamassa objektin tilaa tiedostoon. Se on hyvä tapa käyttää ohimenevä 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 } ohimenevä ja staattinen: Koska staattinen kentät eivät ole osa kohteen tilaa, käytöllä ei ole käyttöä/vaikutusta ohimenevä avainsana staattisilla muuttujilla. Kokoonpanovirhettä ei kuitenkaan ole. ohimenevä ja lopullinen: lopulliset muuttujat sarjoidaan suoraan niiden arvojen perusteella, joten lopullisen muuttujan ilmoittamiselle ei ole käyttöä/vaikutusta ohimenevä . 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