|
|
Opublikowano 08.01.2019 09:17:25
|
|
|

Tegoroczna droga poszukiwań pracy prawie się kończy, właściwie od miesiąca lub dwóch nie było rozmów kwalifikacyjnych, myślałem o tym albo zapisywałem następujące firmy, pamiętam tylko te, które pamiętam. Moje stanowisko to inżynier badawczo-rozwojowy w Javie, więc obejmuje ona wszystkie punkty wiedzy w tej dziedzinie.
Staż
1. Morgan Stanley
Pierwszy wywiad to Morgan... Rekruter jest bardzo miły, a główne pytania zadane: (1) Przedstawić projekt i opowiedzieć o części, którą wykonałeś (po przedstawieniu zdałem sobie sprawę, że to, co zrobiłem, było zbyt niskie i nadal muszę się przygotować) (2) Polimorfizm. W C++, funkcjach wirtualnych, przepisywaniu funkcji wirtualnych w klasach pochodnych, skąd mam wiedzieć w czasie rzeczywistym, w której podklasie działam? (3) Jakie są najczęściej używane zbiory w Javie? O: List, w tym ArrayList i LinkedList. ArrayList jest implementowany wewnętrznie przez tablice, które mogą zmieniać długość. LinkedList to implementacja listy powiązanej i nie można jej zmieniać w długości. P: Czy masz na myśli, że zazwyczaj definiujesz długość LinkedList, powiedzmy 10, a potem ją przekraczasz? O: Nie, nie jest konieczne określanie długości LinkedList, jeśli nie jest ona zdefiniowana, to maszyna powinna decydować, ile przestrzeni LinkedList może maksymalnie otworzyć. Dodaję dane w takim zakresie, w jakim potrzebuję. P: Jeśli jest wiele, wiele operacji dodawania, jakie problemy napotkasz? Nie da się dodać nieograniczonej przestrzeni dla Ciebie O: Tak... Jest więc pewien zakres, myślę, że powinien to być określony przez maszynę, ile miejsca może mieć maksymalna liczba LinkedList, maszyny 32-bitowe i 64-bitowe powinny się różnić (Meng, właściwie nie wiem). P: Czy są jeszcze jakieś kolekcje, z których regularnie korzystasz? Odpowiedź: Ustaw głównie HashSet, TreeSet, LinkedHashSet, a następnie wyjaśnij różnice między tymi trzema P: Przeanalizuj złożoność HashSetów i TreeSetów, insertów, wyszukiwań itp. Odpowiedź: HashSet powinien być powiązany ze swoim hashem, jeśli to zwykły kod skrótu, może powodować wiele konfliktów, przez co lista powiązana będzie dłuższa, a przeszukiwanie listy powiązanej będzie wolniejsze, ale używasz metod optymalizacji do rozwiązywania konfliktów, takich jak wykrywanie wtórne lub coś podobnego, redukuje konflikty, powinno być szybsze, czerwono-czarne drzewo używane wewnątrz TreeSet, kolejność wyszukiwania i wstawiania powinna być O(log(N))... To kolejne pytanie... Nie pytałem więcej.
|
|