关于【在循环体内定义对象还是在循环体外定义对象】这个问题网络上有很多文章写过,在循环体外定义对象的支持者更多,理由是在循环体内创建对象会有多个对象引用存在。但是我在实际测试之后认为两种写法是 没有区别 的。
测试环境Java版本:1.8.0_101
反编译工具:Java Decompiler
测试代码如下
- 在循环体内定义对象
package other.defineVarInLoop;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
class DefineVarInLoop
{
public static void main(String[] args)
{
List<Map<String, Object>> mapList = new ArrayList<Map<String,Object>>();
for (int i = 0; i < 20; i++)
{
Map<String, Object> tmpMap = new HashMap<String, Object>(