Eu não sei se os professores dos cursos superiores e técnicos de nível de 2° grau de programação explicam sobre as seguintes perguntas que eu farei a seguir sobre a capacidade de armazenamento de uma linguagem.
Está escrito no livro Programação para Iniciantes - Aprenda Lógica de Programação com Java:
2.1. Tipos de dados existentes
No Java nós temos vários e vários tipos de dados, mas dentre esses muitos tipos, temos alguns que são principais. Antes de mencioná-los, vou agrupá-los em 3 categorias:
• Numéricos
• Textos
• Lógicos
Dentro dos numéricos nós ainda temos dois subgrupos:
• Inteiros
• Decimais
Quanto aos tipos inteiros, nós temos:
• byte (armazena valores de -128 até 127)
• short (vai de -32768 até 32767)
• int (ocupa o intervalo de -231 a 231 -1)
• long (intervalo de -263 a 263 -1)
Sobre a diferença, como você pode notar acima, basicamente, é a capacidade de
cada um.
Referência: https://cafe.algaworks.com/livro-logica-de-programacao/
O que se deve fazer quando se precisa usar valor numérico que não faz parte da capacidade da linguagem?
Por exemplo, a faixa de abrangência -40.500 até 40.500 não faz parte da capacidade de armazenamento dos tipos de dados inteiros do Java.
O que se deve fazer para usar em Java o valor 40.500?
Ou é impossível usar esse valor em Java por causa da capacidade de armazenamento da linguagem?
EDIT: Quanto aos tipos inteiros, nós temos:
• byte (armazena valores de -128 até 127)
• short (vai de -32768 até 32767)
• int (ocupa o intervalo de -2 elevado a 31 a 2 elevado a 31 -1)
• long (intervalo de -2 elevado a 63 a 2 elevado a 63 -1)