Thanks to Roman Yaroslavtsev who gave me a link to an article
Memory Barriers and JVM Concurrency.
First of all this article is useful to gain a better understanding of
Java Memory Model - another great thing that I discover is ability to look inside of assembly code generated by
jit.