gpt4 book ai didi

java - 动态创建对象与将它们存储为字段

转载 作者:行者123 更新时间:2023-12-01 18:13:47 24 4
gpt4 key购买 nike

我有一个运行大约 1,000,000 次的循环。

                 while ((line = br.readLine()) != null) {
if(!(line.isEmpty())){

data = new JSONObject(line);
name = (String)data.get("name");
surname = (String)data.get("surname");
ar.put(name, surname); //an array

}
}

与在运行时创建新的动态对象相比,将数据、姓名和姓氏作为字段,在效率方面有何优势(如果有)

                 while ((line = br.readLine()) != null) {
if(!(line.isEmpty())){

JSONObject data = new JSONObject(line);
String name = (String)data.get("name");
String surname = (String)data.get("surname");
ar.put(name, surname); //an array

}
}

最佳答案

不会有任何区别,因为您只是更改了变量的范围。由于您没有使用作用域之外的变量,因此生成的字节码也将是相同的(您可以使用 javap 进行尝试)。

因此,为了清楚起见,请使用第二种样式。

编辑:事实上,如果您将变量作为类的字段,则字节码可能会有所不同。性能将取决于 JIT 最终的结果,但不太可能存在显着差异(即使如此,第二种方法也会更容易优化 -> 可能更快)。

关于java - 动态创建对象与将它们存储为字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30978442/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com