• Java
    • JAXB Tutorial
      • What is JAXB
      • JAXB Marshalling Example
      • JAXB UnMarshalling Example
  • Spring Tutorial
    • Spring Core Tutorial
    • Spring MVC Tutorial
      • Quick Start
        • Flow Diagram
        • Hello World Example
        • Form Handling Example
      • Handler Mapping
        • BeanNameUrlHandlerMapping
        • ControllerClassNameHandlerMapping
        • SimpleUrlHandlerMapping
      • Validation & Exception Handling
        • Validation+Annotations
        • Validation+ResourceBundle
        • @ExceptionHandler
        • @ControllerAdvice
        • Custom Exception Handling
      • Form Tag Library
        • Textbox Example
        • TextArea Example
        • Password Example
        • Dropdown Box Example
        • Checkboxes Example
        • Radiobuttons Example
        • HiddenValue Example
      • Misc
        • Change Config file name
    • Spring Boot Tutorial
  • Hibernate Tutorial
  • REST Tutorial
    • JAX-RS REST @PathParam Example
    • JAX-RS REST @QueryParam Example
    • JAX-RS REST @DefaultValue Example
    • JAX-RS REST @Context Example
    • JAX-RS REST @MatrixParam Example
    • JAX-RS REST @FormParam Example
    • JAX-RS REST @Produces Example
    • JAX-RS REST @Consumes Example
    • JAX-RS REST @Produces both XML and JSON Example
    • JAX-RS REST @Consumes both XML and JSON Example
  • Miscellaneous
    • JSON Parser
      • Read a JSON file
      • Write JSON object to File
      • Read / Write JSON using GSON
      • Java Object to JSON using JAXB
    • CSV Parser
      • Read / Write CSV file
      • Read/Parse/Write CSV File – OpenCSV
      • Export data into a CSV File
      • CsvToBean and BeanToCsv – OpenCSV

JavaInterviewPoint

Java Development Tutorials

What is the use of Java Transient Keyword – Serailization Example

June 24, 2015 by javainterviewpoint Leave a Comment

In this article we will learn about the usage of Transient Keyword in Serialization. Before getting into, some basic knowledge on How Serialization works in Java is required. Lets take an example we have a class Employee which is having three data members empId, empName, empSalary. Suppose if you dont want empSalary alone not to be serialized(non-persistant) then you can mark empSalary as transient. 

Employee.java

package com.javainterviewpoint;

import java.io.Serializable;

public class Employee implements Serializable
{

      private int empId;
      private String empName;
      private int empSalary;
 
 public int getEmpId() {
       return empId;
 }

 public String getEmpName() {
       return empName;
 }
 
 public int getEmpSalary() {
       return empSalary;
 }

 public Employee(int empId,String empName,int empSalary)
 {
       this.empId=empId;
       this.empName=empName;
       this.empSalary=empSalary;
 }
}

In our Employee class we have three data members empId, empName, empSalary

SerializationUtility.java

package com.javainterviewpoint;

import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;

public class SerializationUtility
{
    //Method to serialize and save the object in the file
    public void serialize(Object obj,String filePath)
    {
        try
        {
            FileOutputStream fileOutputStream = new FileOutputStream(filePath);
            ObjectOutputStream outputStream = new ObjectOutputStream(fileOutputStream);
            outputStream.writeObject(obj);
            outputStream.flush();
            outputStream.close();
        }
        catch(Exception ee)
        {
            ee.printStackTrace();
        }
    }
    
    //Method to deserialize and return the object
    public Object deSerialize(String filePath)
    {
        Object obj = null;
        try
        {
            FileInputStream fileInputStream = new FileInputStream(filePath);
            ObjectInputStream inputStream = new ObjectInputStream(fileInputStream);
            obj = inputStream.readObject();
        }
        catch(Exception ee)
        {
            ee.printStackTrace();
        }
        return obj;
    }
}

We have used java.util.ObjectOutputStream and java.util.ObjectInputStream to write/read object to/from the file “Persist.txt”

Our SerializationUtility class has two methods

  • serialize() : we will make use of java.util.ObjectOutput stream to write the Object which we pass, to the file “Persist.txt”
  • deSerialize(): java.util.ObjectInputStream is used to read the Object from the file and return it back to the user.

SerilizationTest.java

 package com.javainterviewpoint;

public class SerilizationTest 
{
      public static void main(String args[])
     {
          //Path to store the Serialized object
          String filePath="D://Persist.txt";
          Employee emp = new Employee(1,"JavaInterviewPoint",1000);
 
         System.out.println();
 
         SerializationUtility su = new SerializationUtility();
 
         //Serialize emp object
         su.serialize(emp, filePath);
 
         //De-Serialize Employee object
         Employee ee = (Employee)su.deSerialize(filePath);
         System.out.println("Employee id : "+ee.getEmpId());
         System.out.println("Employee Name : "+ee.getEmpName());
        System.out.println("Employee Salary : "+ee.getEmpSalary());
    }
}

Output

When we run our SerializationTest class the serialize() and deSerialize() methods will be called and below output will be rendered.

Employee id : 1
Employee Name : JavaInterviewPoint
Employee Salary : 1000

Now we will slightly modify our Employee class to have a transient variable (empSalary)

package com.javainterviewpoint;

import java.io.Serializable;

public class Employee implements Serializable
{

      private int empId;
      private String empName;
      private transient int empSalary;
 
 public int getEmpId() {
       return empId;
 }

 public String getEmpName() {
       return empName;
 }
 
 public int getEmpSalary() {
       return empSalary;
 }

 public Employee(int empId,String empName,int empSalary)
 {
       this.empId=empId;
       this.empName=empName;
       this.empSalary=empSalary;
 }
}

Again when we run our SerializationTest class, we will get empSalary as “0”, as empSalary is transient and hence the value will not be persisted.

Employee id : 1
Employee Name : JavaInterviewPoint
Employee Salary : 0

Other interesting articles which you may like …

  • Java StringTokenizer Example
  • How to Reverse String in Java using String Tokenizer
  • What is the use of a Private Constructors in Java
  • Fibonacci Series Java Example
  • For Loop in Java with Example
  • For-each loop or Enhanced For loop in Java
  • Use of Class.forName in java
  • why we Use Class.forName in SQL JDBC
  • Can we Overload static methods in Java
  • Can we Override static methods in Java
  • Java Constructor Chaining with example
  • Java – Constructor in an Interface?
  • Inheritance in Java with Example Programs
  • Types of Inheritance in Java
  • Single Inheritance in Java with Example
  • Multiple Inheritance in Java Example
  • Multilevel Inheritance in Java with Example
  • Hierarchical Inheritance in Java with Example
  • Hybrid Inheritance in Java with Example
  • Taking Command Line Arguments in Java
  • Cannot change version of project facet Dynamic Web Module to 2.5
  • Implicit and Explicit Casting

Filed Under: Core Java, Java Tagged With: Java, Transient, Transient Keyword

Leave a Reply Cancel reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Java Basics

  • JVM Architecture
  • Object in Java
  • Class in Java
  • How to Set Classpath for Java in Windows
  • Components of JDK
  • Decompiling a class file
  • Use of Class.forName in java
  • Use Class.forName in SQL JDBC

Oops Concepts

  • Inheritance in Java
  • Types of Inheritance in Java
  • Single Inheritance in Java
  • Multiple Inheritance in Java
  • Multilevel Inheritance in Java
  • Hierarchical Inheritance in Java
  • Hybrid Inheritance in Java
  • Polymorphism in Java – Method Overloading and Overriding
  • Types of Polymorphism in java
  • Method Overriding in Java
  • Can we Overload static methods in Java
  • Can we Override static methods in Java
  • Java Constructor Overloading
  • Java Method Overloading Example
  • Encapsulation in Java with Example
  • Constructor in Java
  • Constructor in an Interface?
  • Parameterized Constructor in Java
  • Constructor Chaining with example
  • What is the use of a Private Constructors in Java
  • Interface in Java
  • What is Marker Interface
  • Abstract Class in Java

Java Keywords

  • Java this keyword
  • Java super keyword
  • Final Keyword in Java
  • static Keyword in Java
  • Static Import
  • Transient Keyword

Miscellaneous

  • newInstance() method
  • How does Hashmap works internally in Java
  • Java Ternary operator
  • How System.out.println() really work?
  • Autoboxing and Unboxing Examples
  • Serialization and Deserialization in Java with Example
  • Generate SerialVersionUID in Java
  • How to make a class Immutable in Java
  • Differences betwen HashMap and Hashtable
  • Difference between Enumeration and Iterator ?
  • Difference between fail-fast and fail-safe Iterator
  • Difference Between Interface and Abstract Class in Java
  • Difference between equals() and ==
  • Sort Objects in a ArrayList using Java Comparable Interface
  • Sort Objects in a ArrayList using Java Comparator

Follow

  • Coding Utils

Useful Links

  • Spring 4.1.x Documentation
  • Spring 3.2.x Documentation
  • Spring 2.5.x Documentation
  • Java 6 API
  • Java 7 API
  • Java 8 API
  • Java EE 5 Tutorial
  • Java EE 6 Tutorial
  • Java EE 7 Tutorial
  • Maven Repository
  • Hibernate ORM

About JavaInterviewPoint

javainterviewpoint.com is a tech blog dedicated to all Java/J2EE developers and Web Developers. We publish useful tutorials on Java, J2EE and all latest frameworks.

All examples and tutorials posted here are very well tested in our development environment.

Connect with us on Facebook | Privacy Policy | Sitemap

Copyright ©2023 · Java Interview Point - All Rights Are Reserved ·