Los datos númericos con int tienen un límite. Solo tiene la capacidad de almacenar hasta 10 dígitos.

Para almacenar número enteros

byte

Con un rango de -128 a 127. Vale 1 byte

short

Con un rango de -32,768 a 32,767. Vale 2 bytes

int

Con un rango de -2,147,483,748 a 2,147,483,647. Vale 4 bytes.

long

Con un rango de -9,223,372,036,854,775,807 a +9,223,372,036,854,775,807. Vale 8 bytes.

Para que el compilador detecte que nuestra dato sea tipo long, deberás colocar una L al final del dato númerico.

public class DataTypes {
    public static void main(String[] args) {
				//Así no te va a dejar.
					~~int numL = 12345678901;~~
				//Esta es la manera correcta
					long numL = 12345678906L;

~~~~
        
    }

    
}

Para almacenar números flotantes

float

Con un rango de 1.40129846432481707e-45 a 3.40282346638528860e+38. Vale 4 bytes. Se usa cuando sabemos que el cálculo o el dato no va a ser tan preciso.

double

Con un rango de 4.94065645841246544e-324d a 1.79769313486231570e+308d. Vale 8 bytes. Se usa cuando requerimos mayor precisión en los datos.

Formas de escribirlos en código

public class DataTypes {
    public static void main(String[] args) {
				
					double numD = 145.526;
					float numF = 145.526F;
        
    }

    
}