Saltar a contenido

UD1 — Test de repaso

Resultado de Aprendizaje 1 — Reconoce la estructura de un programa informático, identificando y relacionando los elementos propios del lenguaje de programación utilizado.

IES Thiar · Curso 2026 - 2027


1. ¿Qué es programar? Java en el mundo real

#

Pregunta 1

¿Cuál es la diferencia fundamental entre un algoritmo y un programa?

#

Pregunta 2

De las siguientes cinco propiedades, ¿cuál NO es obligatoria para que una secuencia de pasos merezca el nombre de algoritmo?

#

Pregunta 3

La propiedad "definido" de un algoritmo significa que…

#

Pregunta 4

Java nació en 1991 dentro de Sun Microsystems en un proyecto llamado "Green Project" para programar electrodomésticos. ¿Cuál era el nombre original del lenguaje antes de ser rebautizado como Java?

#

Pregunta 5

El eslogan "Write Once, Run Anywhere" (WORA) significa que…

#

Pregunta 6

¿Cuál de las siguientes afirmaciones sobre las versiones LTS (Long Term Support) de Java es falsa?

#

Pregunta 7

El bytecode de Java (ficheros .class) es…

#

Pregunta 8

¿Qué componente de la plataforma Java es responsable de ejecutar el bytecode en una máquina concreta?

#

Pregunta 9

La diferencia entre JDK y JRE es que…

#

Pregunta 10

Completa: el proceso de pasar del código fuente Java (.java) al bytecode (.class) se llama y lo realiza la herramienta javac. Después, la se encarga de ejecutar ese bytecode en la máquina destino.

2. IntelliJ IDEA y Maven: el entorno de trabajo

#

Pregunta 11

¿Qué es un IDE (Entorno de Desarrollo Integrado)?

#

Pregunta 12

¿Qué IDE usamos en el ciclo y por qué?

#

Pregunta 13

En un proyecto Maven, el archivo pom.xml contiene…

#

Pregunta 14

¿Cuáles son las tres coordenadas mínimas que identifican unívocamente un artefacto Maven?

#

Pregunta 15

¿Para qué sirve el comando mvn clean?

#

Pregunta 16

¿Qué comando Maven compila el proyecto sin ejecutar pruebas ni empaquetar?

#

Pregunta 17

¿Qué comando Maven genera el .jar del proyecto?

#

Pregunta 18

En la estructura estándar de carpetas Maven, ¿dónde colocas tu código fuente Java (.java)?

#

Pregunta 19

¿Qué carpetas de un proyecto Maven NO deberías versionar en Git?

#

Pregunta 20

El sufijo -SNAPSHOT en una versión Maven (p. ej. 1.0-SNAPSHOT) indica que…

#

Pregunta 21

El repositorio local donde Maven guarda las dependencias descargadas se llama y está en el directorio ~/.m2/repository/ por defecto.

3. Estructura de un programa Java

#

Pregunta 22

En Java 25 (JEP 512), ¿cuál es la forma más simple de escribir un programa "Hola, mundo"?

#

Pregunta 23

En la forma clásica de un programa Java con clase explícita, los tres bloques mínimos son…

#

Pregunta 24

¿Qué palabra reservada marca el punto de entrada de un programa Java clásico (con clase explícita)?

#

Pregunta 25

¿Cuál es la firma correcta del método main en la forma clásica de Java?

#

Pregunta 26

En Java 25, ¿qué significa "instance main methods"?

#

Pregunta 27

¿Cuáles de los siguientes son tipos de comentarios válidos en Java? (varias respuestas)

#

Pregunta 28

¿Para qué se utiliza el comentario Javadoc (/** ... */)?

#

Pregunta 29

¿Cuál de los siguientes NO es un buen hábito con comentarios?

#

Pregunta 30

¿Qué son las palabras reservadas en Java?

#

Pregunta 31

Indica cuál de los siguientes no es un identificador válido en Java:

#

Pregunta 32

Por convención en Java, los nombres de clases deben escribirse en (primera letra de cada palabra en mayúscula) y los nombres de variables y métodos en (primera palabra en minúscula, resto en mayúscula inicial).

4. Variables y tipos primitivos

#

Pregunta 33

¿Cuántos tipos primitivos tiene Java?

#

Pregunta 34

¿Cuáles son los 8 tipos primitivos de Java? (varias respuestas)

#

Pregunta 35

¿Qué tipo primitivo usarías para almacenar la edad de una persona (0-125)?

#

Pregunta 36

¿Cuál es el rango del tipo byte en Java?

#

Pregunta 37

¿Cuántos bits ocupa un int en Java?

#

Pregunta 38

¿Qué tipo de dato usarías para almacenar el sueldo anual en euros con céntimos?

#

Pregunta 39

¿Cuál es la diferencia clave entre float y double?

#

Pregunta 40

Para almacenar un único carácter como la inicial de un nombre, usamos el tipo…

#

Pregunta 41

¿Qué palabra reservada permite la inferencia de tipos desde Java 10?

#

Pregunta 42

¿Cuál de las siguientes declaraciones con var NO compila?

#

Pregunta 43

Java es un lenguaje fuertemente tipado. Esto significa que…

#

Pregunta 44

¿Cuál de los siguientes literales es válido para un long?

#

Pregunta 45

Completa: el tipo boolean solo admite dos valores literales: y . No se puede usar 1/0 como en C.

5. Operadores

#

Pregunta 46

¿Cuál es el resultado de 7 / 2 si ambos operandos son int?

#

Pregunta 47

¿Y si al menos uno de los operandos es double? Por ejemplo, 7 / 2.0

#

Pregunta 48

¿Qué operador se usa para el módulo (resto de división entera)?

#

Pregunta 49

¿Cuál es el resultado de 7 % 2?

#

Pregunta 50

¿Qué imprime el siguiente código?

1
2
3
int x = 5;
int y = x++;
System.out.println("x=" + x + ", y=" + y);
#

Pregunta 51

¿Y con pre-incremento?

1
2
3
int x = 5;
int y = ++x;
System.out.println("x=" + x + ", y=" + y);
#

Pregunta 52

¿Qué operadores relacionales devuelve un boolean? (varias respuestas)

#

Pregunta 53

Los operadores lógicos en Java son (varias respuestas):

#

Pregunta 54

¿Qué significa que && y || operan con cortocircuito?

#

Pregunta 55

Dado boolean cond = (a != 0) && (10 / a > 1);, si a vale 0

#

Pregunta 56

El operador += es un operador de asignación compuesta. ¿A qué equivale x += 5;?

#

Pregunta 57

¿Cuál es la precedencia correcta entre operadores aritméticos?

#

Pregunta 58

¿Qué imprime 1 + 2 + "3" en Java?

#

Pregunta 59

¿Y qué imprime "" + 1 + 2?

#

Pregunta 60

Completa: el operador que compara referencias (no contenido) entre dos objetos en Java es , mientras que para comparar el contenido de dos String se debe usar el método .

6. Constantes y literales

#

Pregunta 61

¿Qué palabra reservada convierte una variable en constante en Java?

#

Pregunta 62

¿Qué ocurre si intentas modificar una variable declarada final?

#

Pregunta 63

¿Cuál es la combinación estándar para declarar una constante de clase compartida por todas las instancias?

#

Pregunta 64

Por convención, los nombres de constantes en Java se escriben…

#

Pregunta 65

¿Cuál de los siguientes NO es un literal válido en Java?

#

Pregunta 66

¿Qué tipo de literal es 1_000_000?

#

Pregunta 67

¿Qué prefijo se usa para escribir un literal hexadecimal en Java?

#

Pregunta 68

¿Y para un literal binario?

#

Pregunta 69

¿Cuál es la diferencia entre final y static final?

#

Pregunta 70

Un literal es…

#

Pregunta 71

Completa: para declarar una constante local que no podrá modificarse, se usa la palabra . Para una constante asociada a toda la clase (una sola copia en memoria compartida por todas las instancias), se usa .

7. El tipo String y texto multilínea

#

Pregunta 72

¿Es String un tipo primitivo en Java?

#

Pregunta 73

¿Qué característica importante tienen los objetos String en Java?

#

Pregunta 74

¿Qué metodo de String devuelve su número de caracteres?

#

Pregunta 75

Para comparar el contenido de dos String en Java, debes usar…

#

Pregunta 76

¿Por qué == no es fiable para comparar String?

#

Pregunta 77

¿Qué imprime el siguiente código?

1
2
3
4
String a = "hola";
String b = "hola";
String c = new String("hola");
System.out.println((a == b) + " " + (a == c) + " " + (a.equals(c)));
#

Pregunta 78

¿Qué metodo devuelve el carácter en una posición concreta de un String?

#

Pregunta 79

¿Qué método devuelve una subcadena desde el índice i hasta el final?

#

Pregunta 80

¿Desde qué versión de Java existen los text blocks ("""...""")?

#

Pregunta 81

¿Para qué se usan los text blocks?

#

Pregunta 82

¿Qué método formatea un String con marcadores %s, %d, %f desde Java 15?

#

Pregunta 83

En un String.format o .formatted, ¿qué marca %d?

#

Pregunta 84

¿Y %f?

#

Pregunta 85

¿Qué marca %% dentro de un String.format?

#

Pregunta 86

¿Qué marca %n dentro de un String.format?

#

Pregunta 87

Completa: el método String.format("Hola, %s. Tienes %d años.", "Ana", 23) devuelve la cadena .

8. Conversión de tipos

#

Pregunta 88

¿Qué es la conversión implícita o widening?

#

Pregunta 89

¿Cuál de las siguientes asignaciones es un widening válido y automático?

#

Pregunta 90

¿Cuál de las siguientes conversiones NO se hace automáticamente (requiere cast explícito)?

#

Pregunta 91

¿Qué operador se usa para el casting explícito (narrowing)?

#

Pregunta 92

¿Qué devuelve (int) 3.7?

#

Pregunta 93

¿Y (int) -3.7?

#

Pregunta 94

¿Qué ocurre al hacer int x = (int) 5_000_000_000L;?

#

Pregunta 95

¿Qué método de Math lanza ArithmeticException si un long no cabe en un int?

#

Pregunta 96

¿Qué es el parseo en Java?

#

Pregunta 97

¿Qué devuelve Integer.parseInt("42")?

#

Pregunta 98

¿Qué lanza Integer.parseInt("3.14")?

#

Pregunta 99

¿Qué lanza Integer.parseInt(" 42 ") (con espacios)?

#

Pregunta 100

¿Qué devuelve Double.parseDouble("3,14")?

#

Pregunta 101

¿Cómo convertirías la entrada española "3,14" a double de forma segura?

#

Pregunta 102

¿Qué devuelve Boolean.parseBoolean("TRUE")?

#

Pregunta 103

¿Qué devuelve Boolean.parseBoolean("1")?

#

Pregunta 104

¿Qué devuelve Boolean.parseBoolean("no")?

#

Pregunta 105

¿Qué método convierte cualquier valor a String de forma null-safe?

#

Pregunta 106

¿Qué imprime el siguiente código?

1
2
3
Object o = null;
System.out.println(String.valueOf(o));
System.out.println("" + o);
#

Pregunta 107

Completa: la conversión de byte a int es automática y se llama (ampliación). La conversión inversa, de int a byte, requiere un explícito porque puede haber pérdida de datos.
#

Pregunta 108

Completa: para convertir el texto "42" en el entero 42 se usa el método . Si el texto no representa un entero válido, se lanza la excepción .

9. Entrada de información: java.lang.IO

#

Pregunta 109

¿Qué es java.lang.IO en Java 25?

#

Pregunta 110

¿Qué método de java.lang.IO lee una línea del teclado mostrando antes un mensaje?

#

Pregunta 111

¿Qué tipo devuelve IO.readln(...)?

#

Pregunta 112

¿Es necesario hacer import de java.lang.IO?

#

Pregunta 113

¿Cuál es la forma correcta de leer un entero del teclado con java.lang.IO?

#

Pregunta 114

¿Qué problema tiene int n = IO.readln("n: "); directamente?

#

Pregunta 115

Si el usuario escribe "3,14" con coma decimal, ¿cómo lo conviertes a double correctamente?

#

Pregunta 116

¿Qué es Scanner en Java?

#

Pregunta 117

¿Cuál es una trampa conocida de Scanner al mezclar nextInt() con nextLine()?

#

Pregunta 118

¿Cómo se soluciona la trampa anterior?

#

Pregunta 119

¿Qué problema de locale tiene Scanner.nextDouble() en un sistema en español?

#

Pregunta 120

¿Cómo fuerzas a Scanner a aceptar siempre el punto decimal?

#

Pregunta 121

¿Qué lanza Integer.parseInt("abc")?

#

Pregunta 122

¿Qué construcción se usa para capturar la excepción y reaccionar sin que el programa "reviente"?

#

Pregunta 123

¿Qué imprime el siguiente programa si el usuario escribe 48,50 y luego 10?

1
2
3
4
5
6
String sImporte = IO.readln("Importe (€): ");
String sPorcentaje = IO.readln("Propina (%): ");
double importe = Double.parseDouble(sImporte.replace(",", "."));
double porcentaje = Double.parseDouble(sPorcentaje.replace(",", "."));
double propina = importe * porcentaje / 100;
IO.println("Propina: " + propina);
#

Pregunta 124

¿Por qué en este curso se prefiere IO.readln + Integer.parseInt frente a Scanner.nextInt()?

#

Pregunta 125

Completa: el método IO.readln(...) siempre devuelve un objeto de tipo , así que para obtener un número entero del usuario hay que combinarlo con Integer.parseInt(...). Si el usuario introduce texto no numérico, se lanza la excepción .

Repaso global (transversal a la unidad)

#

Pregunta 126

Ordena las fases del proceso de desarrollo Java: compilar, ejecutar, escribir el código fuente.

#

Pregunta 127

¿Cuál de los siguientes es un buen identificador para una constante de tipo double que almacene el IVA general?

#

Pregunta 128

Dado el siguiente programa, ¿cuál es la salida exacta?

1
2
3
4
5
void main() {
    String nombre = "Ana";
    int edad = 23;
    IO.println("Hola, %s. El año que viene tendrás %d.".formatted(nombre, edad + 1));
}
#

Pregunta 129

¿Cuál de estos no se considera un operador aritmético en Java?

#

Pregunta 130

Señala las afirmaciones correctas sobre String (varias respuestas):

#

Pregunta 131

Señala las afirmaciones correctas sobre las constantes en Java (varias respuestas):

#

Pregunta 132

Señala las afirmaciones correctas sobre la conversión de tipos (varias respuestas):

#

Pregunta 133

Señala las afirmaciones correctas sobre java.lang.IO en Java 25 (varias respuestas):


Resumen final

Has completado el test de repaso de la Unidad 1: Fundamentos de Programación. Si has acertado al menos el 80% de las preguntas, puedes considerar que dominas los conceptos clave del RA1:

  • CE 1.1: estructura de un programa (clase, main, sentencias, JEP 512).
  • CE 1.2: proyectos Maven y coordenadas (groupId, artifactId, version).
  • CE 1.3: entorno integrado de desarrollo (IntelliJ IDEA Community).
  • CE 1.4: los 8 tipos primitivos y var.
  • CE 1.5: declaración y uso de variables (String, tipos primitivos).
  • CE 1.6: constantes (final, static final) y literales.
  • CE 1.7: operadores aritméticos, relacionales, lógicos, ternarios, de asignación.
  • CE 1.8: conversiones implícitas y explícitas, parseo de cadenas.
  • CE 1.9: comentarios (//, /* */, /** */ Javadoc) y buenas prácticas.

Si has fallado algunas preguntas, vuelve a la sección correspondiente del material y repasa antes de la prueba objetiva.