Jag hade en intervju med GS på deras kontor i Bengaluru. Jag har 4 års erfarenhet av fullstackutveckling med Java. Jag fick ett samtal från en konsult.
Omgång 1
Vilka koncept är du bekväm inom Java? Jag sa samlingar. Han frågade vilka samlingsklasser har du använt? Jag sa HashMap ArrayList och HashSet.
När skulle du använda Set och när en lista? Jag sa att Set stöder unika icke-null-element och List har inte den begränsningen. Så om jag vill ha unika element använder jag Set. Han frågade någon annan hänsyn? Jag sa vilken typ av frågor som skulle utföras på samlingen. Som sökning. Han frågade något exempel? Jag sa – anställdas databas. Anställda måste vara unika så att vi kan använda List och söka med binär sökning eller liknande teknik eftersom de vanligtvis sorteras i någon ordning. Men jag tror att han hade väntat på O(1)-uppslagningstidssvaret eller Set. Jag förklarade hur HashMap och HashSet fungerar och hur det skulle hjälpa en utvecklare att enkelt uppnå de unika elementen men intervjuaren var inte övertygad med mitt svar på sin ursprungliga fråga.
Vad är kontraktet för equals() och hashCode()? Vad händer om den ena åsidosätts men den andra inte?
Hitta andra minimum i en given array .
Hitta pivotpunkten i en sorterad och roterad array.
Någon fråga till mig?
Omgång 2
Ge en kort introduktion om din arbetslivserfarenhet.
Ge en översikt över ditt senaste projekts design.
Anta att jag har ett användargränssnitt där det finns en lista eller tabell över artiklar och varje artikel har ett vinstattribut ett rabattattribut etc. Hur man säkerställer att flera användare inte lämnar tillståndet för någon vara inkonsekvent. Användaren kan uppdatera attributen eller så kan någon annan webbtjänst göra detsamma. Jag föreslog att man skulle synkronisera objektets sättermetoder. Han frågade hur man skulle sortera föremålen. Jag sa att objekten skulle finnas i en arraylista och implementerade det jämförbara gränssnittet. Han bad om en fungerande kod. När jag skrev uttrycket i compareTo()-metoden sa han att designen inte är flexibel eftersom det finns hårdkodning av sorteringskriterier. Han sa att när någon vill sortera efter ett annat attribut skulle det bli omöjligt att hantera så många dubbletter av objekt. Jag sa att vi kan göra det med Factory Method Pattern. Då avslutade han i praktiken intervjurundan. Någonstans däremellan hade han nämnt Comparator-gränssnittet och jag förklarade för honom hur det fungerar. Jag sa att det är ett bra val om man inte vill modifiera de befintliga klasserna. Jag tror att han förväntade sig compare()-metodens implementering eftersom det inte skulle kräva dubbletter av objekt och sorteringen efter olika kriterier kan göras genom att helt enkelt implementera Comparator i olika klasser en klass för varje sorteringskriterium och sedan anropa sort()-metoden för klassen Collections med den Comparator-implementeringen.
Någon fråga till mig?
Blev tillsagd att lämna för dagen. Råd: Försök att inte ta upp designmönster om du inte blir ombedd att göra det eller om du har erfarenhet av att lösa problem med designmönster. Lyssna på intervjuaren och var uppmärksam. De ger tips. Även i omgång 1 hade jag gjort ett misstag i den roterade arrayfrågan. Han gav ett testfall där min kod skulle misslyckas. Jag rättade till fallgropen. Sov tillräckligt innan intervjudagen. Alla övningsproblem för Goldman Sachs ! Skapa frågesport