Amazon Interview
-
- Уже с Приветом
- Posts: 116
- Joined: 12 Dec 2012 15:39
Amazon Interview
Всем привет.
Я из Израиля.
Хотел поделиться опытом телефонного интервью с Амазон.
В процессе некто по имени Удам поверг меня в шок утверждая что
код такого типа на Java
DerivedClass dc = (DerivedClass)baseClassInstance;
выбросит compile time exception
Потом спрашивал какие то довольно тривиальные задачки про HashTable.
Меня терзают смутные сомнения...
Это пример того что на этом форуме называют индусским стилем...?
Может мы не поняли друг друга или просто он в своих делах но как-то не по себе стало.
Поделитесь мыслями плз
Спасибо.
Я из Израиля.
Хотел поделиться опытом телефонного интервью с Амазон.
В процессе некто по имени Удам поверг меня в шок утверждая что
код такого типа на Java
DerivedClass dc = (DerivedClass)baseClassInstance;
выбросит compile time exception
Потом спрашивал какие то довольно тривиальные задачки про HashTable.
Меня терзают смутные сомнения...
Это пример того что на этом форуме называют индусским стилем...?
Может мы не поняли друг друга или просто он в своих делах но как-то не по себе стало.
Поделитесь мыслями плз
Спасибо.
-
- Уже с Приветом
- Posts: 9035
- Joined: 25 Oct 2011 19:02
- Location: SVO->ORD->SFO
Re: Amazon Interview
Вы уверены, что это не были "трудности перевода"? Подозреваю, что интервьюирующий спрашивал:
BaseClass bc = new BaseClass();
DerivedClass dc = (DerivedClass)bc;
BaseClass bc = new BaseClass();
DerivedClass dc = (DerivedClass)bc;
-
- Уже с Приветом
- Posts: 4637
- Joined: 24 Oct 2009 01:38
- Location: Chicago ;-) -> SFBA!
Re: Amazon Interview
скомпилитсяdotcom wrote:Вы уверены, что это не были "трудности перевода"? Подозреваю, что интервьюирующий спрашивал:
BaseClass bc = new BaseClass();
DerivedClass dc = (DerivedClass)bc;
In vino Veritas!
-
- Уже с Приветом
- Posts: 15475
- Joined: 27 Sep 2007 22:53
Re: Amazon Interview
Не экономьте на заваркеtieboss wrote:Всем привет.
Я из Израиля.
Меня терзают смутные сомнения...
Спасибо.
-
- Уже с Приветом
- Posts: 9035
- Joined: 25 Oct 2011 19:02
- Location: SVO->ORD->SFO
Re: Amazon Interview
Естественно. Интервьюер говорил про exception... а, вижу. А что таке compile time exception? Там, чувствую, двойные "трудности перевода" были.crypto5 wrote:скомпилитсяdotcom wrote:Вы уверены, что это не были "трудности перевода"? Подозреваю, что интервьюирующий спрашивал:
BaseClass bc = new BaseClass();
DerivedClass dc = (DerivedClass)bc;
-
- Уже с Приветом
- Posts: 64661
- Joined: 12 Jul 2002 16:38
- Location: г.Москва, ул. Б. Лубянка, д.2
Re: Amazon Interview
я стар и туп в жабе, но 100 лет назад некошерный кастинг обычно выбрасывал run-time exceptions, а компилился ок.
-
- Уже с Приветом
- Posts: 15475
- Joined: 27 Sep 2007 22:53
Re: Amazon Interview
а если потомок пустой - тоже в отказ?
А как поведет себя Java-аналог CRTP?
А как поведет себя Java-аналог CRTP?
-
- Уже с Приветом
- Posts: 17281
- Joined: 07 Sep 2011 10:05
- Location: Seattle, WA
Re: Amazon Interview
Compile-time exception, это наверное когда компилятор крешаетсяdotcom wrote:Естественно. Интервьюер говорил про exception... а, вижу. А что таке compile time exception? Там, чувствую, двойные "трудности перевода" были.crypto5 wrote:скомпилитсяdotcom wrote:Вы уверены, что это не были "трудности перевода"? Подозреваю, что интервьюирующий спрашивал:
BaseClass bc = new BaseClass();
DerivedClass dc = (DerivedClass)bc;
-
- Уже с Приветом
- Posts: 3647
- Joined: 23 May 2010 15:10
Re: Amazon Interview
+1Komissar wrote:я стар и туп в жабе, но 100 лет назад некошерный кастинг обычно выбрасывал run-time exceptions, а компилился ок.
тоже не врубаюсь, Base пытаются приравнять к Derived, конечно падать в runtime должно, если по ссылке Base не лежит Derived или DerivedDerived
-
- Уже с Приветом
- Posts: 3647
- Joined: 23 May 2010 15:10
Re: Amazon Interview
он это спрашивал, если хотел запутать автора и ожидал от него ClassCastExceptiondotcom wrote:Вы уверены, что это не были "трудности перевода"? Подозреваю, что интервьюирующий спрашивал:
BaseClass bc = new BaseClass();
DerivedClass dc = (DerivedClass)bc;
-
- Уже с Приветом
- Posts: 9035
- Joined: 25 Oct 2011 19:02
- Location: SVO->ORD->SFO
Re: Amazon Interview
Традиционный вопрос на основы. Но стороны видимо не поняли друг друга.Alexandr wrote: он это спрашивал, если хотел запутать автора и ожидал от него ClassCastException
-
- Уже с Приветом
- Posts: 3647
- Joined: 23 May 2010 15:10
Re: Amazon Interview
Ну, в таких случаях не мешает полностью проговаривать свои соображения, чтобы интерьер понимал, правильно ли его вопрос поняли или нетdotcom wrote:Традиционный вопрос на основы. Но стороны видимо не поняли друг друга.Alexandr wrote: он это спрашивал, если хотел запутать автора и ожидал от него ClassCastException
-
- Уже с Приветом
- Posts: 15475
- Joined: 27 Sep 2007 22:53
Re: Amazon Interview
А как поведет себя такая конструкция - тоже вывалится при кастовании?
class Generic<T> {}
public class CuriouslyRecurringGeneric extends Generic<CuriouslyRecurringGeneric> {}
class Generic<T> {}
public class CuriouslyRecurringGeneric extends Generic<CuriouslyRecurringGeneric> {}
-
- Уже с Приветом
- Posts: 4637
- Joined: 24 Oct 2009 01:38
- Location: Chicago ;-) -> SFBA!
Re: Amazon Interview
Вы приведите околожизненный пример когда такие знания могут понадобиться.Мальчик-Одуванчик wrote:А как поведет себя такая конструкция - тоже вывалится при кастовании?
class Generic<T> {}
public class CuriouslyRecurringGeneric extends Generic<CuriouslyRecurringGeneric> {}
In vino Veritas!
-
- Уже с Приветом
- Posts: 3647
- Joined: 23 May 2010 15:10
Re: Amazon Interview
да тот же ClassCastException, вы же не оставляете в "интерфейсе" класса параметризацию, а прячете ее в глубь наследования, соответственно, и ругнуться на этапе компиляции оно не может. На этапе выполнения все тот же баян по приведению базового (не только ссылка, но и объект по ней) к производному.Мальчик-Одуванчик wrote:А как поведет себя такая конструкция - тоже вывалится при кастовании?
class Generic<T> {}
public class CuriouslyRecurringGeneric extends Generic<CuriouslyRecurringGeneric> {}
-
- Уже с Приветом
- Posts: 3647
- Joined: 23 May 2010 15:10
Re: Amazon Interview
к предыдущему посту - это я домыслил, что вызывать вы его будете также как и в примерах выше
-
- Уже с Приветом
- Posts: 15475
- Joined: 27 Sep 2007 22:53
Re: Amazon Interview
Про джаву не скажу а в плюсах сплошь и рядом. В ATL к примеру.crypto5 wrote:Вы приведите околожизненный пример когда такие знания могут понадобиться.Мальчик-Одуванчик wrote:А как поведет себя такая конструкция - тоже вывалится при кастовании?
class Generic<T> {}
public class CuriouslyRecurringGeneric extends Generic<CuriouslyRecurringGeneric> {}
-
- Уже с Приветом
- Posts: 15475
- Joined: 27 Sep 2007 22:53
Re: Amazon Interview
Но в самои-то коде такого базового класса кастование к производному должно быть по умолчанию?Alexandr wrote:к предыдущему посту - это я домыслил, что вызывать вы его будете также как и в примерах выше
-
- Уже с Приветом
- Posts: 3647
- Joined: 23 May 2010 15:10
Re: Amazon Interview
Сплошь и рядом - это называется реализация статического полифорфизмаМальчик-Одуванчик wrote:Про джаву не скажу а в плюсах сплошь и рядом. В ATL к примеру.crypto5 wrote:Вы приведите околожизненный пример когда такие знания могут понадобиться.Мальчик-Одуванчик wrote:А как поведет себя такая конструкция - тоже вывалится при кастовании?
class Generic<T> {}
public class CuriouslyRecurringGeneric extends Generic<CuriouslyRecurringGeneric> {}
Только шаблоны в C++ и генерики особенно в Java - вещи сильно разные
-
- Уже с Приветом
- Posts: 3647
- Joined: 23 May 2010 15:10
Re: Amazon Interview
ну если дописать что-то типаМальчик-Одуванчик wrote:Но в самои-то коде такого базового класса кастование к производному должно быть по умолчанию?Alexandr wrote:к предыдущему посту - это я домыслил, что вызывать вы его будете также как и в примерах выше
Code: Select all
class Generic<T> {}
class CuriouslyRecurringGeneric extends Generic<CuriouslyRecurringGeneric> {}
class CuriouslyRecurringGeneric2 extends CuriouslyRecurringGeneric {}
Code: Select all
CuriouslyRecurringGeneric a = new CuriouslyRecurringGeneric();
CuriouslyRecurringGeneric2 b = (CuriouslyRecurringGeneric2)a;
возможно автор имел немного другой вариант использования, когда Generic<T> будет общим, а в качестве параметра будут полиморфные классы использоваться. Но я пошел самым простым путем
-
- Уже с Приветом
- Posts: 116
- Joined: 12 Dec 2012 15:39
Re: Amazon Interview
так сильно не извращались
началось все действительно с основ.
т,е он спросил можно ли сделать
derived=base;
я сказал что вообще-то можно
base=derived
хотя можно и
derived=(derived)base;
но может произойти ClassCastException
на что он сказал что это будет ошибкой во время компиляции а не во время Runtime.
Хотя наиболее вероятно это что то из серии Lost In Translation...
началось все действительно с основ.
т,е он спросил можно ли сделать
derived=base;
я сказал что вообще-то можно
base=derived
хотя можно и
derived=(derived)base;
но может произойти ClassCastException
на что он сказал что это будет ошибкой во время компиляции а не во время Runtime.
Хотя наиболее вероятно это что то из серии Lost In Translation...
-
- Уже с Приветом
- Posts: 6969
- Joined: 26 Feb 2011 17:40
Re: Amazon Interview
Независимо от того, скомпилится данный кусок кода или нет, задавать такие вопросы на собеседовании - плохой тон имхо. Такие вопросы резко понижают желание там работать.
-
- Уже с Приветом
- Posts: 3647
- Joined: 23 May 2010 15:10
Re: Amazon Interview
какие мы нежные
-
- Уже с Приветом
- Posts: 3647
- Joined: 23 May 2010 15:10
Re: Amazon Interview
чем вопрос плохой?