В документах API говорится
Все детали в Спецификации относительно переполнения проигнорированы, поскольку BigIntegers сделаны столь же крупными по мере необходимости для размещения результатов операции.
Это подразумевает, что BigInteger никогда не будет переполнять предположения, что Вы имеете достаточную память в наличии? Раз так, почему мы позволяем некоторому "типу" переполниться, и некоторые не делают?
Поскольку язык развивается, он будет способствовать типам, которые скрывают переполняющийся механизм от программистов?
Biginteger никогда не преодолевает, если у вас достаточно памяти, чтобы справиться с ней.
Чтобы ответить на ваш вопрос о том, почему мы позволяем некоторым типам переполнения, а не другие:
BigInteger на самом деле не является типом. Это класс. Это класс обертки, предназначенный для того, чтобы дать вам ту же функциональность, что и int, но позволяет использовать цифры так же большие, как вам нужно без беспокойства о переполнении.
Типы выполняют переполнение, потому что они просто пара байтов (точная сумма зависит от типа) памяти, и после того, как это небольшое количество переполнения памяти, так что делать номера.
Нет класса «Переполняет», если он не предназначен для этого (или если у вас закончится ресурсы). Класс определяется достаточно памяти для всего, что он содержит, что в основном будет ссылками на другие классы или другие структуры данных.
EntityLoad вернет массив объектов сущности, чтобы мы могли закольцевать его и использовать entityDelete:
<cfloop array="#allUsers#" index="User">
<cfset entityDelete( User )>
</cfloop>
При удалении данных будьте осторожны! Я обычно предпочитаю мягкое удаление.
-121--4631785-BigInteger никогда не переполняется! Он имеет произвольный размер, поэтому он может вместить число, равное размеру памяти (и Java-кучи).
-121--2929471-Вы прочитали его правильно , он никогда не переполнится. Хотя, он не создаст больше оперативной памяти для вас:)
Семантика арифметических операций точно имитируют целые числа Java арифметические операторы, как определено в Спецификация языка Java. Для например, деление на ноль бросает ArithmeticException и деление отрицательный на положительный выход отрицательный (или нулевой) остаток. Все из подробности в спецификации, касающиеся переполнение игнорируется, так как BigIntegers сделаны настолько большими, насколько это необходимо для учитывать результаты операция.
Biginteger никогда не переполняется! Это произвольный размер, поэтому он может разместить число, так как ваша память (и куча Java) может разместиться.
Правильно, BigInteger никогда не переполняется, он использует программные операции и динамическое распределение для хранения произвольных чисел.
Как и в случае со всеми другими вычислениями, "произвольное распределение" является анонимным способом сказать "до тех пор, пока у вас не закончатся ресурсы базовой системы".
, если Так почему же мы позволяем некоторому «типу» переполнению и некоторые нет?
, что полностью зависит от того, как он поддерживается. Если он поддерживается, например, простой примитив ванили int
, то он, очевидно, переполняется в integer.max_value
. Примитивы имеют четкие границы переполнения, в то время как те для объектов зависит от того, как они поддерживаются / запрограммированы.