If I had to guess... I'd guess that the peaks would be the JVM garbage collection because that does happen in bursts, and does run in it's own thread(s) independent of whatever java code is running.
Can also be the JIT compiler, which compiles code in parallel by default. It activates at least once for each new battle.