В разделе 8.4 спецификации виртуальной машины Java говорится, что значение типа double или long, которое не объявлено как volatile, рассматривается как две 32-разрядные переменные для операций загрузки, хранения, чтения и записи.
Кроме того, способкодирования и порядок двух 32-битных операций не определены.
Спецификация поощряет реализации делать атомарную операцию, но им это не требуется.