Длинные и двойные требуют 64 бит памяти. Это заставляет эти типы требовать два адресных пространства.Длинный, двойной и 64 бит памяти
На 64-битном jvm это все еще так? Поскольку эти значения теперь могут вписываться в одно адресное пространство, то означает, что эти типы теперь хранятся в одном адресном пространстве?
Имеет ли это последствия для потоковой передачи, где требуется использование энергозависимой информации для этих типов, чтобы обеспечить , что каждое отдельное адресное пространство не обновляется не в порядке?
Java должен быть виртуальная машина независимый: так это означает, что программа Java всегда выполняется точно так же, независимо от того, как она реализована в виртуальной машине ... –
@CommuSoft Это не так, строго говоря. Вы получаете те же гарантии. Но все, что не распространяется на эти гарантии, свободно меняется. Таким образом, разрешено (на самом деле, рекомендуется) для 64-битной виртуальной машины обрабатывать 'double' и' long' как атомные, но вы не получаете никакой гарантии, что это произойдет. – biziclop
См. Предыдущий ответ, например http://stackoverflow.com/questions/25173208/value-integrity-guarantee-for-concurrent-long-writes-in-64-bit-openjdk-7-8 – JiriS