streakode

Preguntas de entrevista de Java con respuestas

En las entrevistas de Java se repiten las mismas zonas grises: colecciones, strings, wrappers, operadores y streams. Estas preguntas son de nivel 2, las que tienen trampa, y cada una trae su explicación.

Piensa la respuesta antes de abrirla: la explicación dice por qué fallan las demás opciones. En Streakode tienes 37 preguntas como estas de Java, y un simulacro de 10 preguntas en 15 minutos, sin corrección hasta el final, para ver cómo irías en una entrevista de verdad.

12 preguntas de Java

Temas: Arrays · Bucles · Clases selladas · Colecciones · Condicionales · Operadores · Optional · Pattern matching · Streams · Strings · Switch · Wrappers.

  1. 1 · Completa el hueco · nivel 2

    Completa para sumar los números y mostrar la media.

    int[] nums = {4, 6, 11};int sum = 0;for (int n : nums) {    sum ___ n;}System.out.println(sum / nums.___);
    • +=
    • =
    • length
    • size()
    Ver la respuesta

    Respuesta: += · length

    int[] nums = {4, 6, 11};int sum = 0;for (int n : nums) {    sum += n;}System.out.println(sum / nums.length);

    sum += n acumula; con = solo se quedaría el último número. Un array dice su tamaño con length, sin paréntesis; size() es de las listas.

  2. 2 · Elige la respuesta · nivel 2

    ¿Qué imprime este código?

    String out = "";for (int i = 1; i <= 5; i++) {    if (i == 3) break;    out += i;}System.out.println(out);
    • A12
    • B123
    • C1245
    • D12345
    Ver la respuesta

    Respuesta: A. 12

    break sale del bucle en cuanto i vale 3, antes de añadirlo. Si fuera continue, solo se saltaría el 3 y saldría 1245.

  3. 3 · Completa el hueco · nivel 2

    Completa para que solo Circle y Square puedan implementar Shape.

    public ___ interface Shape ___ Circle, Square {}
    • sealed
    • permits
    • final
    • extends
    • implements
    • non-sealed
    Ver la respuesta

    Respuesta: sealed · permits

    public sealed interface Shape permits Circle, Square {}

    sealed restringe quién puede heredar y permits enumera los tipos autorizados. Así el compilador sabe que un switch sobre Shape con Circle y Square es exhaustivo.

  4. 4 · Elige la respuesta · nivel 2

    ¿Qué imprime este código?

    Set<String> tags = new HashSet<>(List.of("java", "kotlin"));System.out.println(tags.add("java") + " " + tags.size());
    • Afalse 2
    • Btrue 3
    • Ctrue 2
    • DLanza IllegalArgumentException
    Ver la respuesta

    Respuesta: A. false 2

    Un Set no admite duplicados: add() devuelve false si el elemento ya estaba y el tamaño no cambia.

  5. 5 · Completa el hueco · nivel 2

    Completa para que imprima Calor si hace más de 25 grados y Fresco si no.

    int temp = 30;___ (temp > 25) {    System.out.println("Calor");} ___ {    System.out.println("Fresco");}
    • if
    • else
    • elif
    • then
    Ver la respuesta

    Respuesta: if · else

    int temp = 30;if (temp > 25) {    System.out.println("Calor");} else {    System.out.println("Fresco");}

    En Java la condición va con if y la alternativa con else. elif es de Python y then no existe en Java.

  6. 6 · Elige la respuesta · nivel 2

    ¿Qué imprime este código?

    System.out.println(17 % 5);
    • A2
    • B3
    • C3.4
    • D12
    Ver la respuesta

    Respuesta: A. 2

    % da el resto de la división entera: 17 entre 5 cabe 3 veces (15) y sobran 2. 3 sería el cociente, 17 / 5.

  7. 7 · Elige la respuesta · nivel 2

    ¿Qué imprime este código?

    Optional<String> name = Optional.empty();System.out.println(name.map(String::toUpperCase).orElse("anónimo"));
    • Aanónimo
    • Bnull
    • CLanza NoSuchElementException
    • DOptional.empty
    Ver la respuesta

    Respuesta: A. anónimo

    Sobre un Optional vacío, map() no ejecuta la función y sigue vacío, así que orElse() devuelve el valor alternativo. No hace falta comprobar isPresent().

  8. 8 · Elige la respuesta · nivel 2

    ¿Qué imprime este código?

    record Point(int x, int y) {}Object o = new Point(3, 4);if (o instanceof Point(int x, int y)) {    System.out.println(x * y);}
    • A12
    • BNo compila: instanceof no desestructura
    • C7
    • DPoint[x=3, y=4]
    Ver la respuesta

    Respuesta: A. 12

    Desde Java 21, los patrones de record comprueban el tipo y extraen los componentes en variables en un solo paso.

  9. 9 · Elige la respuesta · nivel 2

    ¿Qué imprime este código?

    Stream.of(1, 2, 3)    .peek(n -> System.out.print(n + " "))    .filter(n -> n > 1)    .findFirst();System.out.println();
    • A1 2
    • B1 2 3
    • C2
    • DNada: falta una operación terminal
    Ver la respuesta

    Respuesta: A. 1 2

    Los streams procesan los elementos de uno en uno y bajo demanda. findFirst() es terminal y se detiene en cuanto encuentra el 2, así que el 3 nunca pasa por peek().

  10. 10 · Elige la respuesta · nivel 2

    ¿Qué imprime este código?

    System.out.println("Total: " + 2 + 3);
    • ATotal: 23
    • BTotal: 5
    • CTotal: 2 3
    • DNo compila
    Ver la respuesta

    Respuesta: A. Total: 23

    + se evalúa de izquierda a derecha. "Total: " + 2 ya es un String, así que el 3 se pega detrás como texto. Para sumar primero: "Total: " + (2 + 3).

  11. 11 · Elige la respuesta · nivel 2

    ¿Qué imprime este código?

    String day = "SAB";int hours = switch (day) {    case "SAB", "DOM" -> 0;    default -> {        int base = 8;        yield base;    }};System.out.println(hours);
    • A0
    • B8
    • CNo compila: falta break
    • DNo compila: yield no existe
    Ver la respuesta

    Respuesta: A. 0

    Un switch expresión devuelve un valor. Un case puede agrupar varias etiquetas separadas por comas y, cuando necesita un bloque, entrega el resultado con yield. Con -> no hay caída entre casos.

  12. 12 · Elige la respuesta · nivel 2

    ¿Qué imprime este código?

    Integer a = 127, b = 127;Integer c = 128, d = 128;System.out.println((a == b) + " " + (c == d));
    • Atrue false
    • Btrue true
    • Cfalse false
    • Dfalse true
    Ver la respuesta

    Respuesta: A. true false

    Java reutiliza los objetos Integer entre -128 y 127, así que a y b son el mismo objeto. 128 queda fuera de esa caché y crea dos objetos distintos. Con objetos, compara siempre con equals().

Preguntas de entrevista de otras rutas

Ver todos los ejercicios de Java