April 2018
Intermediate to advanced
910 pages
33h 21m
English
The goal of this effort is to update the Java Virtual Machine, and, if possible, the Java language, to support small, immutable, identity-less value types. Currently, if you instantiate a new Object, it is given an identifier by the JVM, which allows the variable instance to be referenced.
For example, if you create a new integer, new Integer(42), a variable with the identity of java.lang.Integer@68f29546, but the value of 42, the value of this variable will never change, and that's all we, as developers, typically care about. However, the JVM doesn't really know that, so it has to maintain the identity of the variable, with all of the overhead that entails. According to Goetz, that means every instance of this object will require ...