Java:全局变量是否可以节省内存和或时间?

Java:全局变量是否可以节省内存和或时间?,第1张

概述我正在开发一个Android应用程序,我写的方法可能会被调用很多次.在这个方法中,我正在更新用户界面.内存使用和性能对我来说很重要.我看到它的方式,我有2个选项来进行UI更改.首先是每次都要制作新物品.这就是说:public void myMethod(){ new View().makeVisible(); } 第二种是将对象声明为全局变量并在方法中引用它

我正在开发一个Android应用程序,我写的方法可能会被调用很多次.在这个方法中,我正在更新用户界面.内存使用和性能对我来说很重要.我看到它的方式,我有2个选项来进行UI更改.

首先是每次都要制作新物品.这就是说:

public voID myMethod(){new VIEw().makeVisible();}

第二种是将对象声明为全局变量并在方法中引用它.这可能看起来像:

VIEw myVIEw = new VIEw();public voID myMethod(){myVIEw.makeVisible();}

显然,如果这种方法只调用了几次,那么任何差异都会很小.但是,如果我可能多次调用这个,并且有很多变量被调用/或以这种方式创建,那么第二种方式是否会提高性能?最佳答案正如其他答案所指出的那样,重复使用相同的对象而不是为每个方法调用重复实例化一个新对象将减少内存占用并提高垃圾收集的性能.

但我实际上会首先考虑可维护性.是否重用相同的对象会使您的代码更复杂(并可能引入错误)?在编程时记住效率是件好事,但要避免过早优化,这会使项目复杂化并减缓开发速度.

如果性能和内存使用是一个问题,那么是的,重用相同的视图将使您受益:

final VIEw myVIEw = new VIEw(); //made final because it shouldn't be reassigned

如果你真的想要获得资源,你甚至可以懒惰地加载对象 – 也就是说,只在需要时立即创建它.但是我建议使用Guava的Suppliers.memoize(Supplier)来处理这个问题而不是手工编码这种行为:

final supplier

对于这种特殊情况,这可能是极端的. 总结

以上是内存溢出为你收集整理的Java:全局变量是否可以节省内存和/或时间?全部内容,希望文章能够帮你解决Java:全局变量是否可以节省内存和/或时间?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1140005.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-31
下一篇 2022-05-31

发表评论

登录后才能评论

评论列表(0条)