Java Experts Take Note:
The difference between result substitution and result expansion is that substitution copies a pointer to the existing result while expansion copies the text value of the result.