在内存和时间方面分配给String变量代价是多少?

时间:2017-08-21 13:47:24

标签: java android string android-recyclerview

String timeStamp = currentCommentObjectObj.getTimeStamp();

holder.timeStamp.setText(timeStamp);

holder.timeStamp.setText(currentCommentObjectObj.getTimeStamp());

从时间和空间优化的角度来看哪个更好?

更多信息: -    此代码位于回收站视图的onBindViewHolder中。

2 个答案:

答案 0 :(得分:2)

虽然我更喜欢第二种,但我相信没有区别。因为在编译步骤的某个地方,编译器会优化您的代码并且会识别出这些差异(如果有的话)。

有关详细信息,请参阅http://www.noesispoint.com/jsp/scjp/SCJPch0.htm

显然,第一个javac(Java编译器)将代码编译为JavaByteCode,然后Java虚拟机的编译器JIT优化并将字节代码编译为机器语言。

希望有所帮助。

答案 1 :(得分:1)

无论编译器/ JVM行为如何,这都是一个本质上应该是瞬时的操作。

在机器级别上,两种方法之间唯一可能的区别是

(a)保存指向内存的指针,然后加载指针,或

(b)将指针直接传递给下一个方法调用。

对于任何对象来说,这两者之间不同的时间量是如此之小以至于它基本上无关紧要。即使在一个循环中,Android UI代码也不应该被执行足够的时间,因为这可能很重要。