JavaRush /Blog Java /Random-ES /Pausa para el café #151. Implementación de una Cola en Ja...

Pausa para el café #151. Implementación de una Cola en Java. Diez preguntas imprescindibles para cualquier entrevista de trabajo para un puesto de desarrollador backend de Java

Publicado en el grupo Random-ES

Diez preguntas imprescindibles para cualquier entrevista de trabajo para un puesto de desarrollador backend de Java

Fuente: Medio El autor del artículo comparte su experiencia personal al pasar varias entrevistas para el puesto de Desarrollador Backend de Java. Pausa para el café #151.  Implementación de una Cola en Java.  10 preguntas imprescindibles para cualquier entrevista para un puesto de desarrollador backend de Java - 1Las entrevistas suelen ser difíciles. Por lo tanto, sería una buena idea conocer las preguntas antes de realizar la entrevista. Como he pasado por varias entrevistas durante los últimos meses, ahora puedo compartir con ustedes algunas de las preguntas que he encontrado con más frecuencia. Solicité un puesto como desarrollador backend de Java con entre 1 y 3 años de experiencia.

1. Java y sus características

El entrevistador normalmente le preguntará sobre la última versión de Java que está utilizando y sus características. He usado principalmente Java 8 y me han hecho preguntas sobre flujos API, expresiones lambda, interfaz funcional, etc. El entrevistador normalmente preguntaba sobre estas características y las aplicaciones basadas en ellas.

2. Funcionamiento interno de HashMap

La mayoría de las entrevistas a las que asistí tenían esta pregunta. Después de explicar cómo funciona, algunos preguntaron sobre el tamaño predeterminado de HashMap, otros preguntaron más sobre las colecciones de Java.

3. Errores y excepciones

La diferencia entre error y excepción es una pregunta muy común que se hace en las entrevistas. También se preguntó qué son las excepciones marcadas y no marcadas.

4. subprocesos múltiples

El multithreading es un concepto muy importante para las entrevistas, normalmente se hacen preguntas sobre Thread, clases Runnable, diferencias entre ellos y casos de uso de ambos. También te aconsejo que estudies el marco Ejecutor.

5. Cuerdas e inmutabilidad

La mayoría de los entrevistadores preguntaron sobre la inmutabilidad en la clase de cadena y, a veces, preguntaron sobre el generador de cadenas y el búfer de cadenas (si decía que eran cadenas alternativas mutables). A veces preguntaban cómo crear una clase inmutable.

6. Recolección de basura

La recolección de basura en Java es un tema muy importante para prepararse para las entrevistas. A veces se hacen preguntas sobre el ciclo de vida de la recolección de basura y los diferentes métodos de recolección de basura.

7. Comparador y Comparable en Java

Las preguntas más frecuentes son cuándo utilizar Comparator y Comparable en Java y cuál es la diferencia entre ellos.

8. Patrones de diseño de Java

Cuando se trata de patrones de diseño de Java, las preguntas suelen comenzar con los diferentes patrones utilizados en el proyecto actual. En ocasiones se hacen preguntas sobre cuándo utilizar cada uno de ellos. También se preguntó sobre la creación de una clase inmutable en Java.

9. Finalizar, Finalmente y Finalizar

La diferencia entre las palabras clave final, finalmente y finalizar es una pregunta muy común en las entrevistas. Como pregunta adicional, preguntan sobre las opciones para usar cada palabra clave.

10. Serialización y deserialización en Java

La serialización y deserialización es un tema muy importante para prepararse para las entrevistas. Generalmente se pregunta sobre casos de uso, a veces se pregunta sobre hibernación y JPA. Con suerte, si pronto se enfrenta a una entrevista para un puesto de desarrollador del lado del servidor Java, preparar las preguntas mencionadas aquí le ayudará.

Implementando una cola en Java

Fuente: Faun.pub Gracias a esta publicación aprenderás cómo implementar una Cola en Java. Pausa para el café #151.  Implementación de una Cola en Java.  10 preguntas imprescindibles para cualquier entrevista para un puesto de desarrollador backend de Java - 2

¿Qué es una cola?

Una cola es una estructura de datos lineal en forma de una secuencia de acceso a elementos según el principio de "primero en entrar, primero en salir". Esto significa que el elemento que se inserte primero se eliminará primero. Es decir, los elementos se eliminan en el orden en que se insertaron. La cola consta de dos partes: Front (frente, donde se eliminan los elementos) y Back (detrás, donde se insertan los elementos). Operaciones de cola comunes: las siguientes operaciones se utilizan comúnmente en una cola:
  • Enqueue : agrega un elemento desde el final de la cola.
  • Quitar de cola : elimina un elemento del principio de la cola.
  • Front/Peek : devuelve el valor del elemento delante de la cola, sin excluir (eliminar) el elemento de la cola.
  • IsEmpty : comprueba si la cola está vacía.
  • IsFull : comprueba si la cola está llena.
  • Mostrar : imprime todos los elementos de la cola.

Implementación del código:

public class Example {
public static void main(String[] args) {
    Queue myQueue = new Queue();
    myQueue.enQueue(3);
    myQueue.enQueue(2);
    myQueue.enQueue(1);
    myQueue.display();
    myQueue.deQueue();
    myQueue.peak();
}
}
class Queue {
  int queueLength = 3;
  int items[] = new int[queueLength];
  int front = -1;
  int back = -1;
  boolean isFull(){
      if(back == queueLength - 1){
          return true;
      } else {
          return false;
      }
  }
  boolean isEmpty(){
      if(front == -1 && back == -1){
          return true;
      } else {
          return false;
      }
  }
   void enQueue(int itemValue) {
      if(isFull()){
          System.out.println("Queue is full");
      } else if(front == -1 && back == -1){
          front = back = 0;
          items[back] = itemValue;
      } else{
          back++;
          items[back] = itemValue;
      }
  }
   void deQueue(){
      if(isEmpty()){
          System.out.println("Queue is empty. Nothing to dequeue");
      } else if (front == back){
          front = back = -1;
      } else {
          front++;
      }
  }
  void display(){
      int i;
      if(isEmpty()){
          System.out.println("Queue is empty");
      } else {
          for(i = front; i <= back; i++){
              System.out.println(items[i]);
          }
      }
  }
  void peak(){
      System.out.println("Front value is: " + items[front]);
  }
}

Explicación:

  • Primero creamos nuestras variables y sus parámetros. Usamos 3 como el número máximo de elementos que se pueden poner en cola en la matriz. Establecemos el índice inicial del frente (Front) y del reverso (Back) en -1.

  • A continuación definiremos la funcionalidad de isEmpty y isFull .

  • El método isEmpty() es bastante simple, para el método isFull() nuestro número máximo de elementos permitidos en una matriz es 3, pero tres elementos en la matriz no se denotan por el índice 3 sino por 2 ya que el primer índice es 0. Entonces la longitud máxima es menos 1 nos da el índice 2, que es la tercera celda de la matriz. Cuando todas las celdas están en cola con un valor hasta la tercera celda, la matriz está llena.

  • enQueue : si la matriz está llena, recibimos un mensaje de que está llena. Si las partes Frontal y Posterior son -1, entonces el elemento se asigna a la primera celda en el índice 0; de lo contrario, el valor se inserta y la posición posterior se incrementa.

  • deQueue : si la matriz está vacía, recibimos el mensaje correspondiente. Si la parte frontal se encuentra con la parte trasera, restablecemos su índice a -1. Si las dos últimas condiciones no se aplican, se aumenta el Frente.

  • display : si la matriz no está vacía, iteramos e imprimimos todos los elementos.

  • pico : esto simplemente imprime el valor del elemento principal.

Comentarios
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION