Como forma de demonstrar as limitações dos tipos de dados primitivos, observe o código abaixo para o tipo byte:
public class Main {
public static void main(String[] args) {
byte a = 100;
byte b = 100;
byte c = (byte)(a + b);
System.out.println(c);
}
}
O referido programa não possui qualquer erro de sintaxe ou semântica computacional. O mesmo compila e executa sem qualquer tipo de erro computacional. O interessante deste exemplo é que a resposta esperada pelo usuário que executa o programa não é a mesma apresentada pelo computador. E o mais instigante é que ambos estão certos: o usuário e o computador, cada um com a sua verdade.