静态属性中的java公共资源
我想问一个关于静态属性的问题。我将用我遇到的一个例子来解释它
我正在开发一个视频游戏,在这个游戏中我必须每隔几秒钟创建一个新的对象。对于它,我正在使用一个池等等,但是即使使用一个池并重用对象,对于内存来说仍然是一个相当昂贵的操作。所以我最终浪费了所有的内存来创建这些对象
为了优化代码,我意识到在这个对象的新版本中,有很多昂贵的操作,比如创建新的纹理、动画等等。然后我意识到所有这些纹理、动画等对于这类对象来说都是常见的,所以我想把所有常见的东西都放在静态属性中
现在我的问题是:静态属性保存在内存中的什么位置?每次创建此类新对象时,静态属性都会重复?或者它们都只有一个静态属性?我想是第二个,更有意义,但我想确定一下
你觉得我提出的解决方案怎么样
谢谢
# 1 楼答案
你的解决方案是合理的。你会节省很多内存
一个小小的改进是仍然有一个纹理的实例字段(等等),但是让这个场指向一个静态纹理。每个字段“浪费”了几个字节,但内存中仍然只有一个大项目(纹理)。这样做的好处是,如果将来想让一些对象具有不同的纹理,可以这样做。e、 g
# 2 楼答案
见Java tutorial: