Советы по переходу с С# на Java?
Итак, я собираюсь на собеседование на следующей неделе на Java-сайте, и мне бы хотелось, чтобы мы не встретили это как невежественное. Я довольно уверенный разработчик С#/.NET и я (ясно!) Готов рассмотреть возможность перехода на Java на Java - мне бы хотелось получить ссылки на ресурсы, которые люди порекомендуют для этого. Меня интересуют ответы на такие вопросы, как:
- Любые руководства, которые являются грубыми эквивалентами Justin Etheridge Ruby для разработчиков С#? Это было действительно полезно, когда я решил, что хочу узнать рубинский грабли (и, по крайней мере, немного рубинов). Кажется, есть больше страниц для людей, идущих в другую сторону, хотя...
- Какую IDE использовать? Я на самом деле уже купил свой собственный IntelliJ, потому что мне нравится его HTML/CSS/JS, но он не коснулся его фактического смысла, ну, "этот материал Java". Однако я подозреваю, что место, где я собираюсь использовать Eclipse. Итак - рекомендуемые ресурсы для запуска и работы на Mac или Windows (я не суетливый)?
- Вероятно, это будет интервью по кодированию TDD; Я думаю, что JUnit - это де-факто выбор, чтобы немного узнать об этом здесь.
Спасибо заранее.
Ответы
Ответ 1
Посмотрите эту ссылку, в которой подробно описаны различия между двумя языками.
Что касается IDE, многие люди, такие как Eclipse или Netbeans (Мой любимый) - оба являются бесплатными. Поскольку вы уже владеете IntelliJ, вы можете попробовать это.
FYO некоторые из основных отличий:
- Отсутствие свойств/автоматических свойств
- Нет типа "события" (другой способ борьбы с событиями)
- синтаксис цикла foreach
- Реализация "Generics"
- Проверенные исключения
и, возможно, еще много:)
Ответ 2
IDE
Вы получили IntelliJ. Верьте мне, что это лучше всего. Я использовал его в течение двух лет, затем пришлось переключиться на какую-то бесплатную штуку. Я пробовал Eclipse, это была боль, без обид, просто рассказывающая вам мой опыт. Теперь, работая с Netbeans, и я очень доволен, но все же пропущу IntelliJ один раз в день.
TDD
Да, вы очень правы в JUnit. После достаточного понимания, хорошо смотреть на другие специализированные библиотеки, такие как HtmlUnit, DBUnit. Кроме того, инструмент покрытия кода, такой как Cobertura, или Emma. Поскольку вы должны пойти с IntelliJ, вам, вероятно, захочется проверить Эмму, поскольку она имеет хорошую интеграцию с IDEA.
Переход
Я не думаю, что вам будет сложно пережить. ИМО, читая документы и спецификации, вы поймете. Может быть, вы можете пойти на несколько книг по дороге, но, насколько ядро Java обеспокоено, чтение документов и спецификаций API будет хорошим началом. Вы можете использовать SO, чтобы задать вопрос. Я видел много вопросов, таких как "эквивалент С# в Java".
Ответ 3
Поскольку у вас есть только одна неделя, я бы повторил рекомендацию сосредоточиться на вещах, отмеченных эффективной Java.
Знайте API коллекций. Когда я беседую с людьми, это один из способов избавить людей. Осознайте разницу между equals()
, hashCode()
и compareTo()
, и что нужно для их правильной реализации.
Знайте, как обрабатывать исключения в Java и как он взаимодействует со стандартными транзакциями EJB.
Если вам посчастливилось приземлиться на работу, я бы потратил некоторое время на знакомство с ландшафтом J2EE, который довольно обширен. В эти дни я бы рассмотрел основы J2EE как EJB, MDB, сервлетов и JPA.
Я бы не стал так беспокоиться об IDE или API xUnit. Эти вещи тривиальны для любого достойного разработчика с опытом.
Ответ 4
Netbeans - лучшая (и наиболее похожая визуальная студия) IDE для разработчиков Java. Вам понравится, если у вас будет достаточно ОЗУ.
Ответ 5
Если у вас есть неделя - попробуйте написать как можно больше кода Java.
Мне было очень легко перейти с Java на С#, и он должен быть тем же самым способом.
Возьмите копию Эффективной Java и прочитайте ее - это действительно хорошо.
Ответ 6
Как вы уже упоминали, для IDE вы должны рассмотреть Eclipse, который является бесплатным и достойным IDE для базовой разработки. Однако, если вы собираетесь работать с Java EE, этого может быть недостаточно, но это поможет вам быстро изучить основы.
Есть много книг, которые охватывают базовый синтаксис и стиль программирования, и любой, предполагая, что вы хороший разработчик С#, вероятно, будет достаточно, чтобы вы начали. Я не знаю ни одной из сторон вашего типа.
Недавно я сделал переход в обратном направлении, перейдя от Java к С#. Я обнаружил, что переписывание существующего приложения на новом языке значительно упростило его, чем я думал.
Ответ 7
Я думаю, что самое большое различие - это сообщество и окружающая среда, окружающая две платформы. В мире .NET Microsoft принимает большие решения и откатывает набор функций. С другой стороны, в мире Java существует много сторонних библиотек, которые почти дополняют платформу, и вы должны знать их, если вы находитесь в определенном развитии. См. Наиболее полезные бесплатные библиотеки Java.