`
andy54321
  • 浏览: 434551 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Transient 关键字用法

    博客分类:
  • J2EE
阅读更多

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关键字用法,以实例形式分析了java中transient关键字的功能及使用技巧,具有一定参考借鉴价值,需要的朋友可以参考下

    Java transient关键字使用小记

    哎,虽然自己熟的是Java,但很多Java基础知识都不知道,比如transient关键字以前都没用到过,所以不知道它的作用是什么,做笔试题时发现有一题是关于这个的,于是花个时间整理下transient关键字的使用,涨下姿势~~~...

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

    本文章向大家介绍Java transient关键字的使用方法和实例,包括的知识点有transient的作用、transient使用小结、transient使用细节,需要的朋友可以参考一下

    深入探索Java对象的序列化

    深入探索Java对象的序列化 对象序列化就是把对象写入到输出流中,用来存储或者传输。...实现了序列化接口的类,如果其成员不需要序列化进去,则使用transient关键字进行修饰。 下面给出个例子:

    java8stream源码-java8-cert:一些用于练习Java8OCP的代码

    transient关键字(=“不应序列化字段”) 可变参数 字符串生成器 instanceof确切行为(在接口上使用null和用法) 包和导入(静态导入,重要的java.*包) 更多关键词: synchronized 、 transient 、 native 回顾:...

    AutoParcel:这个小库允许轻松创建可分割的类

    自动包裹 ...您可以通过添加 'transient' 关键字手动跳过类的变量。 已知的问题 它不适用于内部类。 您的贡献 它适合我的使用,但如果您发现错误,请随时与我联系。 我会尝试花一些时间来修复它。 谢谢

    最全java考试简答题

    final`: `final` 也是 Java 中的一个关键字,它表示一个变量或方法一旦被赋值或定义后,就不 可再次修改。在编程中,`final` 通常用于声明常量,以确保在程序运行期间不会被修改,从 而提高代码的可读性和可维护性。...

    Java 基础面试题

    25. transient 这个关键字是干啥的 26. 什么是一致性hash算法 27. 构造方法链 28. 谈谈你对线程调度的理解 29. JDK动态代理和CGLIB动态代理 30. 反射机制以及反射的方式 31. 类加载有几种方式 32. Class.for...

    整理后java开发全套达内学习笔记(含练习)

    transient (关键字) 瞬变;临时的['trænziәnt]'(可序列化) valid 正确的,有效的 ['vælid] variable n.变量 a.可变的['vєәriәbl] volatile (关键字) 不稳定的['vɒlәtail] while (关键字) 循环语句。 当......

    Java面向对象程序设计(“方法”相关文档)共57张.pptx

    类首声明: [<修饰符>] class <类名> [extends <超类名>] [implements <接口名>] class: 类定义的关键字; extends: 表示类和另外一些类(超类)的继承关系; implements: 表示类实现了某些接口; 修饰符: 表示类...

    java面试题,180多页,绝对良心制作,欢迎点评,涵盖各种知识点,排版优美,阅读舒心

    【基础】transient关键字 15 【基础】访问修饰符区别 15 【基础】java基本数据类型(四类八种) 15 Java自动类型转换 16 数据类型自动提升(注意以下讨论的是二元操作符) 16 【基础】switch支持的类型 17 【基础】...

    Java开发实战1200例(第1卷).(清华出版.李钟尉.陈丹丹).part3

    实例114 transient关键字的应用 143 5.7 接口和内部类 145 实例115 使用sort()方法排序 145 实例116 简化compareTo()方法的重写 146 实例117 策略模式的简单应用 148 实例118 适配器模式的简单应用 149 实例119 普通...

    java经典面试2010集锦100题(不看你后悔)

    C) 抽象类与接口的用法几乎都相同,具体用哪一个方法,只是在于程序设计人员的编程习惯而已。 D) 在Java中,最多使用的是抽象类,因为应用抽象类也可以实现多继承。而接口已经被限制使用。 题目21:d 程序如下: ...

    【05-面向对象(下)】

    •抽象方法和类都必须使用abstract来修饰,有抽象方法的类只能定义成抽象类,抽象里也可以没有抽象方法。 • 抽象类不能被实例化,可以通过其子类给他赋值,普通类里有的抽象里也有,定义抽象方法只需在普通方法...

    java8集合源码-Java:Java

    java8集合源码核心-Java java中堆和栈的区别? Java 8 发布的重要特性是什么? 什么是 JVM,它是否独立于平台? ...Object的实现方法有哪些?...为什么我们使用 ...Java中的transient和volatile变量有什么区别?...关键字完

Global site tag (gtag.js) - Google Analytics