Tipos de datos para números enteros (sin decimales):
byte: Ocupa 1 byte de memoria y su rango es de -128 hasta 127.
short: Ocupa 2 bytes de memoria y su rango es de -32,768 hasta 32,727.
int: Ocupa 4 bytes de memoria y su rango es de -2,147,483,648 hasta 2,147,483,647. Es muy cómodo de usar, ya que no es tan pequeño para que no quepan nuestros números ni tan grande como para desperdiciar mucha memoria. Puede almacenar hasta 10 dígitos.
long: Ocupa 8 bytes de memoria y su rango es de -9,223,372,036,854,775,808 hasta 9,223,372,036,854,775,807. Para diferenciarlo de un tipo de dato long debemos terminar el número con la letra L.
Por ejemplo:
// Int:int n =1234567890;// Long:long nL =123456789012345L;
Tipos de datos para números flotantes (con decimales):
float: Ocupan 4 bytes de memoria y su rango es de 1.40129846432481707e-45 hasta 3.40282346638528860e+38. Así como long, debemos colocar una letra F al final.
double: Ocupan 8 bytes de memoria y su rango es de 4.94065645841246544e-324d hasta 1.79769313486231570e+308d.
import java.util.Scanner;publicclassMain{publicstaticvoidmain(String[] args){//byte, short, int, longSystem.out.println("bits tipo byte:"+Byte.SIZE);System.out.println("bytes tipo byte:"+Byte.BYTES);System.out.println("valor minimo tipo byte:"+Byte.MIN_VALUE);System.out.println("valor maximo tipo byte:"+Byte.MAX_VALUE);System.out.println();System.out.println("bits tipo short:"+Short.SIZE);System.out.println("bytes tipo short:"+Short.BYTES);System.out.println("valor minimo tipo short:"+Short.MIN_VALUE);System.out.println("valor maximo tipo short:"+Short.MAX_VALUE);System.out.println();System.out.println("bits tipo int:"+Integer.SIZE);System.out.println("bytes tipo int:"+Integer.BYTES);System.out.println("valor minimo tipo int:"+Integer.MIN_VALUE);System.out.println("valor maximo tipo int:"+Integer.MAX_VALUE);System.out.println();System.out.println("bits tipo long:"+Long.SIZE);System.out.println("bytes tipo long:"+Long.BYTES);System.out.println("valor minimo tipo long:"+Long.MIN_VALUE);System.out.println("valor maximo tipo long:"+Long.MAX_VALUE); byte byteVar =15;System.out.println("byteVar = "+ byteVar); short shortVar =100;System.out.println("shortVar = "+ shortVar); int intVar =500;System.out.println("intVar = "+ intVar); long longVar =1000;System.out.println("longVar = "+ longVar);var numero =10;System.out.println("numero = "+ numero);}}```
Muy bueno!!
Muy interesante, pero no entendí como es posible que funcione el tipo de dato var en la variable numero.
Bien, explicado. Esos detalles que en la universidad ni explicaron :'V y Platzi me informa y enseña.
jajaja en la universidad hicieron que deteste Java, pero ahora me va gustando mucho.
estas en lo cierto
Me es increíble como en el plan de estudios de mi carrera, en la materia de Java, sólo se limitaron a enseñarnos "int" sin siquiera decirnos que existían otros tipos de datos. Por eso es bueno complementar la educación universitaria, para no quedarnos estancados y seguir aprendiendo... Grande Platzi.
es tal vez porque esos profesores sólo aprendieron a programar pero nunca entraron a una empresa de desarrollo por lo que pasan desactualizados y enseñan lo mismo y lo mismo cada año
Típico en la educación hoy en día
¡Hola!
Aquí les dejo el código comentado, para que lo tengan de recordatorio :)
publicclassDataTypes{publicstaticvoidmain(String[] args){// Numero entero (max. 10 numeros) int n =1234567890;//Para diferenciarlo de Int colocar una L al final long nL = 12345678901L;//Numero grande en decimales double nD =123.456;//Para diferenciarlo de Double colocar una F al final float nF =123.456F;}}
Muy claro, gracias!
Obtener valor máximo de int
No necesitas memorizar el valor máximo o mínimo de un determinado tipo de dato numérico.
Una manera mas sencilla de saberlo es haciendo que Java nos lo diga:
En Java los valores numéricos enteros se evalúan como tipo int y los valores numéricos decimales como tipo ** double** es por eso que la siguiente sentencia marca error de compilación :
float decimalNumber =5.3;
por eso se debe de colocar la letra “f” para forzar que sea evaluada como float
float decimalNumber =5.3f;
Buen aporte, me di cuenta de eso curioseando jjajajaa brutal aporte
ya sea para long o para float, se puede usar la L o F ya sea mayúscula o minúscula.
long nL =1234567890l;float nF =123.456f;
Creo que el que hizo Java dijo: "Quiero hacer todo de la manera mas complicada posible"
Hasta que llego SAP y dijo! "permiso que ahi voy yo"!!
Una corrección a esta clase y es que el tipo int no precisamente se usa para números de 10 caracteres sino para números comprendidos en el rango -2,147,483,648 a 2,147,483,648, por ejemplo no podrias tratar un número de celular como int en Colombia porque daría error. Ejemplo:
int cel =3110000000// Integer number too large
Aplica para bases de datos, alguna vez tuve que trabajar una tabla donde todos los celulares eran 2147483648 y es porque se excedía el limite superior.
pues en este casi usaría long por sobrepasa a int
Estupenda clase instructora Anahí, ahora noto la razón por la que siempre usaba double en mis proyectos, ya que cuando usaba float me salía error y no sabía que lo causaba así que cambiaba al otro tipo de variable numérica. En adelante tendré cuidado con esos detalles de las variable float y long.
Por cierto, para la persona que necesite el código acá lo coloco:
publicclassDataTypes{publicstaticvoidmain(String[] args){//int int n =1234567890;//long long nL = 12345678901L;//double double nD =123.456123456;//float float nF =123.456F;}}
📦 Utilizar los tipos de datos de manera adecuada en Java, permite optimizar la memoria que utilizara la aplicación.
¿La 'd' final de double es opcional?
Hola, así es.
En java la d o D al final de un tipo de dato númerico double es opcional. Sin ningún problema puedes utilizar ya sea:
double number =34;double number2 =34.65d;double number3 =34.5D;
Complementando mi respuesta anterior, donde es obligatorio utilizar la letra d o D al final del número, es cuando usas los tipos de datos definidos por las clases de Java.
double number =32.56;// Dato primitivoDouble number2 = 3256D;// Objeto clase Double JavaDouble number3 =32.56;// No necesita ya que define el punto flotante.
Cuando usas la clase Double de Java, sí o sí deberas indicar la letra d al final únicamente sí el número que quieres asignar a la variable es entero, si el número tiene el punto flotante (32.56) no es necesario la letra d. Aquí puedes ver un ejemplo en la imagen con el error que desplegaría, para que te quede un poco más claro. Un saludo :)
En JAVA debería preocuparme por el manejo de la memoria?
Sí, pero más en el sentido de los tipos de variables que estás usando y del performance del cómputo que está usando tu código. Tengo entendido que el garbage collector de Java se encarga de liberar todas esas variables a las que ya no estás apuntado.
También algo importante es que no abuses del uso de propiedades o clases estáticas, ya que estas siempre están cargadas en memoria y eso afecta el rendimiento.
Si, en cualquier lenguaje.
Al declarar un dato tipo long y float:
entero
long numero = 12345L;
Decimal
float numero2 = 123.12345F;
los demas byte, short, int y double son de la forma normal:
int numero2 = 123;
Gracias por lo datos adicionales y esos detalles que hacen la vida mas facil de llevar, la leta al final (que a muchos se nos olvida y estamos ahi, rompiendonos la cabeza) o cosas que simplemente no nos habian dicho antes.
Tipos de datos numéricos
En Java, se pueden utilizar los siguientes tipos de datos numéricos para números enteros
++Byte++: ocupa 1 byte de memoria.
++Short++: ocupa 2 bytes de memoria.
++int++: ocupa 4 bytes de memoria
++long++: ocupa 8 bytes de memoria.
Nota: Para diferenciar un int de un long es necesario poner una 'L' al final del número de tipo long. Ejemplo:
long numLong = 1234L;
Para datos numéricos con punto decimal existen dos opciones: float y double.
float: ocupa 4 bytes de memoria y no tiene tanta precisión como double.
double: ocupa 8 bytes de memoria y tiene más precisión que float.
Para hacer la distinción entre estos, es necesario poner una 'F' al final del número flotante. Ejemplo:
float numf = 1234F;
Alguien sabe como cambiar el JDK en Apache?
A cual de los proyectos de la Apache Software Foundation te refieres? Hay varios que utilizan Java. Si de lo que hablas es de Tomcat, puedes ajustar el JDK que utilizas cambiando la variable JAVA_HOME ya sea en el entorno, o dentro del fichero catalina.sh (o catalina.bat si estás en windows)
En los entornos *nix:
export JAVA_HOME= <directorio_java>
En Windows:
set JAVA_HOME= <directorio_java>
Espero te sirva de ayuda.
Cuál es la razón por la que se deba poner al final las letras L y F, para identificar que son long y float respectivamente, si ya al declarar la variable le estás diciendo que es long o float?
Hola Stiven
En parte porque es una especificación del lenguaje. Si un nativo inglés preguntara de pronto ¿por qué en español usan "¿" para iniciar una pregunta? seguramente yo lo miraría y le diría "pues, cosas del español, qué quieres que te diga".
Por supuesto, esa es una mala respuesta y hay una razón que data de 1754 y la RAE, pero ese es otro tema.
En Java, por defecto los números decimales son tratados como double y los no decimales como int, por lo que si quieres que sean tratados como float debes explicitarlo con la F al final y los long con L al final. A pesar de la declaración. Como te decía, cosas del lenguaje.