我使用int duration = Integer.parseInt(durationInString)
将String对象转换为原始整数值。我在while循环中使用它,整数转换每秒发生一次,直到视频持续时间结束。例如 - 如果视频是2分钟,我会拨打Integer.parseInt
120次。
我想知道每次调用Integer.parseInt
是否都会创建一个对象?如果是这样,持续调用它是一个坏主意吗?
非常感谢任何帮助。
注意:我正在开发Android应用程序
谢谢, SKU
答案 0 :(得分:5)
如果查看Integer.parseInt的源代码,似乎没有创建任何对象。
那说,120次不值得担心。
答案 1 :(得分:2)
在内部,该方法可能会创建对象,但由于返回值为int
,因此它不会产生任何泄漏给您的对象,即调用者。我不担心这样的对象创建的效率问题,因为大多数JVM都有垃圾收集器,这些垃圾收集器经过专门优化以收集不再引用的年轻对象。如果您有理由相信此方法以实际导致问题的速率创建对象,则拉出探查器以检查它。我打赌它不是瓶颈。
希望这有帮助!
答案 2 :(得分:0)
您可以查看此问题的代码https://stackoverflow.com/a/1410611/678189
无论如何,我认为更好:
int duration = 0;
while(){
duration = whatever;
}
这样可以重复使用内存。