logo

Goldman Sachsin haastattelukokemus | Sarja 19

Minulla oli haastattelu GS:n kanssa heidän Bengaluru-toimistossaan. Minulla on 4 vuoden kokemus täyspinon kehittämisestä Javalla. Sain puhelun konsultilta.
    Kierros 1
    1. Mitä käsitteitä tunnet Javassa? Sanoin kokoelmat. Hän kysyi, mitä kokoelmaluokkia olet käyttänyt? Sanoin HashMap ArrayList ja HashSet.
    2. Milloin käyttäisit Setiä ja milloin luetteloa? Sanoin, että Set tukee ainutlaatuisia ei-nolla-elementtejä ja Listillä ei ole tätä rajoitusta. Joten jos haluan ainutlaatuisia elementtejä, käytän Setiä. Hän kysyi muita huomioita? Sanoin kokoelmalle suoritettavien kyselyjen tyypin. Kuten haku. Hän kysyi jotain esimerkkiä? Sanoin – työntekijöiden tietokanta. Työntekijöiden on oltava yksilöllisiä, jotta voimme käyttää Listaa ja hakua binäärihaulla tai vastaavalla tekniikalla, koska ne yleensä lajitellaan jossain järjestyksessä. Mutta luulen, että hän oli odottanut O(1)-hakuaikavastausta tai Set. Selitin HashMapin ja HashSetin toiminnan ja kuinka se auttaisi kehittäjää saavuttamaan helposti elementtien ainutlaatuisuuden, mutta haastattelija ei ollut vakuuttunut vastauksestani hänen alkuperäiseen kysymykseensä.
    3. Mikä on yhtäläisten()- ja hashCode()-sopimus? Entä jos toinen ohitetaan, mutta toinen ei?
    4. Etsi toinen minimi annetusta taulukosta .
    5. Etsi kääntöpiste lajitetusta ja kierretystä taulukosta.
    6. Onko minulle kysyttävää?
    Kierros 2
    1. Anna lyhyt esittely työkokemuksestasi.
    2. Anna yleiskatsaus viimeaikaisen projektisi suunnitteluun.
    3. Oletetaan, että minulla on käyttöliittymä, jossa on luettelo tai taulukko kohteista ja jokaisella tuotteella on voitto-attribuutti, alennusmäärite jne. Kuinka varmistaa, että useat käyttäjät eivät jätä minkään tuotteen tilaa epäjohdonmukaiseksi. Käyttäjä voi päivittää attribuutit tai joku muu verkkopalvelu voi tehdä saman. Ehdotin kohteen setter-menetelmien synkronointia. Hän kysyi, kuinka tavarat lajitellaan. Sanoin, että kohteet sijaitsevat taulukkoluettelossa, ja otin käyttöön vertailukelpoisen käyttöliittymän. Hän pyysi toimivaa koodia. Kun kirjoitin lausekkeen võrdleTo()-menetelmän sisään, hän sanoi, että suunnittelu ei ole joustava, koska on olemassa kovaa lajittelukriteerien koodausta. Hän sanoi, että kun joku haluaa lajitella toisen attribuutin mukaan, niin monien päällekkäisten objektien hallinta tulee mahdottomaksi. Sanoin, että voimme tehdä sen Factory Method Patternilla. Tällä hän käytännössä lopetti haastattelukierroksen. Jossain välissä hän oli maininnut Comparator-käyttöliittymän ja selitin hänelle, kuinka se toimii. Sanoin, että se on hyvä valinta, jos ei halua muokata olemassa olevia luokkia. Luulen, että hän odotti vertailu()-menetelmän toteutusta, koska se ei vaatisi päällekkäisiä objekteja ja lajittelu eri kriteerien mukaan voidaan tehdä yksinkertaisesti toteuttamalla Comparator eri luokissa yksi luokka jokaiselle lajittelukriteerille ja sitten kutsumalla Collections-luokan sort()-metodia tuon Comparator-toteutuksen kanssa.
    4. Onko minulle kysyttävää?
    Käskettiin lähteä päiväksi. Neuvo: Älä esitä suunnittelumalleja, ellei sinua pyydetä tekemään niin tai sinulla on kokemusta suunnittelumallien ongelmien ratkaisemisesta. Kuuntele haastattelijaa ja ole valpas. Ne antavat vihjeitä. Myös 1. kierroksella olin tehnyt virheen kierrettyyn taulukkokysymykseen. Hän antoi testitapauksen, jossa koodini epäonnistui. Korjasin sudenkuopan. Nuku riittävästi ennen haastattelupäivää. Kaikki Goldman Sachsin harjoitusongelmat ! Luo tietokilpailu