The issue will probably be solved this year with value types in Java.
https://openjdk.org/jeps/8277163,
https://www.baeldung.com/java-valhalla-project,
https://blogs.oracle.com/javamagazine/post/java-jdk-18-evolu...
https://cr.openjdk.org/~briangoetz/valhalla/sov/02-object-mo...