Actions are defined in JLS 17.4.2 , which focuses on "cross-thread actions:"
An action between threads is an action performed by one thread that can be detected or directly depends on another thread .... This specification only applies to actions between threads.
( ), .
var1 = var2 , var1 var2. , ( var2 var). - , , - , , .
, var2 - , var1 - , var2 — , , .
, if (r1 == r2 && r3 == r4) 4 : , . == && , , .