Java关键字——transient
当使用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的更多相关文章
- Java关键字transient和volatile小结(转)
Java关键字transient和volatile小结(转) transient和volatile两个关键字一个用于对象序列化,一个用于线程同步,都是Java中比较高阶的话题,简单总结一下. tran ...
- 【JSON 注解】JSON循环引用2----JSON注解@JsonIgnoreProperties+JAVA关键字transient+后台对象与JSON数据的格式互相转化
接着来说这个JSON循环引用的问题: 关于JSON格式的转化,其实关键就是这几个依赖: <!-- json --> <!-- 1号 --> <dependency> ...
- Java关键字:transient,strictfp和volatile简介
关键字:transient 使用对象:字段 介绍:transient说明一个属性是临时的,不会被序列化. 当对象进行序列化(Serializable)过程时候,有一些属性的状态是瞬时的,这样的对象是无 ...
- java 关键字 transient
一个对象实现了Serilizable 接口,该对象就可以被序列化. 然而在实际开发工程中,我们会遇到,这个类的有些属性不需要序列化,比如包含用户的敏感信息(如密码),为了安全起见,不希望在网络操作(主 ...
- java关键字-transient
java语言的关键字,变量修饰符,如果用transient声明一个实例变量,当对象存储时,它的值不需要维持. Java的serialization提供了一种持久化对象实例的机制.当持久化对象时,可能有 ...
- java 关键字transient
http://www.cnblogs.com/lanxuezaipiao/p/3369962.html 1. transient的作用及使用方法 我们都知道一个对象只要实现了Serilizable接口 ...
- 转载:关于java关键字transient
今天在map源码中看到这个关键字 百度看一下 转载记录下 源文:http://www.cnblogs.com/lanxuezaipiao/p/3369962.html 1. transient的作 ...
- JAVA关键字transient
转载自http://www.cnblogs.com/liuling/archive/2013/05/05/transient.html 1.transient关键字只能修饰变量,而不能修饰方法和类.注 ...
- java关键字transient与volatile小结
本文转自:http://heaven-arch.iteye.com/blog/1160693 transient和volatile两个关键字一个用于对象序列化,一个用于线程同步,都是Java中比较高阶 ...
随机推荐
- AOP 学习笔记
代理是一个设计模式,提供了对目标对象另外的访问方式:即通过代理访问目标对象. 好处:可以在目标对象实现的基础上,增强额外的功能操作. Cglib 代理,也叫作 子类代理. JDK的动态代理有一个限制, ...
- 【2016 ACM/ICPC Asia Regional Qingdao Online】
[ HDU 5878 ] I Count Two Three 考虑极端,1e9就是2的30次方,3的17次方,5的12次方,7的10次方. 而且,不超过1e9的乘积不过5000多个,于是预处理出来,然 ...
- 【POJ 3041】Asteroids (最小点覆盖)
每次选择清除一行或者一列上的小行星.最少选择几次. 将行和列抽象成点,第i行为节点i+n,第j列为节点j,每个行星则是一条边,连接了所在的行列. 于是问题转化成最小点覆盖.二分图的最小点覆盖==最大匹 ...
- 中间值为什么为l+(r-l)/2,而不是(l+r)/2
二分法的算法中,我们看到一些代码里取中间值: MID=l+(r-l)/2; 为什么是这个呢?不就是(l+r)/2吗?为什么要多此一举呢? 其实还是有不一样的,看看他们的区别吧: l,r是指针的时候只能 ...
- git 最基本的使用方法
1. git init ----初始化git仓库 2.git add . ----把代码添加到仓库 3.git commit -m '注释' ---commit:提交 -m:全部提交 ‘ ...
- Redis的事务
Redis对事务的支持是部分支持,不想oracle,要么都成功要么都失败,Redis可以部分成功部分失败 1 是什么: 可以一次执行多个命令,本质是一组命令的集合.一个事务中的所有命令都会序列化,按顺 ...
- 关于使用struts2时子窗体页面跳转后在父窗体打开的问题以及Session过期后的页面跳转问题
问题1:传统的系统界面,iframe了三个页面,上,左,右,用户点击注销的按钮在上面得top.jsp里面,方法:<a href="../adminAction/admin_logout ...
- 【BZOJ-4269】再见Xor 高斯消元 + 线性基
4269: 再见Xor Time Limit: 10 Sec Memory Limit: 512 MBSubmit: 131 Solved: 81[Submit][Status][Discuss] ...
- 【BZOJ-1031】字符加密Cipher 后缀数组
1031: [JSOI2007]字符加密Cipher Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 5504 Solved: 2277[Submit ...
- Linq Like
Like的操作,有点像in,但是,方向变了.什么意思呢.就是你给定一个字符串,去寻找数据中某个字段包含这个字符串.就是给定的字符串是某字段的子集.Sql Script是这么写的. Selec * fr ...