przejściowy jest modyfikatorem zmiennych używanym w serializacja . Jeśli w momencie serializacji nie chcemy zapisywać wartości danej zmiennej w pliku to korzystamy z niej przejściowy słowo kluczowe. Kiedy pojawia się JVM przejściowy słowo kluczowe ignoruje oryginalną wartość zmiennej i zapisuje wartość domyślną tego typu danych zmiennej. przejściowy Słowo kluczowe odgrywa ważną rolę w spełnianiu ograniczeń bezpieczeństwa. Istnieje wiele przykładów z życia wziętych, w których nie chcemy zapisywać prywatnych danych w pliku. Inne zastosowanie przejściowy słowem kluczowym nie jest serializowanie zmiennej, której wartość można obliczyć/wyprowadzić przy użyciu innych serializowanych obiektów lub systemów, takich jak wiek osoby, bieżąca data itp. W praktyce serializowaliśmy tylko te pola, które reprezentują stan instancji, ponieważ cała serializacja ma na celu zapisanie stanu obiektu do pliku. Dobrym nawykiem jest stosowanie przejściowy 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 } przejściowe i statyczne: Od statyczny pola nie są częścią stanu obiektu, ich użycie nie ma żadnego zastosowania/skutku przejściowy słowo kluczowe ze zmiennymi statycznymi. Jednak nie ma błędu kompilacji. przejściowe i ostateczne: zmienne końcowe są bezpośrednio serializowane według ich wartości, więc deklarowanie zmiennej końcowej jako nie ma żadnego sensu/skutku przejściowy . 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