129-transient关键字 瞬态关键字

2023-12-13 16:38
文章标签 关键字 瞬态 transient 129

本文主要是介绍129-transient关键字 瞬态关键字,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

static静态关键字:静态关键字优先于非静态加载到内存中(静态优先于对象进入到内存中)
被static修饰的成员变量不能被序列化因为序列化的都是对象private  static int age;oos.writeObject(new Person("TT",18));System.out.println(o); //Person{name='null', age=0}为什么输出0 静态的是不能被序列化的transient关键字:瞬态关键字被transient修饰的成员变量不能被序列化(不能以对象流被ObjectInputStream和ObjectInputStream的形式读取和写入) 跟上面static作用是一样的

Person类

public class Person implements Serializable {  //序列化和反序列化的类要实现标记型接口private  static String name;  注意这里加了静态关键字staticprivate  transient int age;  注意这里加了瞬态关键字transient

先序列化:写入对象 output

public class Demo01ObjectOutputStream {public static void main(String[] args) throws IOException {// 1、创建ObjectOutputStream对象,构造方法中传递字节输出流ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream("D:\\百度网盘下载\\a.txt"));// 2、使用ObjectOutputStream对象中的方法writeObject,把对象写入到文件中oos.writeObject(new Person("TT",18)); //二进制存储无法直接看//  3、释放资源oos.close();}
}

反序列化 读取对象 input

public class Demo02ObjectInputStream {public static void main(String[] args) throws IOException, ClassNotFoundException {//1、创建ObjectInputStream对象,构造方法中传递字节输入流ObjectInputStream ois= new ObjectInputStream(new FileInputStream("D:\\百度网盘下载\\a.txt"));//2、使用ObjectInputStream对象中的方法readObject读取保存对象的文件Object o = ois.readObject();//  3、释放资源ois.close();// 4、使用读取出来的对象(打印)System.out.println(o);//Person{name='TT', age=18}Person p = (Person)o;  //强制转换为Person类System.out.println(p.getName()+p.getAge());//TT18}
}

输出:

Person{name='null', age=0}
null0
 

这篇关于129-transient关键字 瞬态关键字的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/489156

相关文章

Java中的抽象类与abstract 关键字使用详解

《Java中的抽象类与abstract关键字使用详解》:本文主要介绍Java中的抽象类与abstract关键字使用详解,本文通过实例代码给大家介绍的非常详细,感兴趣的朋友跟随小编一起看看吧... 目录一、抽象类的概念二、使用 abstract2.1 修饰类 => 抽象类2.2 修饰方法 => 抽象方法,没有

Python批量替换多个Word文档的多个关键字的方法

《Python批量替换多个Word文档的多个关键字的方法》有时,我们手头上有多个Excel或者Word文件,但是领导突然要求对某几个术语进行批量的修改,你是不是有要崩溃的感觉,所以本文给大家介绍了Py... 目录工具准备先梳理一下思路神奇代码来啦!代码详解激动人心的测试结语嘿,各位小伙伴们,大家好!有没有想

Java中的volatile关键字多方面解析

《Java中的volatile关键字多方面解析》volatile用于保证多线程变量可见性与禁止重排序,适用于状态标志、单例模式等场景,但不保证原子性,相较synchronized更轻量,但需谨慎使用以... 目录1. volatile的作用1.1 保证可见性1.2 禁止指令重排序2. volatile的使用

C#中lock关键字的使用小结

《C#中lock关键字的使用小结》在C#中,lock关键字用于确保当一个线程位于给定实例的代码块中时,其他线程无法访问同一实例的该代码块,下面就来介绍一下lock关键字的使用... 目录使用方式工作原理注意事项示例代码为什么不能lock值类型在C#中,lock关键字用于确保当一个线程位于给定实例的代码块中时

Java 关键字transient与注解@Transient的区别用途解析

《Java关键字transient与注解@Transient的区别用途解析》在Java中,transient是一个关键字,用于声明一个字段不会被序列化,这篇文章给大家介绍了Java关键字transi... 在Java中,transient 是一个关键字,用于声明一个字段不会被序列化。当一个对象被序列化时,被

C#中async await异步关键字用法和异步的底层原理全解析

《C#中asyncawait异步关键字用法和异步的底层原理全解析》:本文主要介绍C#中asyncawait异步关键字用法和异步的底层原理全解析,本文给大家介绍的非常详细,对大家的学习或工作具有一... 目录C#异步编程一、异步编程基础二、异步方法的工作原理三、代码示例四、编译后的底层实现五、总结C#异步编程

Java并发编程必备之Synchronized关键字深入解析

《Java并发编程必备之Synchronized关键字深入解析》本文我们深入探索了Java中的Synchronized关键字,包括其互斥性和可重入性的特性,文章详细介绍了Synchronized的三种... 目录一、前言二、Synchronized关键字2.1 Synchronized的特性1. 互斥2.

定价129元!支持双频 Wi-Fi 5的华为AX1路由器发布

《定价129元!支持双频Wi-Fi5的华为AX1路由器发布》华为上周推出了其最新的入门级Wi-Fi5路由器——华为路由AX1,建议零售价129元,这款路由器配置如何?详细请看下文介... 华为 Wi-Fi 5 路由 AX1 已正式开售,新品支持双频 1200 兆、配有四个千兆网口、提供可视化智能诊断功能,建

C#使用yield关键字实现提升迭代性能与效率

《C#使用yield关键字实现提升迭代性能与效率》yield关键字在C#中简化了数据迭代的方式,实现了按需生成数据,自动维护迭代状态,本文主要来聊聊如何使用yield关键字实现提升迭代性能与效率,感兴... 目录前言传统迭代和yield迭代方式对比yield延迟加载按需获取数据yield break显式示迭

c# checked和unchecked关键字的使用

《c#checked和unchecked关键字的使用》C#中的checked关键字用于启用整数运算的溢出检查,可以捕获并抛出System.OverflowException异常,而unchecked... 目录在 C# 中,checked 关键字用于启用整数运算的溢出检查。默认情况下,C# 的整数运算不会自