首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何设计高效的功能

如何设计高效的功能
EN

Stack Overflow用户
提问于 2010-10-12 15:21:17
回答 5查看 265关注 0票数 6

我正在设计一个函数(Java方法),它将在移动设备上每秒执行40-80次。

我想避免产生大量的死变量,这些变量由GC收集,因为函数运行(可能在应用程序的整个生命周期中)。

例如,在C语言中,我可能使用volatile来防止每次执行函数时对我的变量进行内存分配.我想在Java中做一些类似的事情,但不知道怎么做。

函数将数据存储在

  • 1字符串
  • 4整数
  • 2一维字符串数组

通常,在Java中,使用上述变量的首选方法是什么,而不是每次执行函数时都重新分配它们(每秒40+次数)?

成员变量可以“工作”,但这是最好的解决方案吗?

谢谢!布拉德

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2010-10-12 15:28:58

  • 包装类中的那些字段{Java喜欢看到对象}并将其分配一次并使用它。
票数 3
EN

Stack Overflow用户

发布于 2010-10-12 15:37:17

静态成员vars,它们在类卸载之前不会被卸载。请记住,如果对类的所有引用都丢失了,则可能会对类进行GC‘’ed。我怀疑这将是一个问题,但这是值得注意的。此外,如果要创建包含静态成员vars的类的新实例,则从分配姿态来看,您将处于同一条船上。

票数 1
EN

Stack Overflow用户

发布于 2010-10-12 15:33:58

我完全同意这个答案。

每次对函数的调用都会分配更多的内存,如果您动态地创建变量,因为Java的GC没有完全清除,直到类被释放时调用了memory。

但是,如果要多次调用该函数,那么只需使它们成为类的成员变量就可以了。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3916233

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档