Cassandra disable -ea flag [duplicate]

Попробуйте написать

0.1 + 0.1 + 0.1 == 0.3.

Внимание: вы можете быть удивлены результатом!

20
задан RAnders00 23 April 2016 в 17:43
поделиться

3 ответа

20
ответ дан BeeOnRope 17 August 2018 в 15:34
поделиться

Очень мало. Я считаю, что они удалены во время загрузки классов.

Ближайшая вещь, которую я получил для некоторого доказательства: Спецификация утверждения assert в спецификации Java Langauge. Кажется, это сформулировано так, что утверждения assert могут обрабатываться во время загрузки класса.

2
ответ дан Gareth Davis 17 August 2018 в 15:34
поделиться
  • 1
    Это то, о чем я никогда не думал. Для удаления при загрузке класса. Ницца. Есть ли ссылка на это, я могу прочитать? – asiar 7 January 2011 в 12:23
  • 2
    Просто смотри сейчас – Gareth Davis 7 January 2011 в 12:42
  • 3
    «Кажется, что он сформулирован». именно так я его читаю: D. Возможно ли, что это детализация JVM (каждая реализация определяет, как они соблюдают формулировку . Если утверждение отключено, оценка утверждения не имеет никакого эффекта из спецификации)? – asiar 7 January 2011 в 12:59
  • 4
    Это возможно в ограниченных ситуациях для выполнения команды , даже если утверждения отключены . Поэтому виртуальная машина не может выделять утверждения при загрузке класса, но джиттер не имеет этого ограничения (до тех пор, пока он запускается после инициализации класса). – Steve McKay 22 April 2015 в 17:42
  • 5
    Спецификация недвусмысленно требует, чтобы байт-код assert загружался: An assert statement that is executed before its class or interface has completed initialization is enabled. – Marko Topolnik 27 January 2016 в 16:03

Отключение утверждений полностью исключает их выполнение. После отключения они по существу эквивалентны пустым операторам в семантике и производительности

Источник

1
ответ дан Yasser 17 August 2018 в 15:34
поделиться
  • 1
    «После отключения они по существу эквивалентны пустым операторам в семантике и производительности». Как это делается? Как @Gareth Davis упомянул в своем ответе? – asiar 7 January 2011 в 12:28
  • 2
    @asiar Я не могу найти источник для его резервного копирования, но это наиболее вероятное объяснение. – marcog 7 January 2011 в 12:33
  • 3
    Это неверно. Утверждения могут препятствовать встраиванию, поскольку исходный размер метода используется для определения того, может ли что-то быть вложенным. См. Отличный ответ BeeOnRope для лучшего объяснения. – pveentjer 15 January 2017 в 15:44
  • 4
    @asiar - я перехожу к механике в своем ответе выше. Короче говоря, они свободны not , даже если Oracle хочет, чтобы вы поверили, что они есть, если, возможно, вы не префиксеруете эту заявку с длинной серией предостережений. – BeeOnRope 15 January 2017 в 23:26
  • 5
    @pveentjer И ваша отличная статья: pveentjer.blogspot.de/2017/01/… – Sebastian 30 January 2017 в 06:05
Другие вопросы по тегам:

Похожие вопросы: