`

关键字transient

阅读更多

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关键字Transient与串行化

    ### Java关键字Transient与串行化 #### Transient关键字解析 在Java编程语言中,`transient`是一个非常重要的关键字,主要用于对象的串行化过程中。它用于标记对象中的某些字段,使得这些字段不会被串行化到持久...

    java关键字transient

    在Java编程语言中,`transient`是一个非常重要的关键字,它与对象持久化和序列化密切相关。当一个字段被声明为`transient`时,它表明该字段的值不会随着对象的序列化而保存。这通常用于那些不希望或者不需要在序列化...

    Java关键字transient

    在Java编程语言中,`transient`是一个非常重要的关键字,它与对象的序列化息息相关。序列化是将一个对象的状态转换为字节流的过程,这样就可以存储或在网络中传输。当我们标记一个字段为`transient`时,意味着该字段...

    Java_transient关键字

    ### Java中的transient关键字详解 在Java编程语言中,`transient`关键字是一个非常重要的概念,主要用于对象序列化过程中对特定变量的控制。当一个类实现了`Serializable`接口时,其对象可以被序列化为一个持久化的...

    深入理解Java虚拟机-Java内存区域透彻分析(序列化、反序列化概念及其使用场景+实现序列化的方式+transient关键字)

    深入理解Java虚拟机-Java内存区域透彻分析(序列化、反序列化概念及其使用场景+实现序列化的方式+transient关键字) Java序列化和反序列化是Java虚拟机中的一种重要机制,它们可以将Java对象转换为二进制数据,然后...

    Java中的transient关键字.doc

    Java 中的 transient 关键字 在 Java 编程中,transient 关键字是一个非常重要的概念,它用来说明一个属性是临时的,不会被序列化。在 Java 中,序列化是指将对象的状态信息转换为字节流的过程,以便于对象在网络上...

    java提高篇(二一)-----ArrayList.pdf

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

    Java transient关键字使用小记

    在Java编程语言中,`transient`关键字是一个非常重要的概念,它与对象的序列化过程紧密相关。序列化是将一个对象的状态转换为字节流,以便存储或在网络中传输。当一个类实现了`Serializable`接口,该类的对象就可以...

    Java之transient关键字.Java

    在Java编程语言中,`transient`关键字是一个非常重要的特性,它用于标记对象的某个成员变量不应该被序列化。当你创建一个可序列化的类(通过实现`Serializable`接口)时,如果你不想某些字段在序列化过程中被保存或...

    java面试题大全

    1. **关键字 transient 和 volatile**: - `transient` 是Java的关键字,用于标记字段,表明该字段的值不会在序列化过程中被持久化。这意味着当对象被序列化后,被`transient`修饰的变量将不会包含在序列化的表示中...

    transient Java语言的关键字

    transient是Java语言的关键字,用来表示一个域不是该对象串行化的一部分。当一个对象被串行化的时候,

    Java transient关键字原理解析

    Java transient关键字原理解析 Java 中的 transient 关键字是一个重要的概念,它被用来表示变量将不被序列化处理。那么在理解 transient 关键字之前,我们先了解下什么是序列化。 序列化是对象进行持久化处理,也...

    Java关键字—-transient

    本篇文章序列化、反序列化用的类是同一个类,可以通过注释main中1然后修改Stu类实现有无transient关键字修饰、serialVersionUID是否不同,得到以下结果: 1、serialVersionUID的数值大小不会影响序列化后的字节数...

    J2SE中的序默认序列化

    不需要保存的数据我们可以用关键字transient标出。 以下是一个例子: import java.io.*; public class Serial implements Serializable { int company_id; String company_addr; transient boolean company_flag; } ...

    StackAllocForClass:用于带有CoreCLR和Roslyn的类的新stackalloc运算符的原型的示例存储库

    项目的一个来自分支stackalloc_for_class 项目的一个来自分支stackalloc_for_class 一期工程StackAllocForClass使用new关键字transient和stackalloc如何建造? 克隆此存储库时,请确保正确初始化了所有子模块。构建...

    transientDemo.zip

    Java中的`transient`关键字是Java编程语言中的一个重要特性,用于修饰类的成员变量。它在内存管理和序列化过程中起到关键作用。理解`transient`的含义和使用场景对于Java开发者来说至关重要。 `transient`关键字的...

    说一说java关键字final和transient

    在Java编程语言中,`final` 和 `transient` 是两个非常重要的关键字,它们分别用于不同的场景。让我们深入了解这两个关键字的含义、用法以及在实际编程中的应用。 首先,我们来谈谈`final`关键字。`final` 可以用于...

    Java transient 关键字详解及实例代码

    Java中的`transient`关键字是用于标记类的成员变量,表明该变量不应该参与序列化过程。当一个类实现了`Serializable`接口,其对象可以被序列化,即将对象的状态转换为字节流,以便存储或在网络中传输。序列化是Java...

Global site tag (gtag.js) - Google Analytics