关于Java中的transient关键字

Java中的transient关键字是在序列化时候用的,如果用transient修饰变量,那么该变量不会被序列化。

下面的例子中创建了一个Student类,有三个成员变量:id,name,age。age字段被transient修饰,当该类被序列化的时候,age字段将不被序列化。

 1 import java.io.Serializable;
 2 public class Student implements Serializable{
 3  int id;
 4  String name;
 5  transient int age;//Now it will not be serialized
 6  public Student(int id, String name,int age) {
 7   this.id = id;
 8   this.name = name;
 9   this.age=age;
10  }
11 }  

来创建一个用序列化的类:

 1 import java.io.*;
 2 class PersistExample{
 3  public static void main(String args[])throws Exception{
 4   Student s1 =new Student(211,"ravi",22);//creating object
 5   //writing object into file
 6   FileOutputStream f=new FileOutputStream("f.txt");
 7   ObjectOutputStream out=new ObjectOutputStream(f);
 8   out.writeObject(s1);
 9   out.flush();
10   out.close();
11   f.close();
12   System.out.println("success");
13  }
14 }  
Output: success

再来创建一个反序列化的类:

1 import java.io.*;
2 class DePersist{
3  public static void main(String args[])throws Exception{
4   ObjectInputStream in=new ObjectInputStream(new FileInputStream("f.txt"));
5   Student s=(Student)in.readObject();
6   System.out.println(s.id+" "+s.name+" "+s.age);
7   in.close();
8  }
9 }  
Output:211 ravi 0

由此可见,Student的age字段并未被序列化,其值为int类型的默认值:0.

时间: 2024-10-18 20:08:31

关于Java中的transient关键字的相关文章

Java中的transient关键字,在移动开发中的使用

transient关键词修饰的属性是临时的,不会被序列化.那么开发移动接口的同志们应该特别注意使用,这样可以提高不少效率.当然其他方面也要适当使用,通过这个特性,可以提高序列化的效率! 百度解释如下,看似别扭难理解,明天去公司写段代码上海,让大家参考下! Java中的transient关键字,在移动开发中的使用,码迷,mamicode.com

Java中的transient关键字

今天刷面试题,碰到了一道这样的题: 上图中的transient关键字我第一次遇见,于是看了些博客,了解了它的用法. transient关键字的作用: transient用来修饰类的成员属性,而被transient修饰的属性在对象被序列化时,不会进行序列化: 所以transient关键字的作用就是让类的成员属性不被序列化.常用在没有必要进行序列化的属性之上,比如说一个矩形类有三个属性,分别为长.宽和面积,而面积可以通过长宽推导出来,所以如果需要序列化矩形类的对象,那这个面积属性可以不用序列化,其好

Java IO 序列化 transient关键字

Java IO 序列化 transient关键字 @author 敏敏Alexia 转自:http://www.cnblogs.com/lanxuezaipiao/p/3369962.html 1. transient的作用及使用方法 我们都知道一个对象只要实现了Serilizable接口,这个对象就可以被序列化,java的这种序列化模式为开发者提供了很多便利,我们可以不必关系具体序列化的过程,只要这个类实现了Serilizable接口,这个类的所有属性和方法都会自动序列化. 然而在实际开发过程

浅析Java中的final关键字

原文出处: 海子 谈到final关键字,想必很多人都不陌生,在使用匿名内部类的时候可能会经常用到final关键字.另外,Java中的String类就是一个final类,那么今天我们就来了解final这个关键字的用法.下面是本文的目录大纲: 一.final关键字的基本用法 二.深入理解final关键字 若有不正之处,请多多谅解并欢迎指正. 一.final关键字的基本用法 在Java中,final关键字可以用来修饰类.方法和变量(包括成员变量和局部变量).下面就从这三个方面来了解一下final关键字

转载:浅析Java中的final关键字

文章转自:http://www.cnblogs.com/dolphin0520/p/3736238.html 谈到final关键字,想必很多人都不陌生,在使用匿名内部类的时候可能会经常用到final关键字.另外,Java中的String类就是一个final类,那么今天我们就来了解final这个关键字的用法.下面是本文的目录大纲: 一.final关键字的基本用法 二.深入理解final关键字 若有不正之处,请多多谅解并欢迎指正. 请尊重作者劳动成果,转载请标明原文链接: http://www.cn

(转)Java中的static关键字解析

转载: http://www.cnblogs.com/dolphin0520/p/3799052.html 一.static关键字的用途 在<Java编程思想>P86页有这样一段话: "static方法就是没有this的方法.在static方法内部不能调用非静态方法,反过来是可以的.而且可以在没有创建任何对象的前提下,仅仅通过类本身来调用static方法.这实际上正是static方法的主要用途." 这段话虽然只是说明了static方法的特殊之处,但是可以看出static关键

Java中的static关键字解析

http://www.cnblogs.com/dolphin0520/p/3799052.html 一.static关键字的用途 在<Java编程思想>P86页有这样一段话: “static方法就是没有this的方法.在static方法内部不能调用非静态方法,反过来是可以的.而且可以在没有创建任何对象的前提下,仅仅通过类本身来调用static方法.这实际上正是static方法的主要用途.” 这段话虽然只是说明了static方法的特殊之处,但是可以看出static关键字的基本作用,简而言之,一句

Java中的null关键字

先看一段代码 public class NULL { public static void Test(){ System.out.println("这是Test()的输出!!"); } public static void main(String[] args) { ((NULL)null).Test(); } } 上面的代码有没有错误? 答案是没有!! 编译运行 输出结果: 这是Test()的输出!! 这是因为Java中,null是一个关键字,用来标识一个不确定的对象.因此可以将nu

浅析Java中的final关键字(转载)

自http://www.cnblogs.com/dolphin0520/p/3736238.html转载 一.final关键字的基本用法 在Java中,final关键字可以用来修饰类.方法和变量(包括成员变量和局部变量).下面就从这三个方面来了解一下final关键字的基本用法. 1.修饰类 当用final修饰一个类时,表明这个类不能被继承.也就是说,如果一个类你永远不会让他被继承,就可以用final进行修饰.final类中的成员变量可以根据需要设为final,但是要注意final类中的所有成员方