我正在尝试从数据库获取数据并将该数据呈现在 json 对象中。为了将数据表示为 json 对象,我尝试从结果集对象进行迭代并将结果添加到列表中。但是在 while 循环内创建一个类对象好吗?就我而言,它将创建 100 多个对象。
Emp emp;
List<Emp> empList = new ArrayList<Emp>();
while(rs.next()){
emp = new Emp();
emp.setEMPLOYEE_ID(rs.getString("EMPLOYEE_ID"));
emp.setFIRST_NAME(rs.getString("FIRST_NAME"));
emp.setLAST_NAME(rs.getString("LAST_NAME"));
empList.add(emp);
}
System.out.println(empList.size());
ObjectWriter ob = new ObjectMapper().writer().withDefaultPrettyPrinter();
json = ob.writeValueAsString(empList);
最佳答案
通常最好在循环内创建对象。 Java 优化了短期对象的内存使用。对象的内存分配时间几乎为零,收集时间也为零,除了运行次要 GC 的开销之外。小回收中的 GC 时间与存活对象的数量成正比,因此死亡的对象越多,回收速度就越快。这也将他们排除在终身一代之外,而这需要更长的时间来清理。因此,在循环内创建对象不仅“很好”,而且您应该这样做,并且确实应该在循环内声明它。在您的代码示例中,emp
范围太广。您还可以使用空菱形运算符 <>
,作为 ArrayList
的生成器在empList
的声明中(名称中不应包含 List
一词,而应为复数形式,如 employees
)。
关于java - 在循环内创建对象好吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41081118/