Integer.parseInt(String)是否创建对象?

时间:2012-02-03 20:04:25

标签: java android

我使用int duration = Integer.parseInt(durationInString)将String对象转换为原始整数值。我在while循环中使用它,整数转换每秒发生一次,直到视频持续时间结束。例如 - 如果视频是2分钟,我会拨打Integer.parseInt 120次。 我想知道每次调用Integer.parseInt是否都会创建一个对象?如果是这样,持续调用它是一个坏主意吗?

非常感谢任何帮助。

注意:我正在开发Android应用程序

谢谢, SKU

3 个答案:

答案 0 :(得分:5)

如果查看Integer.parseInt的源代码,似乎没有创建任何对象。

那说,120次不值得担心。

答案 1 :(得分:2)

在内部,该方法可能会创建对象,但由于返回值为int,因此它不会产生任何泄漏给您的对象,即调用者。我不担心这样的对象创建的效率问题,因为大多数JVM都有垃圾收集器,这些垃圾收集器经过专门优化以收集不再引用的年轻对象。如果您有理由相信此方法以实际导致问题的速率创建对象,则拉出探查器以检查它。我打赌它不是瓶颈。

希望这有帮助!

答案 2 :(得分:0)

您可以查看此问题的代码https://stackoverflow.com/a/1410611/678189

无论如何,我认为更好:

int duration = 0;
while(){
duration = whatever;
}

这样可以重复使用内存。