Tipos de datos¶
Un tipo de datos es un conjunto de valores y un conjunto de operaciones definidas en ellos. Se pueden clasificar en primitivos y objetos.

Tipos nativos¶
Los primitivos son los más básicos y fundamentales, vienen integrados en Java. Especifican el tipo de valor almacenado en una variable y el tamaño de la memoria. Hay 8 tipos primitivos de datos integrados en el lenguaje Java. Estos incluyen: int, byte, short, long, float, double, boolean y char.
byte¶
Como su propio nombre denota, emplea un solo byte (8 bits) de almacenamiento. Esto permite almacenar valores en el rango [-128, 127]. Raramente se usa. Ocupa menos memoria y puede ser más rápido accedido.
short¶
Usa el doble de almacenamiento que el anterior, es decir, ocupa 16 bits [-32.768, 32.767].
int¶
Emplea 4 bytes (32 bits) de almacenamiento y es el tipo de dato entero más empleado. Necesita cuatro veces el espacio que ocupa un byte. Es el entero predeterminado usado en Java.
long¶
Es el tipo entero de mayor tamaño, 8 bytes (64 bits).
float¶
Tiene una parte flotante que sirve para expresar números decimales. Es de simple precisión (formato y cantidad de espacio que ocupa) porque ocupa 32 bits. No se recomienda mucho su uso.
double¶
Es un número de precisión doble y ocupa 64 bits. Es el flotante predeterminado en Java. Se recomienda su uso. Muchas librerías internas de Java, relacionadas con operaciones matemáticas, usan double.
char¶
Se utiliza para almacenar caracteres (letras, números, signos, etc.) individuales. Ocupa 2 bytes en memoria (16 bits). Permite almacenar caracteres Unicode. Unicode es un estándar de codificación internacional que nos permite representar diferentes idiomas; y la forma en que funciona es usando una combinación de los dos bytes que un char ocupa en la memoria, que puede representar hasta 65535 diferentes tipos de caracteres
Un carácter precedido por una barra invertida (\
) es una secuencia de escape y tiene un significado especial para el compilador.
boolean¶
Sólo permite almacenar dos posibles valores que son true o false. Tiene la finalidad de facilitar el trabajo con valores "verdadero/falso" (booleanos), resultantes por regla general de evaluar expresiones.
Este tipo de datos representa un bit de información, pero su "tamaño" no es algo que esté definido con precisión.
Wrapper classes (clases contenedores)¶
Las clases contenedoras proporcionan una forma de utilizar tipos de datos primitivos como objetos. En Java, tenemos una Wrapper class
para cada uno de los 8 tipos de datos primitivos, estas clases las veremos más avanzado el curso.
String¶
Un String es un tipo de dato no primitvo que, en Java representa una cadena de caracteres no modificable. Todos los literales de la forma "cualquier texto", es decir, literales entre comillas dobles, que aparecen en un programa java se implementan como objetos de la clase String.
Tres manera de usarlos
- Comillas dobles p. ej. String texto = "IES La Encantá";
- Utilizando new p. ej. String texto2 = new String ("IES La Encantá");
- Utilizando el operador concatenación
+
p. ej. String s2 = texto + " 2024”; //s2 contiene "IES La Encantá 2023"
Operador concatenación¶
La clase proporciona el operador +
(concatenación) para unir dos o más String. El resultado de aplicar este operador es un nuevo String concatenación de los otros.
Índices¶
Cada uno de los caracteres que forman un String son del tipo primitivo char. Los caracteres de un string están numerados internamente con índices empezando desde el cero:

El primer carácter tiene índice 0 y el último tiene la longitud del string menos 1.
Métodos de la clase String¶
La clase String proporciona métodos para el tratamiento de las cadenas de caracteres: acceso a caracteres individuales, buscar y extraer una subcadena, copiar cadenas, convertir cadenas a mayúsculas o minúsculas, etc.

¿Cómo los uso?
Para acceder a alguno de los métodos siguientes utilizamos la notación .
String texto = "Clase";
int longitud = texto.length(); //devuelve 5
Comparar Strings¶
Los operadores relacionales como ==
o <
o >
no se utilizan para comparar Strings, aunque el código compile no es correcto, ya que ==
compara objetos, y devolvería falso aunque dos strings tuvieran el mismo texto puesto que son objetos diferentes. Para comparar Strings
utilizamos el método equals
.
String name = "Luffy";
if (name.equals("Luffy")) {
System.out.println("Coincide.");
}
String

char dentro de String¶
Como se ha comentado, un String
está compuesto de caracteres tipo char
. Para acceder a los caracteres dentro de un String
usamos el método charAt()
. Se puede usar la concatenación +
para concatenar char
con String
.
String food = "cookie";
char firstLetter = food.charAt(0); // 'c'
System.out.println(firstLetter + " is for " + food);
char¶
A todos los valores char se les asigna un número internamente por el ordenador, son los llamados valores ASCII
Cuidando con sumar enteros
Mezclar tipos de datos char e int automáticamente causa una conversión en entero.
'a' + 10 --> devuelve 107.
Para convertir un entero en su equivalente a carácter (char) haríamos:
(char) ('a' + 2) --> devuelve 'c'
Diferencias entre char y String¶
String
es un objeto, por tanto, contiene métodos.char
es un tipo de dato primitivo, no puedes llamar a métodos con él.String
utiliza comillas dobles.char
utiliza comillas simples.- No se puede comparar un
String
usando operadores relacionales. - Sí se puede comparar un
char
usando operadores relacionales:'a' < 'b', 'X' == 'X', ...
Actividades¶
- AC 201 (RA1 / CE1b CE1c CE1d / IC1 / 3p) Ayúdate de los rangos de los valores para saber qué tipo de datos es, del nombre que se le ha dado y del valor que almacena cada variable. Las variables con valor Fórmula, son variables que calculan expresiones ayudándose de otras variables. Su tipo de datos es el predefinido por Java.

Note
Muestra las variables por pantalla con su nombre como hacemos en el siguiente ejemplo:
System.out.println(“isOccupied:” + isOccuppied);
Salida por pantalla: isOccupied: false
Entrega un zip con el código del programa y un PDF con capturas y comentarios.