logo

Zkušenosti z rozhovoru Goldman Sachs | Sada 19

Měl jsem rozhovor s GS v jejich kanceláři v Bengaluru. Mám 4 roky zkušeností s vývojem full stacku pomocí Javy. Volal mi poradce.
    1. kolo
    1. Jaké koncepty vám v Javě vyhovují? Řekl jsem sbírky. Zeptal se, které třídy sběru jste použili? Řekl jsem HashMap ArrayList a HashSet.
    2. Kdy byste použili Set a kdy seznam? Řekl jsem, že sada podporuje jedinečné nenulové prvky a seznam toto omezení nemá. Takže pokud chci jedinečné prvky, použiji Set. Zeptal se na něco jiného? Řekl jsem typ dotazů, které mají být provedeny na kolekci. Jako hledání. Ptal se na nějaký příklad? Řekl jsem – databáze zaměstnanců. Zaměstnanci musí být jedineční, abychom mohli používat Seznam a vyhledávat binárním vyhledáváním nebo podobnou technikou, protože jsou obecně řazeni v určitém pořadí. Ale myslím, že očekával odpověď času vyhledávání O(1) nebo Set. Vysvětlil jsem fungování HashMap a HashSet a jak to pomůže vývojáři snadno dosáhnout jedinečnosti prvků, ale tazatel nebyl mou odpovědí na jeho původní otázku přesvědčen.
    3. Jaká je smlouva equals() a hashCode()? Co když jeden je přepsán, ale druhý nikoli?
    4. .
    5. Najděte otočný bod v seřazeném a otočeném poli.
    6. Nějaký dotaz na mě?
    2. kolo
    1. Uveďte stručný úvod o své pracovní zkušenosti.
    2. Uveďte přehled návrhu svého nedávného projektu.
    3. Předpokládejme, že mám uživatelské rozhraní, kde je seznam nebo tabulka položek a každá položka má atribut zisku, atribut slevy atd. Jak zajistit, aby více uživatelů neponechalo stav žádné položky nekonzistentní. Uživatel může aktualizovat atributy nebo totéž může udělat nějaká jiná webová služba. Navrhl jsem synchronizaci metod nastavení položky. Zeptal se, jak věci třídit. Řekl jsem, že položky budou umístěny v seznamu polí a implementoval jsem rozhraní Comparable. Požádal o funkční kód. Když jsem psal výraz do metody CompareTo(), řekl, že návrh není flexibilní, protože existuje pevné kódování kritérií řazení. Řekl, že když někdo chce třídit podle jiného atributu, nebude možné spravovat tolik duplicitních objektů. Řekl jsem, že to můžeme udělat pomocí vzoru tovární metody. Tím fakticky ukončil kolo rozhovoru. Někde mezi tím zmínil rozhraní komparátoru a já mu vysvětlil, jak to funguje. Řekl jsem, že je to dobrá volba, pokud nechcete upravovat stávající třídy. Myslím, že očekával implementaci metody Compare(), protože to nebude vyžadovat duplicitní objekty a třídění podle různých kritérií lze provést jednoduše implementací Comparator v různých třídách jedné třídy pro každé kritérium řazení a poté vyvoláním metody sort() třídy Collections s touto implementací Comparator.
    4. Nějaký dotaz na mě?
    Bylo řečeno, aby na den odešel. Rada: Snažte se nevytahovat návrhové vzory, pokud o to nebudete požádáni nebo pokud nemáte zkušenosti s řešením problémů s návrhovými vzory. Poslouchejte tazatele a buďte ve střehu. Poskytují rady. I v prvním kole jsem udělal chybu v otázce otočeného pole. Poskytl testovací případ, kdy můj kód selže. Opravil jsem úskalí. Před dnem pohovoru se dostatečně vyspěte. Všechny praktické problémy pro Goldman Sachs ! Vytvořit kvíz