So true about value types.
However this will flip flop the whole memory experience in JDK9. I mean even if a LocalDateTime could be represented as a Value Type would be a significant amount of memory saving on our backend. And there is other stuff which adds a unnecessary amount, too. I mean we still get a lot of Long / Int boxes. Hopefully Java 10 will reduce that.
We are on Scala and I guess Valhalla will also make Scala even more awesome with Value Types. I could consider that half of the case classes could be real Value Types.