JAVA中的TRANSIENT

转载 2013年12月03日 16:54:46
1、transient关键字只能修饰变量,而不能修饰方法和类。注意,本地变量是不能被transient关键字修饰的。
2、被transient关键字修饰的变量不再能被序列化,一个静态变量不管是否被transient修饰,均不能被序列化。

3、一旦变量被transient修饰,变量将不再是对象持久化的一部分,该变量内容在序列化后无法获得访问。也可以认为在将持久化的对象反序列化后,被transient修饰的变量将按照普通类成员变量一样被初始化。


package com.nanda.testTransient;

import java.io.*;
import java.util.*;

class Logon implements Serializable {
	private Date date = new Date();
	private String username;
	private transient String password;

	Logon(String name, String pwd) {
		username = name;
		password = pwd;
	}

	public String toString() {
		String pwd = (password == null) ? "(n/a)" : password;
		return "logon info: \n " + "username: " + username + "\n date: "
				+ date.toString() + "\n password: " + pwd;
	}

	public static void main(String[] args) {
		Logon a = new Logon("Hulk", "myLittlePony");
		System.out.println("logon a = " + a);
		try {
			ObjectOutputStream o = new ObjectOutputStream(new FileOutputStream(
					"Logon.out"));
			o.writeObject(a);
			o.close();
			// Delay:
			int seconds = 5;
			long t = System.currentTimeMillis() + seconds * 1000;
			while (System.currentTimeMillis() < t)
				;
			// Now get them back:
			ObjectInputStream in = new ObjectInputStream(new FileInputStream(
					"Logon.out"));
			System.out.println("Recovering object at " + new Date());
			a = (Logon) in.readObject();
			System.out.println("logon a = " + a);
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
} // /:~


transient Java语言的关键字

  • 2013年01月31日 16:51
  • 4KB
  • 下载

Java关键字Transient与串行化

  • 2011年09月13日 22:56
  • 3KB
  • 下载

java中transient关键字简介

java中 transien 关键字 我们都知道一个对象只要实现了 Serilizable 接口,这个对象就可以被序列化,java的这种序列化模式为开发者提供了很多便利,我们可以不必关系具体序列化的过...

java关键字transient

  • 2017年06月25日 14:58
  • 7KB
  • 下载

Java之transient关键字详解

1、transient的作用及使用方法Java对象序列化是 JDK 1.1 中引入的一组开创性特性之一,用于作为一种将Java对象的状态转换为字节数组,以便存储或传输的机制,以后,仍可以将字节数组转换...

Java关键字transient和volatile小结(转)

transient和volatile两个关键字一个用于对象序列化,一个用于线程同步,都是Java中比较高阶的话题,简单总结一下。 transient transient是类型修饰符,只能用...

[转]Java transient关键字使用小记

transient的作用及使用方法 我们都知道一个对象只要实现了Serilizable接口,这个对象就可以被序列化,java的这种序列化模式为开发者提供了很多便利,我们可以不必关系具体序列化的过程,...

Java中对象的串行化(Serialization)和transient关键字

Kaiwii总结之: 持久化(将对象保存到永久介质中)是目的 串行化(使得对象的非static字段能够通过流的方式进行传输)是手段:(因为将内容写到永久介质中的其中一个手段就是流操作) tran...
  • Kaiwii
  • Kaiwii
  • 2012年09月25日 15:15
  • 777

Java中对象的串行化(Serialization)和transient关键字

Java中对象的串行化(Serialization)和transient关键字一、串行化的概念和目的 1.什么是串行化 对象的寿命通常随着生成该对象的程序的终止而终止。有时候,可能需要将对象的状态保存...
  • javadxz
  • javadxz
  • 2011年06月10日 13:45
  • 2607

java学习——序列化与 Transient 关键字

java学习——序列化与 Transient 关键字 将 Java 对象序列化为二进制文件的 Java 序列化技术是 Java 系列技术中一个较为重要的技术点,在大部分情况下,开发人员只...
  • J__King
  • J__King
  • 2014年09月23日 07:50
  • 415
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:JAVA中的TRANSIENT
举报原因:
原因补充:

(最多只允许输入30个字)