The work finished an hour ago. Nothing is running. And 113 MB just sits there.

Restarting fixes it. Which means nothing is fixed. Here is the missing picture, with real numbers from my machine.

You cannot free memory. At all.

In Java there is no delete and no free. Your code can only do one thing: cut arrows.

int[] data = new int[50_000_000]; // ~190 MB, one arrow to it