Inspectopedia Help

Object allocation in loop

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


// 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); }

Inspection Details

Available in:

IntelliJ IDEA 2024.2, Qodana for JVM 2024.2,


Java, 242.SNAPSHOT

Last modified: 20 February 2024