Yes, the Thread started in startThread
is guaranteed to see the value of nonFinalField
because starting a thread establishes a "happens before" relationship between the parent (the thread calling main) and child thread (the thread started in startThread
).
This is listed in the lanuage spec in 17.4.4 (third bullet).