Tuve una entrevista con GS en su oficina de Bangalore. Tengo 4 años de experiencia en desarrollo full stack usando Java. Recibí una llamada de un consultor.
- La ronda 1
- ¿Con qué conceptos te sientes cómodo dentro de Java? Dije colecciones. Preguntó qué clases de colección has usado. Dije HashMap, ArrayList y HashSet.
- ¿Cuándo usarías Set y cuándo una lista? Dije que Set admite elementos únicos no nulos y List no tiene esa restricción. Entonces, si quiero elementos únicos, usaré Set. Pidió alguna otra consideración? Dije el tipo de consultas a realizar sobre la colección. Como buscar. ¿Preguntó algún ejemplo? Dije: base de datos de empleados. Los empleados deben ser únicos, por lo que podemos usar List y buscar mediante búsqueda binaria o una técnica similar, ya que generalmente se ordenan en algún orden. Pero creo que había estado esperando la respuesta de tiempo de búsqueda O(1) o Set. Expliqué el funcionamiento de HashMap y HashSet y cómo eso ayudaría a un desarrollador a lograr fácilmente la singularidad de los elementos, pero el entrevistador no quedó convencido con mi respuesta a su pregunta original.
- ¿Cuál es el contrato de equals() y hashCode()? ¿Qué pasa si uno está anulado pero el otro no?
- Encuentra el segundo mínimo en una array dada .
- Encuentre el punto de pivote en una array ordenada y rotada.
- ¿Alguna pregunta para mí?
- La ronda 2
- Dé una breve introducción sobre su experiencia laboral.
- Brinde una descripción general del diseño de su proyecto reciente.
- Supongamos que tengo una interfaz de usuario en la que hay una lista o tabla de artículos y cada artículo tiene un atributo de beneficio, un atributo de descuento, etc. Cómo garantizar que varios usuarios no dejen el estado de ningún artículo inconsistente. El usuario puede actualizar los atributos o algún otro servicio web puede hacer lo mismo. Sugerí sincronizar los métodos de establecimiento del elemento. Preguntó cómo ordenar los artículos. Dije que los elementos residirían en una lista de arreglos e implementé la interfaz Comparable. Pidió un código de trabajo. Cuando escribí la expresión dentro del método compareTo(), dijo que el diseño no es flexible ya que existe una codificación estricta de criterios de clasificación. Dijo que cuando alguien quiere ordenar por otro atributo, sería imposible manejar tantos objetos duplicados. Dije que podemos hacerlo con el patrón del método de fábrica. En esto, efectivamente terminó la ronda de entrevistas. En algún punto intermedio, mencionó la interfaz Comparator y le expliqué cómo funciona. Dije que es una buena opción si uno no quiere modificar las clases existentes. Creo que esperaba la implementación del método compare(), ya que eso no requeriría objetos duplicados y la clasificación por diferentes criterios se puede hacer simplemente implementando Comparator en diferentes clases, una clase para cada criterio de clasificación, y luego invocando sort() método de la clase Collections con esa implementación de Comparator.
- ¿Alguna pregunta para mí?
Me dijeron que me fuera por el día. Consejo: intente no mencionar patrones de diseño a menos que se le solicite o tenga experiencia en la resolución de problemas con patrones de diseño. Escuche al entrevistador y esté alerta. Proporcionan pistas. En la ronda 1 también cometí un error en la pregunta de la array rotada. Dio un caso de prueba donde mi código fallaría. Corregí la trampa. Duerma lo suficiente antes del día de la entrevista.
Este artículo es una contribución de Anónimo . Si le gusta GeeksforGeeks y le gustaría contribuir, también puede escribir un artículo usando contribuya.geeksforgeeks.org o envíe su artículo por correo a contribuya@geeksforgeeks.org. Vea su artículo que aparece en la página principal de GeeksforGeeks y ayude a otros Geeks.
Escriba comentarios si encuentra algo incorrecto o si desea compartir más información sobre el tema tratado anteriormente.
Publicación traducida automáticamente
Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA