2012-02-03 71 views
0

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

任何帮助,非常感谢。

注:我工作在Android应用

感谢, SKU

+6

是否有一个原因你必须每秒拨打一次?我猜测视频的持续时间不会改变,仅仅调用一次就足够了吗?如果没有好的理由,那么是的,这是一个坏主意。 – ggreiner 2012-02-03 20:05:47

+0

每秒一次不是很经常。垃圾收集器可以轻松应对。 – Guillaume 2012-02-03 20:12:02

+0

@ggreiner我每秒钟都会调用它的原因是获取视频播放的当前位置。通过获取返回值...我将设置进度条的位置来更新视图。 – sku 2012-02-03 21:17:37

回答

2

内部,该方法可能会创建对象,但是由于返回值是一个int它不生产该泄漏给您的任何对象, 呼叫者,召集者。我不担心像这样的对象创建的效率问题,因为大多数JVM都有专门优化的垃圾收集器来收集不再被引用的年轻对象。如果您有理由相信此方法正在以实际导致问题的速率创建对象,请拔出一个分析器以检查它。我敢打赌,这不是一个瓶颈。

希望这会有所帮助!

5

如果您查看Integer.parseInt的源代码,则不会创建任何对象。

也就是说,120次不值得担心。

+2

尽管公平地说,库设计者可以自由地实现这种方法,因为他们认为合适,并且确实可以在内部分配对象。 – templatetypedef 2012-02-03 21:32:04