Java is always rolling through its available memory. Every temporary class instance created as java runs will be discarded and then have to be collected. There’s so much of that going on that the unusual is often lost in the crowd. Snapshots of memory usage or histograms can help (jhat, flight recorder, etc).
A sawtooth is utterly normal. Spiky charts without known spiky loads, not so much.