Рубрики

временное ключевое слово в Java

transient — это модификатор переменных, используемый при сериализации . Во время сериализации, если мы не хотим сохранять значение определенной переменной в файле, мы используем ключевое слово transient . Когда JVM встречает временное ключевое слово, оно игнорирует исходное значение переменной и сохраняет значение по умолчанию для этого типа данных переменной.

ключевое слово transient играет важную роль для удовлетворения ограничений безопасности. Существуют различные примеры из реальной жизни, когда мы не хотим сохранять личные данные в файл. Другое использование переходного ключевого слова — не для сериализации переменной, значение которой можно вычислить / получить с использованием других сериализованных объектов или системы, таких как возраст человека, текущая дата и т. Д.
Практически мы сериализовали только те поля, которые представляют состояние экземпляра, после того, как вся сериализация собирается сохранить состояние объекта в файл. Полезно использовать временное ключевое слово с закрытыми конфиденциальными полями класса во время сериализации.

// Пример класса, который использует временное ключевое слово для
// пропустить их сериализацию.

class Test implements Serializable

{

    // Делаем пароль временным для безопасности

    private transient String password;

  

    // Преобразование возраста в авто

    // вычисляется из DOB и текущей даты.

    transient int age;

  

    // сериализуем другие поля

    private String username, email;

    Date dob;

  

    // другой код

}

переходный и статический: Поскольку статические поля не являются частью состояния объекта, нет никакого смысла / воздействия с помощью переходного ключевого слова со статическими переменными. Однако нет ошибки компиляции.

переходные и окончательные: конечные переменные напрямую сериализуются по своим значениям, поэтому нет смысла объявлять конечную переменную как переходную . Там нет ошибки во время компиляции, хотя.

// Java-программа для демонстрации переходного ключевого слова
// Имя файла Test.java

import java.io.*;

class Test implements Serializable

{

    // Нормальные переменные

    int i = 10, j = 20;

  

    // Переходные переменные

    transient int k = 30;

  

    // Использование переходного процесса здесь никак не влияет

    transient static int l = 40;

    transient final int m = 50;

  

    public static void main(String[] args) throws Exception

    {

        Test input = new Test();

  

        // сериализация

        FileOutputStream fos = new FileOutputStream("abc.txt");

        ObjectOutputStream oos = new ObjectOutputStream(fos);

        oos.writeObject(input);

  

        // десериализация

        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);

    }

}

Выход :

i = 10
j = 20
k = 0
l = 40
m = 50

Эта статья предоставлена Гауравом Миглани . Если вы как GeeksforGeeks и хотели бы внести свой вклад, вы также можете написать статью с помощью contribute.geeksforgeeks.org или по почте статьи contribute@geeksforgeeks.org. Смотрите свою статью, появляющуюся на главной странице GeeksforGeeks, и помогите другим вундеркиндам.

Пожалуйста, пишите комментарии, если вы обнаружите что-то неправильное или вы хотите поделиться дополнительной информацией по обсуждаемой выше теме.

Рекомендуемые посты:

временное ключевое слово в Java

0.00 (0%) 0 votes