当前位置:  技术问答>java相关

高手答疑:transient关键字在何时使用?

    来源: 互联网  发布时间:2015-06-27

    本文导语:  transient关键字到底在何时使用,我已经知道了transient关键字的作用与意义 即在进行序列化时不必传送.各位高手,到底在何时使用transient关键字呢?请用你的经验说明问题. | 就horseliu()的回答再详...

transient关键字到底在何时使用,我已经知道了transient关键字的作用与意义
即在进行序列化时不必传送.各位高手,到底在何时使用transient关键字呢?请用你的经验说明问题.

|
就horseliu()的回答再详细举个例子吧!
你如果写了一个程序并需要序列化到本地或者数据库中(不只是你一个人需要用),并且因为测试的缘故,你认为加上了自己的一些信息,例如用户名,密码(例如数据库的身份),这样方便测试.但是,这些信息是肯定不应该被别人知道或者了解的,同时呢,又不想每次自己都去写都去改,这样,你可以用transient定义这样的变量存储它们.
   这个例子很浅显,至于更详细的用法就只有你自己去研究了.有什么不懂的问题可以问我!

|
我是这么认为的。
你用过writeObjectToFile 吗,这就是将一个 Object 完全保留下来。
在Corba中的远程调用的时候,如果是一个Thread,他只能是在特定的环境下才能记录下来的,是不能序列化的。如
class A {
   Thread B=new Thread("test");
   int i=0;
}

你想把A这个对象动态生成后再传到客户端,那Thread B 的环境就没有了,因为你无法知道目前B处于那个状态。
我觉得transient关键字是用在分布式的对象的传递中的。
分布式也包括系统的不一样。如jni.
目前,我个人认为是用于那些又要得到整个对象,但是却得不到其中的一些动态的数据的时候。防止出现脏数据,不同步的数据。
欢迎大家指正。

|
比如说在一个实体Bean中,transient和 static字段是非持久性字段,不能保存在数据库中。
另外,如果你的对象需要序列化到数据库、JDNI或通过Object流传递给其他对象的话,对象中的非持久性字段应该加transient关键字。

|
to hicharlie(黑查理):
  下面是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. 


|
我觉得一个非持久就应该表达出这个意思,如果一个Object的某个属性依赖与其他属性,那么他应该是可再现的,就不需要持久化,也就是说一个属性值如果丢失后无法再次获得就应该序列化。同时这也可以理解为一种对空间的节约

|
经验没有,
不过个人认为《Thinking in java》上写得很清楚了!

    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 用 synchronized 关键字怎么没效果?请高手指点这一段小小小小的程序
  • 高手,高手,高高手请进!
  • 有熟悉EXIM的高手高手么??
  • to 高手:学java应该怎样一步步学习,从菜鸟到高手.
  • 高分请高手,高手定能解决
  • 请问高手在linux中用什么命令可以做linux的启动盘???在等待高手??
  • 有高手研究Agent++麽?里面有个thread.h,蛮难读的,请高手指点
  • 难道高手区里的人就是高手?
  • 在dos下用bc31挑战高手******开发mssql程序,连接时报link err:undefined symbol GETNOTE in module DBEXTERN?(挑战高手)
  • 真正的linux高手,请看过来,看你符合高手标准不?
  • 难道这没有高手吗?难道这没有乐于助人的高手?(高分酬谢62+50+50)
  • 关于我对linux高手用yum,非高手用源码的理由
  • 高手救命,很急——ORACLE817安装在UNIXWARE711上,手工启动数据库后在netasst中连接错误,高手帮我看看?
  • 请教高手lvs的奇怪问题,我挺着急,希望高手别潜水,就就我,先谢谢了
  • 各个高手看看这个问题!本人第一次学习java所以要各位高手的帮助。。
  • :请教高手,小弟打印width=1500,height=600(A3纸)的Applet,在预览中是该区域是黑的,打印出来也是黑的,请教高手解决一下
  • 请教高手,小弟打印width=1500,height=600(A3纸)的Applet,在预览中是该区域是黑的,打印出来也是黑的,请教高手解决一下
  • 我是新手,高手,高手,快来救我
  • EJB问题,请教高手(非高手莫进)
  • 请各位JAVA高手,网业高手看过来,我把能给的分都送出!!!只能给37分,哎!!
  • eWEEK沙龙征集高手座谈


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    难道高手区里的人就是高手? iis7站长之家