当使用Serializable接口实现序列化操作时,如果一个对象中的某一属性不希望被序列化,则可以使用transient关键字进行声明

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.OutputStream;
import java.io.Serializable; //=================================================
// File Name : Serializable_demo
//------------------------------------------------------------------------------
// Author : Common //类名:Person_3
//属性:
//方法:
class Person_3 implements Serializable{ //此类的对象可以被序列化
private transient String name;
private int age; public Person_3(String name, int age) {
super();
this.name = name;
this.age = age;
} @Override
public String toString() {
return "姓名:" + name + ", 年龄:" + age;
} } //主类
//Function : Serializable_demo;
public class Serializable_demo { public static void main(String[] args) throws Exception {
// TODO 自动生成的方法存根
// File f = new File("/home/common/software/coding/HelloWord/HelloWord/test.txt");//路径
// ObjectOutputStream oos = null;
// OutputStream out = new FileOutputStream(f); //文件输出流
// oos = new ObjectOutputStream(out); //为对象输出流实例化
// oos.writeObject(new Person_3("张三", 30));
// oos.close(); File f = new File("/home/common/software/coding/HelloWord/HelloWord/test.txt");//路径
ObjectInputStream ois = null;
InputStream input = new FileInputStream(f); //文件输入流
ois = new ObjectInputStream(input); //为对象输入流实例化
Object obj = ois.readObject(); //读取对象
ois.close();
System.out.println(obj);
} }

<3>序列化一组对象

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.OutputStream;
import java.io.Serializable; //=================================================
// File Name : Serializable_demo
//------------------------------------------------------------------------------
// Author : Common //类名:Person_3
//属性:
//方法:
class Person_3 implements Serializable{ //此类的对象可以被序列化
// private transient String name;
private String name;
private int age; public Person_3(String name, int age) {
super();
this.name = name;
this.age = age;
} @Override
public String toString() {
return "姓名:" + name + ", 年龄:" + age;
} } //主类
//Function : Serializable_demo;
public class Serializable_demo { public static void main(String[] args) throws Exception {
// TODO 自动生成的方法存根
// File f = new File("/home/common/software/coding/HelloWord/HelloWord/test.txt");//路径
// ObjectOutputStream oos = null;
// OutputStream out = new FileOutputStream(f); //文件输出流
// oos = new ObjectOutputStream(out); //为对象输出流实例化
// oos.writeObject(new Person_3("张三", 30));
// oos.close(); // File f = new File("/home/common/software/coding/HelloWord/HelloWord/test.txt");//路径
// ObjectInputStream ois = null;
// InputStream input = new FileInputStream(f); //文件输入流
// ois = new ObjectInputStream(input); //为对象输入流实例化
// Object obj = ois.readObject(); //读取对象
// ois.close();
// System.out.println(obj); Person_3 per[] = {new Person_3("张三",30),new Person_3("李四",31),new Person_3("王五",32)};//定义对象数组
ser(per); //序列化对象数组
Object o[] = dser();
for(int i=0;i<o.length;i++){
Person_3 p = (Person_3) o[i];
System.out.println(p);
}
} public static void ser(Object obj[]) throws Exception{
File f = new File("/home/common/software/coding/HelloWord/HelloWord/test.txt");//路径
ObjectOutputStream oos = null;
OutputStream out = new FileOutputStream(f); //文件输出流
oos = new ObjectOutputStream(out); //为对象输出流实例化
oos.writeObject(obj);
oos.close();
} public static Object[] dser() throws Exception{
File f = new File("/home/common/software/coding/HelloWord/HelloWord/test.txt");//路径
ObjectInputStream ois = null;
InputStream input = new FileInputStream(f); //文件输入流
ois = new ObjectInputStream(input); //为对象输入流实例化
Object obj[] = (Object[])ois.readObject(); //读取对象数组
ois.close();
return obj;
} }

Java关键字——transient的更多相关文章

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

    Java关键字transient和volatile小结(转) transient和volatile两个关键字一个用于对象序列化,一个用于线程同步,都是Java中比较高阶的话题,简单总结一下. tran ...

  2. 【JSON 注解】JSON循环引用2----JSON注解@JsonIgnoreProperties+JAVA关键字transient+后台对象与JSON数据的格式互相转化

    接着来说这个JSON循环引用的问题: 关于JSON格式的转化,其实关键就是这几个依赖: <!-- json --> <!-- 1号 --> <dependency> ...

  3. Java关键字:transient,strictfp和volatile简介

    关键字:transient 使用对象:字段 介绍:transient说明一个属性是临时的,不会被序列化. 当对象进行序列化(Serializable)过程时候,有一些属性的状态是瞬时的,这样的对象是无 ...

  4. java 关键字 transient

    一个对象实现了Serilizable 接口,该对象就可以被序列化. 然而在实际开发工程中,我们会遇到,这个类的有些属性不需要序列化,比如包含用户的敏感信息(如密码),为了安全起见,不希望在网络操作(主 ...

  5. java关键字-transient

    java语言的关键字,变量修饰符,如果用transient声明一个实例变量,当对象存储时,它的值不需要维持. Java的serialization提供了一种持久化对象实例的机制.当持久化对象时,可能有 ...

  6. java 关键字transient

    http://www.cnblogs.com/lanxuezaipiao/p/3369962.html 1. transient的作用及使用方法 我们都知道一个对象只要实现了Serilizable接口 ...

  7. 转载:关于java关键字transient

    今天在map源码中看到这个关键字  百度看一下  转载记录下 源文:http://www.cnblogs.com/lanxuezaipiao/p/3369962.html 1. transient的作 ...

  8. JAVA关键字transient

    转载自http://www.cnblogs.com/liuling/archive/2013/05/05/transient.html 1.transient关键字只能修饰变量,而不能修饰方法和类.注 ...

  9. java关键字transient与volatile小结

    本文转自:http://heaven-arch.iteye.com/blog/1160693 transient和volatile两个关键字一个用于对象序列化,一个用于线程同步,都是Java中比较高阶 ...

随机推荐

  1. iOS开发--利用MPMoviePlayerController播放视频简单实现

    一.包含头文件#import <MediaPlayer/MediaPlayer.h> 二.重点:给MPMoviePlayerController的view设置frame,并且将view添加 ...

  2. javascript 红宝书笔记之操作日期

    创建当日 日期对象   调用Date的构造函数而不传递参数的情况下,新创建的对象默认获取当前的日期和时间.   var now = new Date();   创建特定的日期和时间对象   Date. ...

  3. Jquery-获取iframe中的dom对象

    父窗口中操作iframe: $(window.frames["iframeChild"].document) //假如iframe的id为iframeChild 在子窗口中操作父窗 ...

  4. MVVM: 通过 Binding 或 x:Bind 结合 Command 实现,通过 ButtonBase 触发命令

    介绍背水一战 Windows 10 之 MVVM(Model-View-ViewModel) 通过 Binding 或 x:Bind 结合 Command 实现,通过 ButtonBase 触发命令 ...

  5. yii基础应用目录结构

    basic/ 应用根目录 composer.json Composer 配置文件, 描述包信息 config/ 包含应用配置及其它配置 console.php 控制台应用配置信息 web.php We ...

  6. CocoaPods安装使用及上传

    1.升级Ruby环境 sudo gem update --system 如果Ruby没有安装,请参考 如何在Mac OS X上安装 Ruby运行环境 2.安装CocoaPods时我们要访问cocoap ...

  7. 给自定义cell设置分隔线的不同做法

    1.给cell添加一个UIView,设置UIView的高度为1,并设置这个UIView的左.下.右约束. 2.不需要给cell添加任何控件,重写cell的- (void)setFrame:(CGRec ...

  8. bzoj4402: Claris的剑

    首先,对于本质相同的构造,我们只计算字典序最小的序列 假设序列中最大的元素为top 我们很容易发现这样的序列一定是1,2,..,1,2,3,2,3,...,2,3,4,3,4.........,top ...

  9. js checkbox获取选中的值

    //将选择标签 var addCode = function () { var codes = []; var elements = document.getElementsByName(" ...

  10. 【BZOJ-1010】玩具装箱toy DP + 斜率优化

    1010: [HNOI2008]玩具装箱toy Time Limit: 1 Sec  Memory Limit: 162 MBSubmit: 8432  Solved: 3338[Submit][St ...