Java瞬态运行时改进?
在我的项目中,没有保存或加载。每次登录都会创建一个新对象 因此,从技术上讲,每一个领域的行为都好像是暂时的。但如果我把它们也都命名为瞬变的,即Java瞬态运行时改进?,java,oop,memory,memory-management,field,Java,Oop,Memory,Memory Management,Field,在我的项目中,没有保存或加载。每次登录都会创建一个新对象 因此,从技术上讲,每一个领域的行为都好像是暂时的。但如果我把它们也都命名为瞬变的,即 private final Car car = new Car(); (即使每次登录时都会创建包含此字段的对象) 改为 private transient final Car car = new Car(); 在内存使用或速度方面,这会对我的项目产生任何积极的影响吗?将变量声明为瞬态不会对内存占用造成影响。瞬态意味着在序列化对象时,字段将不是持久状态
private final Car car = new Car();
(即使每次登录时都会创建包含此字段的对象)
改为
private transient final Car car = new Car();
在内存使用或速度方面,这会对我的项目产生任何积极的影响吗?将变量声明为瞬态不会对内存占用造成影响。瞬态意味着在序列化对象时,字段将不是持久状态的一部分,在反序列化过程中,这些变量将初始化为其默认值
具有临时修饰符的成员将不符合序列化条件。
添加transient修饰符不会对程序的性能产生任何影响。transient只意味着它不会被内置java序列化机制序列化
transient
,这只是表明该字段不应该被ObjectOutputStream
序列化。据我所知,它对性能或内存使用没有其他影响。如果您的对象不可序列化
和/或不使用对象输出流,则设置瞬态
将不会产生任何效果。我认为您不应该像这样考虑瞬态
。如果要持久化包含car
字段的对象实例,应该考虑需要发生什么。目前没有保存或加载,这并不重要。默认情况下,我会省略transient
关键字。还有一个警告:不要过早地优化。许多优化会影响可读性/复杂性,因此会损害代码的可维护性。