Back to Intellij Community

ObjectAllocationInLoop

java/java-impl/resources/inspectionDescriptions/ObjectAllocationInLoop.html

2025.3-rc-2946 B
Original Source

Reports object or array allocations inside loops. While not necessarily a problem, an object allocation inside a loop is a great place to look for memory leaks and performance issues.

The inspection reports the following constructs:

  • Explicit allocations via new operator
  • Methods known to return new object
  • Instance-bound method references
  • Lambdas that capture variables or this reference

Example:

// Explicit allocation
  for (Status status : Status.values()) {
    declarationsMap.put(status, new ArrayList<>());
  }

  // Lambda captures variable
  String message = "Engine running.";
  for (Engine engine : engines) {
      if (!isRunning(engine)) {
          logger.warn(() -> {
              return String.format(message);
          });
      }
  }

  // Instance-bound method reference
  for(Node node : nodes) {
    descriptor = node.getDescription();
    descriptor.ifPresent(dynamicTestExecutor::execute);
  }