там много чего написано, но в целом нельзя рассуждать о джаве в рамках плюсов — у них разные модели памяти, но джава явно прописывает, что запись в конкретный примитив атомарна, примитивами так же считаются ссылки и елементы массивов, потому даже если проц не умеет писать один байт, то вм должна разобраться и порешать, чтоб запись одного байта в массив была атомарной для приложения.
Спека модели памяти в джаве хоть и сложная и достаточно большая, но всё равно намного проще, чем плюсовая и в целом можно описать достаточно кратко: все записи точно атомарны и локальны (кроме double/long, которые могут быть не атомарными, но всё равно локальны — никогда не касаются других полей/елементов), все записи, которые happens-before чтений будут видимы, является ли событие А happens-beofre Б — читайте документацию.
Про long в JAVA - у неё для 32 бит лонг не атомарный а для 64 битной системы атомарный или таки пофиг какая система?)