03.Java 关键字
来源:互联网 发布:php视频网站 编辑:程序博客网 时间:2024/06/08 07:35
基本概念
在介绍 transient 关键字之前,要了解序列化的概念。
该关键字具有以下特点:
- 只能修饰成员变量,而不能修饰方法入参、方法、类。
- 被其修饰的变量,表示该类变量是瞬态的,常规情况下无法被序列化。
若类实现了 Externalizable 接口或自定义序列化过程,被修饰的变量也能被序列化。
实例探究
下面来看具体的例子:
- 定义一个 Person 类,并实现了 Serializable 接口
class Person implements Serializable { // 关键 private transient int age; private String name; public Person(String name ,int age){ this.name = name; this.age =age; } public String getName() { return name; } public int getAge() { return age; } @Override public String toString() { return "name is " + name + " , age is " + age; }}
- 进行序列化操作
public class Test { private final static String TEMPFILE = "E:" + File.separator + "test.txt"; public static void main(String[] args) { Person person = new Person("test",100); write(person); // 关键 -> 序列化之后重新对对象进行赋值 person = new Person("hello",999); read(person); // 输出结果: // name is test , age is 100,序列化成功 // 反序列化成功,name is test , age is 0 } // 通过 ObjectOutputStream 进行对象的序列化操作 private static void write(Person person) { try { ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream(TEMPFILE)); oos.writeObject(person); oos.close(); System.out.println(person+",序列化成功"); } catch (Exception e) { e.printStackTrace(); } } // 通过 ObjectInputStream 进行对象的反序列化操作 private static void read(Person person) { try { ObjectInputStream ois = new ObjectInputStream(new FileInputStream(TEMPFILE)); person = (Person) ois.readObject(); ois.close(); System.out.println("反序列化成功.,"+person); } catch (Exception e) { e.printStackTrace(); } }}
观察输出结果,发现序列化之前 age 的是 100,而通过反序列化读取的 age 为 0。
int 类型的参数初始值为 0,这也正说明了该参数没有被序列化。
0 0
- 03.Java 关键字
- Java关键字
- Java关键字
- Java关键字
- Java关键字
- JAVA关键字
- java关键字
- Java关键字
- java 关键字
- Java关键字
- Java关键字
- java关键字
- Java关键字
- JAVA关键字
- JAVA关键字
- Java 关键字
- java关键字
- Java 关键字
- Linux下用GDB调试多线程程序
- gemotion安装apk出现的INSTALL_FAILED_NO_MATCHING_ABIS错误解决方法
- mac 彻底卸载 node
- 一个三年以上老项目加入React Native 模块的过程
- 腾讯云服务器部署JavaWeb项目
- 03.Java 关键字
- 20170303找女朋友之路思考总结
- POJ 3723 Conscription【招募士兵】
- 从零移植uboot 2017 到nuc970(第一天)
- 九度OJ-1002:Grading
- 使用Java的BlockingQueue实现生产者-消费者
- 广度优先遍历
- 【POJ 2728】[01分数规划]Desert King
- springmvc和mybatis整合 之 一、需求分析