1、java的serialization提供了一个非常棒的存储对象状态的机制,说白了serialization就是把对象的状态存储到硬盘上去,等需要的时候就可以再把它读出来使用。但是在存储对象状态时,我们有时候会需要特定的对象数据在serialization时不进行存储。这时候 transient关键字就派上用场了。要关掉类的特定的数据域,可以使用transient关键字进行定义,这对于底层的java虚拟机来说,这个transient类型的变量不是一个类的永久性的状态。
2、比如说在一个实体Bean中,transient和 static字段是非持久性字段,不能保存在数据库中。
另外,如果你的对象需要序列化到数据库、JDNI或通过Object流传递给其他对象的话,对象中的非持久性字段应该加transient关键字。
3、你如果写了一个程序并需要序列化到本地或者数据库中(不只是你一个人需要用),并且因为测试的缘故,你认为加上了自己的一些信息,例如用户名,密码(例如数据库的身份),这样方便测试.但是,这些信息是肯定不应该被别人知道或者了解的,同时呢,又不想每次自己都去写都去改,这样,你可以用 transient定义这样的变量存储它们.
4、下面是java规范中对transient关键字的解释:
The transient marker is not fully specified by the Java Language Specification but is used in object serialization to mark member variables that should not be serialized.
5、java有个特点就是序列化,简单地来说就是可以将这个类存储在物理空间(当然还是以文件的形式存在),那么当你从本地还原这个文件时,你可以将它转换为它本身。这可以极大地方便网络上的一些操作,但同时,因为涉及到安全问题,所以并不希望把类里面所有的东西都能存储(因为那样,别人可以通过序列化知道类里面的内容),那么我们就可以用上transient这个关键字,它的意思是临时的,即不会随类一起序列化到本地,所以当还原后,这个关键字定义的变量也就不再存在。
分享到:
相关推荐
深入理解Java虚拟机-Java内存区域透彻分析(序列化、反序列化概念及其使用场景+实现序列化的方式+transient关键字)
AQS是一个通过内置的 FIFO 双向队列来完成...private transient volatile Node head; /**等待队列的尾节点,也是懒加载的。(enq方法)。只在加入新的阻塞结点的情况下修改*/ private transient volatile Node tail;
这是我创建的一个 repo,以更好地理解一维和二维瞬态 PDE 的数值解。 试图使代码不言自明。 探索的数值方案将是 Upwind、FTCS、Lax-Friedrich's、Lax-Wendroff 和 Crank-Nicholson(用于 1-D 平流)。 还实施了一些...
本篇文章主要介绍了深入理解hibernate的三种状态 ,主要包括了transient(瞬时状态),persistent(持久化状态)以及detached(离线状态),有兴趣的同学可以了解一下
这是论文中提出的算法的MATLAB实现 Pei、Soo-Chang 和 Chien-Cheng Tseng。 “使用具有瞬态抑制的 IIR 陷波滤波器消除... 提交的内容包括示例 ECG 数据(作为 .mat 文件),以及一个演示脚本,以便于理解、使用和测试。
ArrayList 集合源码解读介绍构造方法add方法remove方法总结 介绍 ArrayList Jdk1.8采用的是数组的数据结构,是非线程安全的一个集合 (多线程下数据不安全),本文章主要讲解... transient Object[] elementData;
很容易理解,就是从未与 session 发生过关系的对象, ^_^ ,例如在代码中直接 User user=new User() ;这样形成的 user 对象,就称为 Transient 对象了。
瞬时对象(Transient Objects)持久化对象(Persist Objects)、离线对象(Detached Objects)、 Java对象在JVM中的生命周期 理解Session的缓存 在Hibernate应用中Java对象的状态 Session的保存、更新、删除、查询...
25. transient 这个关键字是干啥的 26. 什么是一致性hash算法 27. 构造方法链 28. 谈谈你对线程调度的理解 29. JDK动态代理和CGLIB动态代理 30. 反射机制以及反射的方式 31. 类加载有几种方式 32. Class.for...
通过有限元方法入门课程的学生可以轻松理解代码的内容。 实现了各种物理现象的示例,可以运行这些示例 稳态传热: HeatTransfer_Linaer.m 瞬态热传递-使用广义θ方法: HeatTransfer_Linear_Transient.m 波动方程-...
在“ Richards Equation Transient.ipynb”中,我非常混乱地添加了一个瞬态渗透边界条件。 我记录了自己创建这个脚本的过程,这可能有助于理解其中的思考过程。 参见此处:和。 该脚本可以整理并适应自定义问题。
一文让你彻底理解 Java HashMap 和 ConcurrentHashMap 2018-07-25 分类:JAVA开发、编程开发、首页精华0人评论 来源:crossoverjie.top 分享到:更多0 前言 Map 这样的 Key Value 在软件开发中是非常经典的结构,常...
但是,它确实引入了一些术语: provider , service , container , singleton和transient 。 但是不要被吓到! 每个术语代表一个易于理解的概念。 为这些概念起个名字将有助于促进更好的交流和命名约定。 提供者 ...
深入分析各种开关动作所产生的瞬态的特性及影响,包括容性和感性负载,对理解瞬态的特性和产生有很大帮助,包括开关断路器。
我还包含了一些代码示例,因为这通常是理解事物的最佳方式。 足够的解释让我们开始。 “嗨,谢谢你今天的到来。让我们先问几个技术问题……” 基本 “实例、类、抽象类和接口之间有什么区别?” “可以将哪些可见性...
【基础】transient关键字 15 【基础】访问修饰符区别 15 【基础】java基本数据类型(四类八种) 15 Java自动类型转换 16 数据类型自动提升(注意以下讨论的是二元操作符) 16 【基础】switch支持的类型 17 【基础】...
因此,对单片机的理解可以从 单片微型计算机、单片微控制器延伸到单片应用系统。 目前单片机渗透到我们生活的各个领域,几乎很难找到哪个领域没有单片机的踪迹。 导弹的导航装置,飞机上各种仪表的控制,计算机的...
你开始不相信AC仿真,取而代之的是大量的transient仿真。 六段 你开始明白在这个世界中只有最合适的设计,没有最好的设计。你开始有一套真正属于自己的设计方法,你会倾向于某一种或两种仿真工具,并能够熟练的使用...
比如你没法像hibernate那样直接传一个对象给它让他拆分成sql并保存起来,当然这也是可以理解的,毕竟它并没有要求你去写 hbm.xml 文件所以无法知道你哪些字段要映射,哪些不要等等。又比如JdbcTemplate 可以帮忙把一...