|
|
Публикувано в 8.01.2019 г. 9:17:25 ч.
|
|
|

Тазгодишното търсене на работа почти приключи, всъщност няма интервю от месец-два, мислих за това или записвах следните компании, помня само тези, които мога да си спомня. Позицията ми е инженер по Java R&D, така че включва всички знания в тази област.
Стаж
1. Морган Стенли
Първото интервю беше с Морган... Интервюиращият е много любезен, а основните въпроси са задавани: (1) Въведете проекта и разкажете за частта, която сте направили (след представянето осъзнах, че това, което направих, е твърде ниско и все още трябва да се подготвя) (2) Полиморфизъм. В C++, виртуални функции, пренаписване на виртуални функции в производни класове, как да разбера по време на изпълнение в кой подклас работя. (3) Кои са най-често използваните колекции в Java? О: Списък, включително ArrayList и LinkedList. ArrayList се реализира вътрешно чрез масиви, които могат да променят дължината. LinkedList е реализация на свързан списък и не може да бъде променяна по дължина. В: Имате предвид, че обикновено определяте дължината на LinkedList, например 10, и след това я надвишавате? О: Не, не е необходимо да се посочва дължината на LinkedList, ако не е дефинирана, машината трябва да определя колко място може да освободи най-много вашият LinkedList. Просто добавям данни, доколкото ми е нужно. Въпрос: Ако има много, много операции за добавяне, какви проблеми ще срещнете, невъзможно е да се добави неограничено пространство за вас О: Да... Така че има определен диапазон, мисля, че трябва да се определя от машината колко място може да има максималният LinkedList, 32-битовите и 64-битовите машини трябва да са различни (Менг, всъщност не знам). Въпрос: Има ли други колекции, които използвате редовно? Отговор: Set, главно HashSet, TreeSet, LinkedHashSet, и след това обяснете разликите между тези три В: Анализирайте сложността на HashSets и TreeSets, вмъквания, търсения и др. Отговор: HashSet трябва да е свързан с хеша си, ако е просто обикновен хеш код, може да предизвика много конфликти, така че свързаният списък ще бъде по-дълъг и ще бъде по-бавен за преминаване през свързания списък при търсене, но използваш оптимизационни методи за решаване на конфликти, като вторично откриване или нещо подобно, намаляваш конфликтите, трябва да е по-бързо, червеното и черното дърво, използвано в TreeSet, редът на търсене и вмъкване трябва да е O(log(N))... После идва друг въпрос... Не питах повече.
|
|