Pull to refresh

Comments 17

во второй задаче другой ответ, подумайте :)
во второй задаче при смене модификатора protected на private класс наследник B не получит доступа к этому методу.при смене на паблик-ничего не изменится.иными словами-протектед-доступ из класса и подклассов.приват-доступ только из классов.паблик-доступ отовсюду
глупый вопрос-а на каком собеседовании такие "интересные" задачи?))и если вы являетесь столь активным проводителем собеседований-то не могли бы сказать,что еще может ожидать на них?
Одно время я к себе в команду подбирал программистов, составлял разные задачи. Если Вам нужна работа, посмотрите на наши вакансии: http://habrahabr.ru/job/3749/, http://habrahabr.ru/job/3381/
Если цель поднять свой уровень, почитайте ru_java, вроде этого - http://community.livejournal.com/ru_java…
Также можно посмотреть вакансии по java на сайтах компаний, например, яндекса.
Да интересные задачки.

Когда меня собеседовствали в свое время то там была вот такая интересная задачка:
«Вывести числа от 1 до 10, не используя циклы, повторяющиеся конструкции, и дублирование». Не все сразу догадались как это сделать. Некоторые вообще не догадались. :-)

А вообще считаю что это все бред, потому что использование всяких сложных и редких констукций языка это вредно и задачки такие не имеют практического применения. Реально доказывает лишь только то что человек реально понимает язык хорошо, но это еще не значит, что он может делать на нем великие вещи.

Я думаю нужно спрашивать программиста каким образом он может решить какие-нибудь конкретные задачи, например какой подход использовать в Java для разделения предметной области графического интерфейса и минимизации кодирования. Ориентировочный ответ: Использовать JGoodies binding и паттерн MVC :-), который, я уверен, является самым востребованым не только в desktop но и веб-приложениях.

Или например как организовать связку состояния веб-интерфейса пользователя с конкретным заходом на сайт.
боюсь что 2 задачи в топике - это явно не "сложные и редкие конструкции языка", это база языка (автор кстати так и написал). хорошее понимание языка необходимо для "делания великих вещей". это необходимое но не достаточное условие хорошего программиста:)

p.s. ответ на вашу задачу - рекурсия?:)
Да, рекурсия :-) Задача не моя ))) Я бы такую не дал. Не имеет она практического применения.

Еще раз глянул на задачки эти. Вот я protected вообще практически никогда не использую. Он нужен в лучшем случае только разработчикам фреймворков. :-)

Вообще если у человека возникают такие проблемы с явой как забывчивость по поводу того чем отличается public от private, то это наверно не программист а студент, попавший в руки фирмы пытающейся заработать на юнце килодоллар другой.

Вообще при переопределении методов принято писать аннотацию @Override в случае переопределения методов, которая словиться компилятором в случае с private.
чорт, я бы вместо рекурсии ответил бы
System.out.print("1 2 3 4 5 6 7 8 9 10");
засчитали бы? :)
Нет. ))

Вот хороший пример. Для решения задачи использовать самую очевидную вещь. А тут программисты сами себе придумывают непонятные ограничители ))
Чем мы не разработчики фреймворков? :)
Мне, действительно, приходилось часто собеседовать студентов, а среди них выявить потенциально сильных программистов гораздо труднее, чем искать среди сформировавшихся.
Один из программистов очень любил static'ки. Знал все о них, даже что не знали другие. Везде применял. Другие программисты тоже знали статики но применять их было очень неудобно - код был очень зависим от статиков. Протестировать такой код и отделить было очень тяжело.

Отсюда вопрос нужны ли вообще статики в яве? ))

В перле есть 1001 способ сделать одно и тоже ))

Есть клевая книга — Kent Beck. Implementation Patterns, думаю там перечислены истинные ценности кода.
1 - очевидно дл человека, кто хоть раз писал try-catch-finally
2 - надо подумать, да
кстати вот еще неплохой вопрос на базу языка(что то вроде):

public static void main(String[] args) {


String str1 = "abcd";
String str2 = "abc" ;
String str3 = "abcd";

str2 += "d";

System.out.println(str1 == str3);

System.out.println(str1 == str2);

System.out.println(str1.intern() == str2.intern());

}

собственно вопрос - что выведется?
о, а варианта с intern() я ещё не встречал, спасибо!
мало встречал собеседований, где про intern не заходила речь
Sign up to leave a comment.

Articles