本文目录
- java中的关键字transient是什么意思
- transient在java中的作用
- 系统动力学频域里面transient是什么意思
- 注解transient是什么意思
- transient和transitory的区别
- transient是什么意思
- average transient是什么意思
java中的关键字transient是什么意思
使用transient修饰符来标识一个成员变量在序列化子系统中应被忽略。transient:使用对象:字段介绍:字段不是对象持久状态的一部分,不应该把字段和对象一起串起。在JPA实体中,所有未使用Transient注释(由JPA定义)进行注释的非瞬态字段都是持久化字段。“持久化”意味着字段被映射到数据库中的列。请注意,Patient类中的一些持久化字段没有注释。这是由于JPA定义的默认值(如默认的列名称)对于这些字段来说是正确的。如果字段名称与其映射的数据库列名称不同,则必须使用Column注释来为数据库列指定一个不同的列名称。
transient在java中的作用
java有个特点就是序列化,简单地来说就是可以将这个类存储在物理空间(当然还是以文件的形式存在),那么当你从本地还原这个文件时,你可以将它转换为它本身。这可以极大地方便网络上的一些操作,但同时,因为涉及到安全问题,所以并不希望把类里面所有的东西都能存储(因为那样,别人可以通过序列化知道类里面的内容),那么我们就可以用上transient这个关键字,它的意思是临时的,即不会随类一起序列化到本地,所以当还原后,这个关键字定义的变量也就不再存在。
通常,我们写的程序都要求特定信息能持久存在或保存到磁盘上,以供一个程序使用或用在同一个程序的另一次运行上.这种持久性可以通过几种方式来实现,包括写到数据库中或是利用JAVA为对象序列化提供的支持.不管我们选用什么方法,类实例的持久性都是通过保存类的域的状态来完成的,保存这些状态,以便以后可以对它们进行访问或使用它们来创建相同的实例.然而,有可能并不是所有的域都需要被保存起来.当一个实例被持久化时,其内部的一些域却不需要持久化,则可以用trainsient修饰符告诉编译器指定的域不需要被持久保存.
首先,让我们看一些Java serialization的代码:
public class LoggingInfo implements java.io.Serializable { private Date loggingDate = new Date(); private String uid; private transient String pwd; LoggingInfo(String user, String password){ uid = user; pwd = password; } public String toString(){ String password=null; if(pwd == null){ password = "NOT SET"; }else{ password = pwd;} return "logon info: \n " + "user: " + uid + "\n logging date : " + loggingDate.toString() + "\n password: " + password; } }
现在我们创建一个这个类的实例,并且串行化(serialize)它 ,然后将这个串行化对象写入磁盘。
LoggingInfo logInfo = new LoggingInfo("MIKE", "MECHANICS"); System.out.println(logInfo.toString()); try{ ObjectOutputStream o = new ObjectOutputStream( new FileOutputStream("logInfo.out")); o.writeObject(logInfo); o.close(); }catch(Exception e) {//deal with exception} To read the object back, we can write try { ObjectInputStream in =new ObjectInputStream( new FileInputStream("logInfo.out")); LoggingInfo logInfo = (LoggingInfo)in.readObject(); System.out.println(logInfo.toString()); } catch(Exception e) {//deal with exception}
如果我们运行这段代码,我们会注意到从磁盘中读回(read——back (de-serializing))的对象打印password为"NOT SET"。这是当我们定义pwd域为transient时,所期望的正确结果。 现在,让我们来看一下粗心对待transient域可能引起的潜在问题。假设我们修改了类定义,提供给transient域一个默认值, 代码如下:
public class GuestLoggingInfo implements java.io.Serializable { private Date loggingDate = new Date(); private String uid; private transient String pwd; GuestLoggingInfo(){ uid = "guest"; pwd = "guest"; } public String toString() { //same as above } }
现在,如果我们穿行化GuestLoggingInfo的一个实例,将它写入磁盘,并且再将它从磁盘中读出,我们仍然看到读回的对象打印password 为 "NOT SET"。 当从磁盘中读出某个类的实例时,实际上并不会执行这个类的构造函数, 而是载入了一个该类对象的持久化状态,并将这个状态赋值给该类的另一个对象。
系统动力学频域里面transient是什么意思
希望回答能帮助到你:Transient可翻译为瞬态、瞬变可参考下句:A transient phenomenon or property, especially a transient electric current.瞬变现象一种瞬间变化的现象或性质,尤指瞬态电流
注解transient是什么意思
java语言的关键字,变量修饰符,如果用transient声明一个实例变量,当对象存储时,它的值不需要维持。 Java的serialization提供了一种持久化对象实例的机制。当持久化对象时,可能有一个特殊的对象数据成员,我们不想用serialization机制来保存它。为了在一个特定对象的一个域上关闭serialization,可以在这个域前加上关键字transient。当一个对象被串行化的时候,transient型变量的值不包括在串行化的表示中,然而非transient型的变量是被包括进去的。
transient和transitory的区别
单词的释义
transient 英adj. 短暂的;转瞬即逝的;临时的n. 临时旅客;瞬变现象;候鸟
transitory 英adj. 不持续的;短暂的,转瞬即逝的;朝露
区别
两者都表示暂时的,短暂的,从意义上区别不大,但是前者侧重于短暂的,后者更侧重于不持续的
前者还有名词的含义,表示临时旅客,候鸟的意思,后者只做形容词
Their turmoil may be transient.他们的混乱也许是短暂的。
Many of the drags on first-quarter output are transitory.第一季度生产的很多减缓是暂时的。
transient是什么意思
transient英 adj. 短暂的;路过的n. 瞬变现象;过往旅客;候鸟It is transient in the sense that it exists only during the running of the process. 它仅在流程运行的过程中存在,从这个角度来讲,它是瞬态 的。
average transient是什么意思
average :平均的,平均transient :短暂的。直译:平均瞬态,短暂的平均但是感觉好像不大合适。可能需要因文而议吧。