jvm Java代码优化,堆大小限制(使用更少内存)

64jmpszr  于 2022-11-07  发布在  Java
关注(0)|答案(1)|浏览(163)

我在运行这段代码时遇到了内存异常,限制是堆的大小。有没有人能建议一下是否有办法进一步优化这段代码?

public class getCustomerList {
  public static List <Customer> retrieve() throws ParseException {
    List<Customer> customers = new ArrayList<Customer>();
    for (int i = 0; i < 100000; i++) {
      Customer customer = new Customer();
      customer.setAge(new Integer(i));
      customer.setBirthDate((new SimpleDateFormat("ddMMyyyy")).parse("01061986"));
      customer.setName("Customer" + new String((new Integer(i)).toString()));
      customers.add(customer);
    } 
    return customers;
  }
}
yyhrrdl8

yyhrrdl81#

一些可能有用的想法:
1.使age成为基元,如果它已经是基元,则为该方法提供int,而不是Integer

customer.setAge(i);

1.将SimpleDateFormat移出循环,当前您创建了100000个相同的示例。

customer.setBirthDate(format.parse("01061986"));

1.您真的需要为每个客户设置100000个相同的Date示例吗?如果不需要,您可以在每个客户中设置相同的日期示例。

customer.setBirthDate(date);

1.当前的名字创建效率很低,你创建Integer对象,然后从它创建字符串(整数被丢弃),然后创建所述字符串的副本(并丢弃初始的)。

customer.setName("Customer" + i);

相关问题