Java Integer.parseInt(字符串)是否创建对象?
我正在使用Java Integer.parseInt(字符串)是否创建对象?,java,android,Java,Android,我正在使用int duration=Integer.parseInt(durationinstang)将字符串对象转换为原始整数值。我在一个while循环中使用它,整数转换每秒钟发生一次,直到视频持续时间结束。例如,如果视频是2分钟,我将调用Integer.parseInt120次。 我想知道是否每次调用Integer.parseInt都会创建一个对象?如果是这样的话,连续调用它是个坏主意吗 非常感谢您的帮助 注意:我正在开发Android应用程序 谢谢, SKU在内部,该方法可能会创建对象,但
int duration=Integer.parseInt(durationinstang)
将字符串对象转换为原始整数值。我在一个while循环中使用它,整数转换每秒钟发生一次,直到视频持续时间结束。例如,如果视频是2分钟,我将调用Integer.parseInt
120次。
我想知道是否每次调用Integer.parseInt
都会创建一个对象?如果是这样的话,连续调用它是个坏主意吗
非常感谢您的帮助
注意:我正在开发Android应用程序
谢谢,
SKU在内部,该方法可能会创建对象,但由于返回值是
int
它不会生成泄漏给您的任何对象,因此调用方。我不会担心像这样的对象创建的效率问题,因为大多数JVM都有垃圾收集器,这些垃圾收集器经过专门优化,可以收集不再被引用的年轻对象。如果您有理由相信此方法以实际导致问题的速度创建对象,请拉出探查器进行检查。我敢打赌,这不是一个瓶颈
希望这有帮助 如果查看Integer.parseInt的源代码,似乎没有创建任何对象
也就是说,120次不值得担心。您可以从这个问题中检查代码 无论如何,我认为最好是:
int duration = 0;
while(){
duration = whatever;
}
这样内存就可以重复使用。有什么理由你必须每秒调用它吗?我猜视频的持续时间不会改变,只调用一次就够了吗?如果没有好的理由,那么是的,这是个坏主意。每秒一次并不经常。垃圾收集器可以很容易地处理这个问题。@ggreiner我每秒调用它的原因是为了获取视频播放的当前位置。通过获取返回值。。。我将设置进度条的位置来更新视图。@Guillaume我也有同样的感觉,更多的是我是在一个单独的线程上进行的。不过,公平地说,库设计者可以自由地实现他们认为合适的方法,并且确实可以在内部分配对象。