1. Records are already there AFAIK
2. Structs (Value types) will come as part of Valhalla
3. Records are the impl of dataclasses
4. Pass by value is already there for primitive types. Valhalla might bring that to structs also.
Java is also getting a lot of good stuff like coroutines(Loom), and Panama(seamless FFI).
I'm guessing that they'll land in Spring or Fall 2021, but that's just an outsider's guess. The really important cutoff is Spring 2022, when Java 18 is intended to be an LTS version.
If you think about it - the feature may change significantly or be even removed - it makes sense to only support a preview features in one java version.
Providing backward compatibility for preview features is simply not intended.
> Records are the impl of dataclasses
This is ofc backwards/reverse of any sane logic that would start with value types and after invent references (eg. in this case probably would've mean introducing a new composed-primitive type)... but then again, it's Java, at least they got the strings being immutable part right from the start.