Turėjau interviu su GS jų biure Bengaluru. Turiu 4 metų patirtį kuriant pilną krūvą naudojant Java. Man paskambino konsultantas.
1 turas
Kokios sąvokos jums patogios „Java“? Aš sakiau, kad kolekcijos. Jis paklausė, kokiomis kolekcijų klasėmis naudojotės? Sakiau HashMap ArrayList ir HashSet.
Kada naudotumėte Set ir kada sąrašą? Sakiau, kad rinkinys palaiko unikalius nenulinius elementus, o sąrašas neturi šio apribojimo. Taigi, jei noriu unikalių elementų, naudosiu Set. Jis paprašė kokių nors kitų svarstymų? Pasakiau užklausų, kurias reikia atlikti rinkinyje, tipą. Kaip paieška. Jis paklausė kokio nors pavyzdžio? Sakiau – darbuotojų duomenų bazė. Darbuotojai turi būti unikalūs, kad galėtume naudoti sąrašą ir ieškoti dvejetaine paieška arba panašia technika, nes paprastai jie yra surūšiuoti tam tikra tvarka. Bet manau, kad jis tikėjosi O(1) paieškos laiko atsakymo arba Nustatyti. Aš paaiškinau, kaip veikia HashMap ir HashSet ir kaip tai padėtų kūrėjui lengvai pasiekti elementų unikalumą, tačiau pašnekovo neįtikino mano atsakymas į jo pradinį klausimą.
Kas yra lygybės() ir hashCode() sutartis? Ką daryti, jei vienas yra nepaisomas, bet kitas ne?
Raskite antrą minimumą duotame masyve .
Suraskite sukimosi tašką surūšiuotame ir pasuktame masyve.
Klausimas man?
2 turas
Trumpai pristatykite savo darbo patirtį.
Pateikite savo naujausio projekto dizaino apžvalgą.
Tarkime, kad turiu vartotojo sąsają, kurioje yra prekių sąrašas arba lentelė, o kiekviena prekė turi pelno atributą, nuolaidos atributą ir tt Kaip užtikrinti, kad keli vartotojai nepaliktų nenuoseklios bet kurios prekės būsenos. Vartotojas gali atnaujinti atributus arba tą patį gali padaryti kita žiniatinklio paslauga. Pasiūliau sinchronizuoti elemento nustatymo metodus. Jis paklausė, kaip rūšiuoti daiktus. Pasakiau, kad elementai bus masyvo sąraše ir įdiegiau palyginamą sąsają. Jis paprašė darbo kodo. Kai parašiau išraišką palyginimo() metodo viduje, jis pasakė, kad dizainas nėra lankstus, nes egzistuoja griežtas rūšiavimo kriterijų kodavimas. Jis sakė, kad kai kas nors nori rūšiuoti pagal kitą atributą, bus neįmanoma valdyti tiek daug pasikartojančių objektų. Pasakiau, kad galime tai padaryti naudodami gamyklinio metodo modelį. Tuo jis iš esmės nutraukė pokalbio etapą. Kažkur tarp jų jis paminėjo Comparator sąsają ir aš jam paaiškinau, kaip ji veikia. Sakiau, kad tai geras pasirinkimas, jei nenorite keisti esamų klasių. Manau, kad jis tikėjosi palyginimo () metodo įgyvendinimo, nes tam nereikės pasikartojančių objektų, o rūšiavimą pagal skirtingus kriterijus galima atlikti tiesiog įdiegus Comparator skirtingose klasėse po vieną klasę kiekvienam rūšiavimo kriterijui ir tada iškviečiant kolekcijų klasės sort() metodą su tuo Comparator diegimu.
Klausimas man?
Liepė išvykti šiai dienai. Patarimas: stenkitės nekelti dizaino modelių, nebent jūsų paprašys tai padaryti arba turite patirties sprendžiant su dizaino raštais susijusias problemas. Klausykite pašnekovo ir būkite budrūs. Jie pateikia užuominų. 1 ture taip pat padariau klaidą pasuktame masyvo klausime. Jis pateikė bandomąjį atvejį, kai mano kodas nepavyks. Ištaisiau spąstą. Prieš pokalbio dieną pakankamai išsimiegokite. Visos „Goldman Sachs“ praktikos problemos ! Sukurti viktoriną