En general, se dice de las situaciones en que se
intentan meter más datos en un contenedor de los que caben. Así es muy
frecuente oir hablar de "buffer overflow" para indicar que no
caben tantos datos en un buffer.
En aritmética se aplica cuando un valor excede el
máximo previsto.
En números enteros el desbordamiento se puede
producir por números excesivamente grandes, sean positivos o negativos. Java no
lo detecta:
Integer.MAX_VALUE + 1 =
2147483647 + 1 = -2147483648
Integer.MIN_VALUE –1 =
-2147483648 – 1 = 2147483647
1000000000 * 10 = 1410065408
En números en coma flotante el desbordamiento se
puede producir en el exponente cuando éste es positivo. Java lo interpreta como
que nos hemos ido al infinito.
Double.MAX_VALUE * 10 =
1.79769e+308 * 10 = Infinity
Ver "Underflow".
Temas relacionados