| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Java EE (J2EE) и Spring > Хочу поучавствовать в проекте за опыт. |
| Автор: Myryan 6.10.2009, 09:07 |
| Всем доброго времени. В последнее время в моей голове накопилась теоретическая информация, которую я пускаю в ход по мере поступления в нее же идей. Идеи далеки от коммерческих аналогов. Вот и возникло желание применить свой скромный багаж на серьезном проекте. Обещаю ответственно относиться к поставленной задаче. Имею представление о: j2se(swing, multithreading, jdbc, collections) Spring Hibernate Struts Javascript + Ajax(prototype, jquery) GWT DB: postgres, mysql XML. Заранее, благодарен. |
| Автор: necromancer 6.10.2009, 10:17 |
| а имеешь ли ты представление о: 1 Subversion 2 Java Code Convention 3 Tomcat 4 MySQL тригерах, хранимках, вьюхах 5 HTML 6 CSS 7 JavaScript Теоритически можно тебя включить в проект. Напиши свой возраст, вуз и чем занимался до этого |
| Автор: Myryan 6.10.2009, 13:11 |
| Использовал в своих проектах все, кроме тригеров и хранимых процедур для мускула. Хранимые и виды юзал под постгрес. Мне 26 лет, закончил Санкт-Петербургский государственный морской технически университет. Кафедра автоматизированных корабельных комплексов и информационно-управляемых систем В джаве 4 года, до этого были С#, perl, vba. Работаю в КБ, пишу для местных нужд. Делал страничку в нете на джаваскрипте. Писал игры под свинг и j2me. |
| Автор: necromancer 7.10.2009, 09:20 |
| Ну с таким опытом можно уже устраиватся Ява программистом на платной основе. To Moderator: может перенести тему в совместные проекты или куда получше? |
| Автор: Myryan 7.10.2009, 11:16 |
| Либо я плохо собеседуюсь, либо всем нужны прожженые программеры. Недавно пытался найти работу - безуспешно. Если нет записи в трудовой, то это усложняет задачу в разы. Вот и подумал набраться опыта, что б эта запись не имела значения. Так что вы думаете на счет моей кандидатуры? |
| Автор: Eric_Cartman 7.10.2009, 15:07 | ||
try again =) |
| Автор: Myryan 7.10.2009, 20:18 |
| Спасибо за совет) след. попытка где-то через полгода. |
| Автор: Andrey1 8.10.2009, 13:29 |
| Можешь помочь мне в серьезном проекте: нужно настроить Spring секъюрити для приложения на ZK http://zkoss.org |
| Автор: Myryan 8.10.2009, 20:14 |
| К сожалению, я не знаком со spring security. Думаю, что освоение займет не изветсное количество время. |
| Автор: necromancer 9.10.2009, 09:09 |
| =) вот и весь пар вышел =) смотри ты говоришь хочу поучавствовать - тебе говорят давай впеерд. Но ты тут же отвечаешь нт, мне лениво/нет времени и т.п. Я сам ленивый =) но ты противоречишь сам себе. |
| Автор: 4EJIOBEK 9.10.2009, 09:43 |
| удалено |
| Автор: Myryan 9.10.2009, 09:50 |
| Я не говорю, что ленивый! Я лишь хотел донести, что мне понадобится время на освоение spring security, ибо не разу его не трогал. НЕ верно выразился, это может быть ;) Учавствовать я готов и даже обеими руками за! |
| Автор: initmax 9.10.2009, 10:38 | ||
Вот Вам списочек вопросов, которые чаще всего задают на собеседовании. Подготовьтесь и пройдёте. 1. Типы данных в Java. Заполнить таблицу соотвествии типа и битовости. Например, char 16-bit, byte 8-bit, ... 1.1 Что такое класс Object? Какие в нем есть методы? 2. Что такое метод equals(). Чем он отличается от операции ==. 3. Если вы хотите переопределить equals(), какие условия должны удовлетворяться для переопределенного метода? 4. Если equals() переопределен, есть ли какие-либо другие методы, которые следует переопределить? 5. Для чего нужен метод hashCode()? 6. Какая связь между hashCode и equals? 6.1 Расскажите о методах wait, notify, notifyAll. Как они применяются, когда, зачем нужны? Что такое synchronized? 6.2 Что такое finalize? Зачем он нужен? Что Вы можете рассказать о сборщике мусора и алгоритмах его работы. 6.3 Почему метод clone объявлен как protected? Что необходимо для реализации клонирования? 6.4 Какие есть модификаторы (доступа и остальные)? Что такое volatile и transient? Для чего и в каких случаях можно было бы использовать default? 6.5 Vector vs. ArrayList. В чем отличие. 7. Каким образом реализованы методы hashCode и equals в классе Object? 8. Что будет, если переопределить equals не переопределяя hashCode? Какие могут возникнуть проблемы? 9. Есть ли какие-либо рекомендации о том, какие поля следует использовать при подсчете hashCode? 10. Как вы думаете, будут ли какие-то проблемы, если у объекта, который используется в качестве ключа в hashMap изменится поле, которое участвует в определении hashCode? 11. Какие модификаторы доступа в Java вы знаете? 12. Какой из модификаторов более строгий: protected или package-private? 13. Если у класса-родителя есть метод, объявленный как private, может ли наследник расширить его видимость? А если protected? А сузить видимость? 14. Что означает ключевое слово final? 15. Имеет ли смысл объявлять метод private final? 16. Какие особенности инициализации final переменных? 17. Что будет, если единственный конструктор класса объявлен как final? 18. Что означает ключевое поле static? 19. К каким конструкциям Java применим модификатор static? 20. Что будет, если в static блоке кода возникнет исключительная ситуация? 21. Можно ли перегрузить static метод? 22. Что такое статический класс, какие особенности его использования? 23. Какие особенности инициализации final static переменных? 24. Какие типы классов бывают в java (вложенные… и.т.д.) 25. Каким образом из вложенного класса получить доступ к полю внешнего класса. 26. Какие особенности создания вложенных классов: простых и статических. 27. Каким образом можно обратиться к локальной переменной метода из анонимного класса, объявленного в теле этого метода? Есть ли каке-нибудь ограничения для такой переменной? 28. Какие вы знаете способы запустить некоторое действие в отдельном потоке? 29. Какие вы знаете способы прекратить выполнение потока? 30. Какие ключевые слова Java, связанные с многопоточностью Вы знаете? 31. Для чего используется ключевое слово syhcronized? 32. Есть некоторый метод, который исполняет операцию i++. Переменная i типа int. Предполагается, что код будет исполнятся в многопоточной среде. Следует ли синхронизировать блок? 33. Что служит в качестве mutex, если метод объявлен synchronized? 34. Можно ли вызвать в разных потоках два synchronized метода одного и того же объекта? 35. Что используется в качестве mutex, если метод объявлен static synchronized? Можно ли создавать новые экземпляры класса, пока выполняется static synchronized метод? 36. Объясните, что такое deadlock? Приведите пример кода, который демонстрирует deadlock. 37. Для чего используется ключевое слово volatile? 38. Какие особенности использования метода wait? При каких условиях поток может выйти из режима ожидания? 39. Предположим в методе run возник RuntimeException, который не был пойман. Что случится с потоком? Есть ли способ узнать о том, что Exception произошел (не заключая все тело run в блок try-catch)? Есть ли способ восстановить работу потока после того как это произошло? 40. Какие стандартные инструменты Java вы бы использовали для реализации пула потоков? 41. Какие виды исключений в Java вы знаете, чем они отличаются? 42. Назовите несколько классов из вершины иерархии исключений в Java. 43. Что такое Error? В каком случае используется Error. Приведите пример Error’а. 44. Какая конструкция используется в Java для обработки исключений? 45. Возможно ли использование блока try-finally (без catch)? 46. Предположим, есть блок try-finally. В блоке try возникло исключение и выполнение переместилось в блок finally. В блоке finally тоже возникло исключение. Какое из двух исключений “выпадет” из блока try-finally? Что случится со вторым исключением? 47. Всегда ли исполняется блок finally? 48. Могли бы вы придумать ситуацию, когда блок finally не будет выполнен? 49. Предположим, есть метод, который может выбросить IOException и FileNotFoundException в какой последовательности должны идти блоки catch? Сколько блоков catch будет выполнено? 50. Предположим вам необходимо создать свой собственный класс Exception. Какими мотивами вы будете руководствоваться при выборе типа исключения: checked/unchecked? |
| Автор: necromancer 9.10.2009, 10:55 |
| супер! прочитал вопросы =)))) на некоторые с ходу ответ в голову не пришел =))) например битность я уже давно не вспоминал =))) Зато то что BigDecimal в Oracle конвертируется не правильно намного интереснее =) и возможные способы решения этой проблемы быол бы интересно послушать от кандидата =)))) или что такое Pool и чем он полезен главное не это, главное что бы голова соображала =) Из личной практики: На собеседованиях задают действительно дурацкие вопросы из Core Java или из того, что на самом деле НЕ используется в текущих проектах и никогда использоватся не будет. Бывают задают задачки аля - веревка и спичка =) Простите если проект под веб и потоками ОБЫЧНО управляет контейнер, то зачем ваять synchronized, static etc? Наличие этих слов в веб проекте сигнализирует о том что это проблемный проект =))))) А еще нужно понимать что не только вы должны понравится работодателю но и он и его проекты должены нравится вам =) Мне кажется для программиста основные знания и умения - это находить решения (пусть не всегда сразу правильные) и пользоваться google =))) При том обилии фреймворков и нароботок которое есть в Java запомнить все фишки JDK просто нереально =) Фух высказался =))) PS Помню в дойче банке меня пытали по вопросу как устроен HashMap =) ощущение что они пытались его написать =) PSS Могу запостить примерный список вопросов которые я задавал кандидатам =) |
| Автор: Myryan 9.10.2009, 11:19 |
| Вопросы и впрямь бываю разные. На одном из собеседований меня спросили код символа пробел в Аски. Или сколько всего шаблонов в программинге? Сколько будет 1234 в 16-ричной системе исчесления? Просили назвать 4 метода из класса object. Решить последовательность 1 2 6 * 1806. Вопросы про эксепшены тоже были. Вопросы можешь запостить, интересно. Но это все повествование, а что касается дела? Что насчет поучавствовать в проекте? |
| Автор: necromancer 9.10.2009, 12:01 |
| тебе уже дали проект, договаривайся с этим человеком |
| Автор: Myryan 9.10.2009, 12:24 | ||||
| ок. Вспомнил еще одну интересную вещь. Спрашивали почему вот так делать не хорошо.
Получается, что при каждой следующей итерации в пуле строк создается новая строка, а ссылка на предыдущую теряется. Но если скомпилить и посмотреть .class файл декомпилером, то код превращается:
Что ж получается, что никаких новых строк не создается, а получается одна строка, содержащее необходимое нам значение. То есть, если мы уходим от объектной логики и используем примитивы, то, в случае со String, StringBuilder является как бы оберткой для String? То есть происходит autoboxing для строки и пул строк остается красивым и невредимым? |
| Автор: necromancer 9.10.2009, 13:06 | ||||
| проблема не в создании новой строки как таковой =) а в том что идет утечка памяти =) и то что он автоматом подставил StringBuilder вовсе не означает, что в реальных условиях произойдет то же самое. ну и в целом new StringBuilder() - тоже создание объекта и помещение в него массива символов. что по сути в данном случае эквивалентно созданию новой Строки =) просто идет на 2 операции со строками меньше =) Добавлено @ 13:10 А вообще тема профилирования это отдельная статья расходов вместе с рефакторингом =))) Кстати вот о чем бы я еще спросил это о Java Code Convention и Refactoring =) А так же тенденции в использовании новых "фич" языка =) мало кто задумывался что
медленне чем
почти в 2 раза =) ладно бы еще медленнее, так код становится менее читабельным ИМХО ;) |
| Автор: magicfly 9.10.2009, 15:35 | ||
| будьте добры подкиньте еще вопросов. а так ?
Так тоже медленно? |
| Автор: necromancer 9.10.2009, 15:43 |
| вместо того что бы спрашивать возьмите и замерьте и все станет ясно =) |
| Автор: Myryan 9.10.2009, 16:07 | ||
| Вот сижу на работе делать нечего. Решил провести эксперимент:
Результат говорит сам за себя. Время добавления: 390 Время чтения(без итератора): 16 Время чтения(c итератором): 31 Время чтения(for each): 32 |
| Автор: Shurr 12.10.2009, 13:02 | ||||||
А лучше все же не "взять и замерить", а "взять и почитать" на тему того, как именно работает данная конструкция, и каким боком к ней привязан интерфейс Iterable. Тогда станет понятно, должна ли она работать быстрее, или нет. |
| Автор: necromancer 12.10.2009, 16:32 |
| почитать это одно =) а на практике убедиться совсем другое далее вы 100% уверены что все что написано именно так и работает? тогда вы аналитик, а не программист =))) |
| Автор: serghd 13.10.2009, 19:58 |
| какой ещё списочек вопросов? ну вы даёте. Лучшее тестирование знаний кандидата это дать ему работу и поставить сроки. Успел и хорошо сделал - значит принят. А всякими вопросами такими только психологическое давление хорошо оказывать, а полезного ничего. |
| Автор: necromancer 15.10.2009, 17:32 |
| Лучшее тестирование знаний кандидата это дать ему работу и поставить сроки. в этот момент вы как работодатель попадаете на деньги. Есть даже такой способ аферы. Список вопросов в первую очередь дает возможность оценить знания кандидата перед такими же безликими кандидатами. Не будете же вы всем ставить задачи и ждать сроков |
| Автор: fantomst 14.11.2009, 17:02 |
| Myryan, ты уже нашел себе проект? |
| Автор: COVD 14.11.2009, 18:14 | ||
Работодатель "попадает на деньги" в любом случае. Это бизнес. А выбрать, с кем из претендентов на вакансию рискнуть, помогает собеседование, резюме, сертификаты с дипломами. Чрезмерное увлечение тестами иногда происходит от высокомерного недоверия к системе образования, дипломам, резюме. Иногда это средство самоутверждения для тестирующего. |
| Автор: Myryan 16.11.2009, 15:43 |
| 2fantomst: да. |
| Автор: CaligoSpiritus 17.11.2009, 00:29 |
| Тогда темку пора и закрывать. А я-то надеялся тебя в свой проект заполучить |
| Автор: AlexeyVorotnikov 17.11.2009, 10:18 |
А что у вас за проект? |
| Автор: Myryan 17.11.2009, 10:31 |
| Поздновато вы батенька. Тема то когда была создана ;) |
| Автор: Shaggie 17.11.2009, 16:04 | ||||||
| Какую тему проспал! Знаю, что поздно, но мимо такого вброса пройти не могу.
Во-первых, можно использовать типизированный for, и с синтаксисом всё будет нормально. Кстати, внутри "более читабельного" цикла придётся много и с удовольствием кастовать руками. Во-вторых, у этого быстрого кода есть свои проблемы. Самая очевидная - замена коллекции, например, на LinkedList. Гораздо более весёлая в отладке - последовательное удаление удовлетворяющих некоторому требованию элементов списка через метод remove(). В-третьих, новички и так для любой задачи втыкают ArrayList и бьются за каждый такт процессора, как раз сложнее бывает отучить их оптимизировать каждый чих. В-четвёртых, на практике предельное быстродействие, выдаваемое прямым перебором элементов ArrayList, применить мне понадобилось ровно один раз, и там речь шла о почти реалтаймовой обработке большого количества данных. Обычные задачи все как одна решаются посредством итераторов безо всяких проблем с производительностью. |
| Автор: CaligoSpiritus 17.11.2009, 22:59 | ||
Планируемые технологии: Серверная часть Spring Framework 3.0 (DI, persistence, MVC) SpringSource dm server, Persistence (ещё не определился - что именно), БД (изначально MySQL, затем, после публичного теста, если нужно будет, то PostgreSQL или даже Oracle) Клиентская часть Flash AS3, Adobe AIR, HTML(наверное, будет использоваться какой-нибудь простенький template engine) Суть проекта открыть пока не могу. Сам по себе проект коммерческий, однако во-первых, заказчик пока ещё окончательно не определился - хочет ли он заказать его у меня или приобрести готовое решение. Кроме того проект носит и образовательный характер, так как из перечисленного я работал серьёзно лишь со Spring DI, Oracle (PL/SQL и Spring JdbcTemplate) и немного с MySQL Вообще говоря, помощь со стороны я привлекать не собираюсь, после прочтения этой темки, родилась такая шальная идея, не знаю, на сколько она может себя оправдать. Так как для привлечения стороннего программиста, мне нужно будет жёстко модуляризировать систему, чтобы я мог передать этому человеку лишь часть проекта и не раскрывать полностью исходники. При этом я понимаю, что найти человека, которому будет интересно такое предложение довольно проблематично, труден и процесс разбивания проекта на подобные модули. Однако эти мысли, к сожалению, пришли в голову уже после того, как я отписался в теме |
| Автор: Juggernaut 18.11.2009, 10:11 |
| Давно хочу понабраться с опыта с PostgreSQL или Oracle )) Я бы с Вами поработал, если бы удалось подобрать технологии, которые мне интересны. От себя могу предложить Spring (DI,MVC, немного Security), Hibernate, MySQL, MSSQL, Freemarker Template Engine. Все использовано в коммерческой разработке. |
| Автор: polosatij 18.11.2009, 20:43 | ||
очень бы хотелось понять, каким именно образом (если естъ опыт, или даже пусть есть какие-то мысли) ты хочешь это сделать меня очень сильно интересует эта тема |
| Автор: polosatij 19.11.2009, 21:23 | ||
где об этом можно почитать? мне казалось, что обращение к get(i) делается через такой же итератор. как насчёт нового синтаксического сахава в ява 5 и скорости в for? |
| Автор: polosatij 24.12.2009, 15:47 | ||||||
твой пример, как мне кажется, абсолютно не коректен. у тебя пустые операции внутри for, что не гарантирует то, что ява компилятор уберёт мусор. вот пример:
а вот результат: add: 217 without iterator: 164 with iterator: 42 for each: 29 кто сказал тут, что get(x) будет работать быстрее? |