Score %0 (0 correct0 incorrect20 unanswered)

Q1. Dada la cadena "fresas" guardada en una variable llamada fruta, ¿qué devolverá fruta.substring(2, 5)?

  • rawb
  • raw
  • awb
  • traw

Razonamiento: El método substring acepta dos argumentos:

  • El primer argumento es el índice para comenzar (incluye ese carácter en la posición 2).
  • y el segundo es el índice de la cadena para terminar el subconjunto (excluye el carácter en la posición 5).
  • Las cadenas en Java son como matrices de caracteres.
  • Por lo tanto, el método devolverá "raw" ya que esos son los caracteres en los índices 2, 3 y 4.
  • También puedes tomar el índice final y restarle el índice inicial para determinar cuántos caracteres se incluirán en el subconjunto (5-2=3).

Q2. ¿Cómo se puede lograr el polimorfismo de tiempo de ejecución en Java?

  • sobrecarga de método
  • sobrecarga de método
  • anulación de método
  • llamada de método

Q3. Dadas las siguientes definiciones, ¿cuál de estas expresiones NO se evaluará como verdadera?

boolean b1 = true, b2 = false; int i1 = 1, i2 = 2;

  • (i1 | i2) == 3
  • i2 && b1
  • b1 || !b2
  • (i1 ^ i2) < 4

Razonamiento: i2 && b1 no está permitido entre int y boolean.

Q4. ¿Cuál es la salida de este código?

class Main {
  public static void main (String[] args) {
    int array[] = {1, 2, 3, 4};
    for (int i = 0; i < array.size(); i++) {
       System.out.print(array[i]);
    }
  }
}
  • No se compilará debido a la línea 4.
  • No se compilará debido a la línea 3.
  • 123
  • 1234

Razonamiento: array.size() no es válido, para obtener el tamaño o longitud del array se puede usar array.length.

Q5. ¿Qué se puede usar en lugar de la sección de CÓDIGO para hacer que el siguiente código imprima "Hello World"?

interface Interface1 {
    static void print() {
        System.out.print("Hello");
    }
}

interface Interface2 {
    static void print() {
        System.out.print("World!");
    }
}
  • super1.print(); super2.print();
  • this.print();
  • super.print();
  • Interface1.print(); Interface2.print();

Q6. ¿Qué imprime el siguiente código?

String str = "abcde";
str.trim();
str.toUpperCase();
str.substring(3, 4);
System.out.println(str);
  • CD
  • CDE
  • D
  • "abcde"

Razonamiento: Debes asignar el resultado de trim nuevamente a la variable String. De lo contrario, no funcionará porque las cadenas en Java son inmutables.

Q7. ¿Cuál es el resultado de este código?

class Main {
    public static void main (String[] args){
        System.out.println(print(1));
    }
    static Exception print(int i){
        if (i>0) {
            return new Exception();
        } else {
            throw new RuntimeException();
        }
    }
}
  • Mostrará un rastreo de la pila con una excepción en tiempo de ejecución.
  • "java.lang.Exception"
  • Se ejecutará y lanzará una excepción.
  • No se compilará.

Q8. ¿Qué clase se puede compilar dadas estas declaraciones?

interface One {
    default void method() {
        System.out.println("One");
    }
}

interface Two {
    default void method () {
        System.out.println("One");
    }
}
  • A
class Three implements One, Two {
    public void method() {
        super.One.method();
    }
}
  • B
class Three implements One, Two {
    public void method() {
        One.method();
    }
}
  • C
class Three implements One, Two {
}
  • D
class Three implements One, Two {
    public void method() {
        One.super.method();
    }
}

Q9. ¿Cuál es la salida de este código?

class Main {
    public static void main (String[] args) {
        List list = new ArrayList();
        list.add("hello");
        list.add(2);
        System.out.print(list.get(0) instanceof Object);
        System.out.print(list.get(1) instanceof Integer);
    }
}
  • El código no compila.
  • truefalse
  • truetrue
  • falsetrue

Q10. Dadas las siguientes dos clases, ¿cuál será la salida de la clase Main?

package mypackage;
public class Math {
    public static int abs(int num){
        return num < 0 ? -num : num;
    }
}
package mypackage.elementary;
public class Math {
    public static int abs (int num) {
        return -num;
    }
}
import mypackage.Math;
import mypackage.elementary.*;

class Main {
    public static void main (String args[]){
        System.out.println(Math.abs(123));
    }
}
  • Las líneas 1 y 2 generan errores del compilador debido a conflictos de nombres de clase.
  • "-123"
  • Lanzará una excepción en la línea 5.
  • "123"

Explicación: La respuesta es "123". El método abs() se evalúa al que está dentro de la clase mypackage.Math, porque las declaraciones de importación de la forma:

import packageName.subPackage.*

son Declaraciones de Importación de Tipo Bajo Demanda, que nunca causa que se oscurezca ninguna otra declaración.

Q11. ¿Cuál es el resultado

de este código?

class MainClass {
    final String message() {
        return "Hello!";
    }
}

class Main extends MainClass {
    public static void main(String[] args) {
        System.out.println(message());
    }

     String message() {
         return "World!";
     }
 }
  • No se compilará debido a la línea 10.
  • "Hello!"
  • No se compilará debido a la línea 2.
  • "World!"

Explicación: Error de compilación en la línea 10 porque los métodos finales no pueden ser anulados, y aquí message() es un método final, y además, el método message() no estático no se puede hacer referencia desde un contexto estático.

Q12. Dado este código, ¿qué comando devolverá "2"?

class Main {
    public static void main(String[] args) {
        System.out.println(args[2]);
    }
}
  • java Main 1 2 "3 4" 5
  • java Main 1 "2" "2" 5
  • java Main.class 1 "2" 2 5
  • java Main 1 "2" "3 4" 5

Q13. ¿Cuál es la salida de este código?

class Main {
    public static void main(String[] args){
        int a = 123451234512345;
        System.out.println(a);
    }
}
  • "123451234512345"
  • Nada, esto no se compilará.
  • un valor entero negativo
  • "12345100000"

Razonamiento: El tipo int en Java se puede usar para representar cualquier número entero de -2147483648 a 2147483647. Por lo tanto, este código no se compilará ya que el número asignado a 'a' es mayor de lo que el tipo int puede contener.

Q14. ¿Cuál es la salida de este código?

class Main {
    public static void main (String[] args) {
        String message = "¡Hola mundo!";
        String newMessage = message.substring(6, 12)
            + message.substring(12, 6);
        System.out.println(newMessage);
    }
}
  • El código no se compila.
  • Se lanza una excepción en tiempo de ejecución.
  • "¡mundo!¡mundo"
  • "¡mundo!¡mundo!"

Q15. ¿Cómo se escribe un bucle for-each que iterará sobre ArrayList<Pencil>pencilCase?

  • for (Pencil pencil : pencilCase) {}
  • for (pencilCase.next()) {}
  • for (Pencil pencil : pencilCase.iterator()) {}
  • for (pencil in pencilCase) {}

Q16. ¿Qué imprime este código?

System.out.print("manzana".compareTo("plátano"));
  • 0
  • número positivo
  • número negativo
  • error de compilación

Q17. Tienes un ArrayList de nombres que deseas ordenar alfabéticamente. ¿Cuál enfoque NO funcionaría?

  • names.sort(Comparator.comparing(String::toString))
  • Collections.sort(names)
  • names.sort(List.DESCENDING)
  • names.stream().sorted((s1, s2) -> s1.compareTo(s2)).collect(Collectors.toList())

Q18. Al implementar la encapsulación, no se puede acceder directamente a las propiedades de la clase a menos que estés escribiendo código dentro de la clase misma.

  • private
  • protected
  • sin-modificador
  • público

Q19. ¿Cuál es la forma más actualizada de instanciar la fecha actual?

  • new SimpleDateFormat("yyyy-MM-dd").format(new Date())
  • new Date(System.currentTimeMillis())
  • LocalDate.now()
  • Calendar.getInstance().getTime()

Explicación: LocalDate es la clase más nueva agregada en Java 8.

Q20. Completa el espacio en blanco para crear un fragmento de código que indique si int0 es divisible por 5:

boolean isDivisibleBy5 = _____

  • int0 / 5 ? true: false
  • int0 % 5 == 0
  • int0 % 5 != 5
  • Math.isDivisible(int0, 5)