JavaRush /Blog Java /Random-ES /Pausa para el café #101. 19 preguntas esenciales de la en...

Pausa para el café #101. 19 preguntas esenciales de la entrevista sobre Java y breves ejemplos de respuestas

Publicado en el grupo Random-ES
Fuente: Hackernoon Aquí hay algunas preguntas y respuestas que surgen a menudo en las entrevistas sobre Java.

1. ¿Qué es el kit de desarrollo de Java (JDK)?

El JDK es un kit de desarrollo de software que incluye las herramientas y bibliotecas necesarias para desarrollar aplicaciones Java.

2. ¿Qué hace Java Runtime Environment (JRE)?

JRE se refiere al entorno de ejecución en el que se ejecuta el código de bytes de Java. El JRE mantiene archivos y bibliotecas para el tiempo de ejecución.

3. ¿Qué hace la Máquina Virtual Java (JVM)?

La JVM es una máquina abstracta que proporciona un entorno de ejecución en el que se puede ejecutar el código de bytes de Java.

4. Java es independiente de la plataforma. ¿Por qué?

En cualquier otro lenguaje de programación, el código fuente se compila en código ejecutable y es posible que el código no se ejecute en todas las plataformas. Al usar JVM podemos hacer que el código de bytes sea comprensible para cualquier plataforma y este código de bytes es independiente de la plataforma. Aunque la JVM es diferente para cada plataforma, Java es independiente de la plataforma ya que no depende de ningún tipo de plataforma.

5. Java no está 100% orientado a objetos. ¿Por qué?

Porque Java utiliza ocho tipos de datos primitivos como booleano, byte, char, int, float, double, long, short que no son objetos.

6. ¿Qué son los constructores en Java?

Un constructor es un bloque de código utilizado para inicializar objetos. Sintaxis:
class DemoClass
{
   // constructor name is same as class name
   DemoClass()
   {
      ....
   }
}
// calls DemoClass() constructor
DemoClass obj = new DemoClass();
Ejemplo:
public class ConstructorDemo
{
   int a; // class attribute
   // create constructor for class ConstructorDemo
   ConstructorDemo()
   {
      a = 26; // initial value for class attribute 'a'
   }
   public static void main(String[] args)
   {
      // creating object for ConstructorDemo class
      // here we're calling constructor ConstructorDemo()
      ConstructorDemo obj = new ConstructorDemo();
      System.out.println(obj.a);
   }
}
Resultado:
26

7. ¿Qué hace una clase singleton?

Las clases singleton solo pueden tener un objeto (instancia de clase) a la vez. Después de crear el objeto e intentamos crear una instancia de la clase singleton , la nueva variable también apunta al primer objeto creado.

8. ¿Qué son las clases contenedoras en Java?

Las clases contenedoras permiten convertir tipos de datos primitivos en un objeto y viceversa. Ejemplo:
int a = 7; // using primitive datatype
Integer a = new Integer(7); // using wrapper class

9. ¿Cuál es la diferencia entre el operador == y el método de igualdad en Java?

En general, == es un operador y igual() es un método. Usamos el operador == para hacer referencia a objetos de comparación en el montón. No existe el concepto de sobrecarga de operadores en Java. A pesar de esto, el operador == se utiliza para comprobar si la dirección de dos objetos es la misma o no. Es decir, el operador == comprueba si ambos objetos apuntan a la misma ubicación de memoria o no. El operador == también se utiliza para comparar tipos de objetos y tipos primitivos como el booleano. Mientras que el método equals() de la clase String compara el contenido de dos objetos.

10. ¿Cuáles son los conceptos de programación orientada a objetos en Java?

  • La abstracción se define como ocultar la implementación interna y mostrar solo la información necesaria.
  • La herencia es el procedimiento de convertir todas las propiedades y el comportamiento de una clase principal (superclase) en una clase secundaria (subclase).
  • La encapsulación es el procedimiento de vincular datos o variables y métodos.
  • Polimorfismo significa literalmente muchas formas. El polimorfismo es la capacidad de un método para realizar diferentes tareas. Esto se puede lograr mediante métodos.

11. ¿Por qué el método main() es siempre estático en Java?

Porque no es necesario llamar a un método estático en un objeto. Si main() fuera un método no estático, la máquina virtual Java primero debe crear su objeto y luego llamar al método main() , lo que provocará que se asigne memoria adicional.

12. ¿Por qué las cadenas son inmutables en Java?

Las cadenas en Java son inmutables porque los objetos String se almacenan en caché en el grupo constante de cadenas .

13. ¿Qué son las matrices y ArrayList en Java?

Una matriz es un objeto que contiene un número fijo de elementos de un tipo similar.
  1. ArrayList es parte de la estructura de la colección.

  2. ArrayList implementa la interfaz de lista.

  3. Una ArrayList es una matriz escalable que crece dinámicamente a medida que se agregan elementos y se reduce a medida que se eliminan.

  4. Para operaciones de recuperación frecuentes, Java ArrayList es la mejor opción . Porque los elementos de un ArrayList se almacenan en ubicaciones de memoria consecutivas.

  5. ArrayList no puede contener tipos de datos primitivos como int, double, char y long.

  6. ArrayList puede contener objetos String y clase contenedora ( Double , Integer ).

  7. ArrayList le permite duplicar elementos.

  8. ArrayList conserva el orden de inserción.

  9. ArrayList se utiliza ampliamente debido a su funcionalidad y flexibilidad. Está diseñado para almacenar colecciones heterogéneas de objetos.

  10. Una ArrayList puede tener cualquier número de valores nulos.

14. ¿Cuál es la diferencia entre HashSet y HashMap en Java?

En HashSet :
  1. Podemos almacenar objetos en un HashSet . Por ejemplo, HashSet: {"Hola", "Mundo"} .

  2. El orden de inserción no se conserva. Está basado en código hash.

  3. Tiene un método add() .

  4. Implementa la interfaz Set .

  5. No permite elementos duplicados.

  6. Permite un único valor nulo.

En HashMap :
  1. En HashMap podemos almacenar pares de clave y valor. Por ejemplo, {1 -> “Hola”, 2 -> “Mundo”} .

  2. No admite orden de inserción. Se basa en la función hash.

  3. Tiene un método put() .

  4. Implementa la interfaz del mapa.

  5. Permite valores duplicados. No permite duplicar claves.

  6. Permite una única clave nula y cualquier número de valores nulos.

16. ¿Cuál es la diferencia entre esto y super en Java?

La palabra clave esta en Java:
  1. esta es una palabra clave que es una variable de referencia que hace referencia al objeto actual.

  2. Se puede utilizar para llamar implícitamente al método de clase actual.

  3. La palabra clave this() , utilizada para llamar al constructor de la clase actual.

  4. Esto se puede utilizar para pasar como argumento al llamar a un método.

Súper palabra clave en Java:
  1. La super palabra clave es una variable de referencia que se utiliza para hacer referencia al objeto inmediato de la clase principal.

  2. super se puede utilizar para llamar directamente a un método de una clase principal, a un constructor de una clase principal y para acceder a métodos de una clase base.

17. ¿Qué es la declaración de interrupción y continuación en Java?

Si ocurre una declaración de interrupción en un bucle, el bucle finalizará y el control pasará a la siguiente declaración en el mismo bucle. Ejemplo:
public class Example
{
   public static void main(String[] args)
   {
      for(int a = 1; a <= 10; a++)
      {
         if(a == 3)
         {
            // breaking loop
            break;
         }
         System.out.println(a);
      }
   }
}
Resultado:
12
La declaración de continuación pasa a la siguiente iteración del ciclo dependiendo de una determinada condición. Ejemplo:
public class Example
{
   public static void main(String[] args)
   {
      for(int a = 1; a <= 10; a++)
      {
         if(a % 2 != 0)
         {
            continue;
         }
         System.out.println(a + " ");
      }
   }
}
Resultado:
2 4 6 8 10

18. ¿Qué son los modificadores de acceso en Java?

Los modificadores de acceso definen el límite o alcance de una variable, constructor, clase o método. Hay cuatro tipos de modificadores de acceso en Java:
  1. Modificador de acceso privado.
  2. Modificador de acceso protegido.
  3. Modificador de compartir.
  4. Modificador de acceso predeterminado.

19. ¿Cuál es la diferencia entre bucle for y cada bucle en Java?

en bucle :
  1. No tiene una secuencia ejecutable. En el bucle for podemos cambiar el contador como queramos.
  2. Apareció al principio, en JDK 1.
  3. No es necesario implementar la interfaz.
  4. Puede tener acceso al índice. Por tanto, es posible reemplazar un elemento en una matriz.
  5. El contador puede aumentar y disminuir.
Para cada bucle :
  1. Realizado secuencialmente. El contador aumenta en uno.
  2. Apareció por primera vez en JDK 5.
  3. Para iterar sobre contenedores usando un bucle for-each, el contenedor debe implementar la interfaz Iterable.
  4. No es posible reemplazar el elemento en este índice porque no se puede acceder al índice de la matriz.
  5. Sólo se puede iterar en orden creciente, no se puede disminuir.
Ejemplo de la diferencia entre los bucles for each y for :
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
public class DifferenceBetween
{
   public static void main(String[] args)
   {
      List<String> players = new ArrayList<>(Arrays.asList("Virat", "Rohit", "Dhoni"));
      // iterate over List using for loop
      System.out.println("using for loop: ");
      for(int a = 0; a < players.size(); a++)
      {
         System.out.println(players.get(a));
      }
      // iterate over List using enhanced for loop
      System.out.println("using for each loop: ");
      for(String str : players)
      {
         System.out.println(str);
      }
   }
}
Resultado para y para cada bucle:
Virat Rohit Dhoni.
Comentarios
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION