Java:为变量赋值当前值?

use*_*401 4 java optimization variable-assignment

如果我有一个当前为空的字符串

String s = "";
Run Code Online (Sandbox Code Playgroud)

并重新分配

s = "";
Run Code Online (Sandbox Code Playgroud)

这不好我不这样做吗?

if(!s.isEmpty()){
   s = "";
}
Run Code Online (Sandbox Code Playgroud)

或者编译器会接收它并为我优化?

Sha*_*her 5

调用方法isEmpty()(在线程堆栈中分配新空间等)的成本否定任何增益.如果你想为变量分配一个空字符串,那么在没有if语句的情况下这样做是最有效的.