Есть ли еще разница между Math и StrictMath после Java 17 и JEP 306? ⇐ JAVA
-
Anonymous
Есть ли еще разница между Math и StrictMath после Java 17 и JEP 306?
JEP 306, реализованный в Java 17, обеспечивает всегда строгую семантику с плавающей запятой, исключая флаг strictfp. Означает ли это, что java.lang.Math будет вести себя точно так же, как и аналогичные методы в StrictMath (т. е. что java.lang.Math методы больше не могут быть заменены JVM встроенными функциями, как это было разрешено раньше)? Означает ли это также, что больше не должно быть различий в результатах вычислений с плавающей запятой в разных архитектурах, независимо от того, какая библиотека используется?
Мне интересно, не неправильно ли я понимаю новую функцию Java 17, поскольку мы видим различия в сегодняшнем коде между Apple Silicon и Intel.
JEP 306, реализованный в Java 17, обеспечивает всегда строгую семантику с плавающей запятой, исключая флаг strictfp. Означает ли это, что java.lang.Math будет вести себя точно так же, как и аналогичные методы в StrictMath (т. е. что java.lang.Math методы больше не могут быть заменены JVM встроенными функциями, как это было разрешено раньше)? Означает ли это также, что больше не должно быть различий в результатах вычислений с плавающей запятой в разных архитектурах, независимо от того, какая библиотека используется?
Мне интересно, не неправильно ли я понимаю новую функцию Java 17, поскольку мы видим различия в сегодняшнем коде между Apple Silicon и Intel.
Мобильная версия