创建了多少字符串对象 (String.format())?
How much string objects are created (String.format())?
与同事发生争执后,我们找不到解决办法。所以我的问题
for(int i = 0; i < 2; i++) {
String.format("Variable i = %d", i);
}
这段代码 运行 期间将创建多少变量?
我有一个意见,这里可以创建4个变量:
- "Variable i = %d",
- "Variable i = %d" - 在两个循环步骤中都将创建一个用于格式化的对象
- "Variable i = 0",
- "Variable i = 1" - 结果字符串。
我说得对吗?
"Variable i = %d"
是字符串字面量,所以会放到字符串池中,不会创建两次。因此,您将总共拥有三个字符串:
"Variable i = %d"
、"Variable i = 0"
和 "Variable i = 1"
。
与同事发生争执后,我们找不到解决办法。所以我的问题
for(int i = 0; i < 2; i++) {
String.format("Variable i = %d", i);
}
这段代码 运行 期间将创建多少变量? 我有一个意见,这里可以创建4个变量:
- "Variable i = %d",
- "Variable i = %d" - 在两个循环步骤中都将创建一个用于格式化的对象
- "Variable i = 0",
- "Variable i = 1" - 结果字符串。
我说得对吗?
"Variable i = %d"
是字符串字面量,所以会放到字符串池中,不会创建两次。因此,您将总共拥有三个字符串:
"Variable i = %d"
、"Variable i = 0"
和 "Variable i = 1"
。