2011-12-28 3 views
2

Я хочу изучить Java, особенно для разработки Android, так как я получаю новый планшет, но также и для многих других вещей, которые может выполнять Java (Struts, разработка сети, JWebSockets и другие). Я довольно опытный разработчик с PHP, Javascript и .NET, в основном (я бы сказал, что речь идет о промежуточном кодере).Изучение Java SE 5 теперь будет иметь отношение к SE 6, 7 и предстоящему 8?

Моя проблема в том, что я предпочитаю учиться на книгах, так как я чувствую, что они дают более всесторонний опыт обучения, чем пытаться собрать вместе целую кучу учебников. Мне также нравится читать технические книги! Тем не менее, я нашел книгу, которая выглядит хорошо для меня в магазине книжных книг со скидкой под названием «Learning Java, 3rd Ed». Нимейера и Кнудсена. Похоже, именно то, что я ищу, поскольку он, похоже, не является книгой-новичком, которая тратит более 500 страниц, объясняя OO, переменные и методы. Но это для Java SE 5!

Итак, теперь есть версия Java SE 6, SE 7, и я думаю, что есть даже бета-версия SE 8. Насколько далеко он заставляет меня изучать библиотеку классов Java (и вообще как программировать Java) Java SE 5?

Я нашел этот вопрос: How difficult is it to learn Java SE 6 from J2SE 5.0?, но похоже, что речь шла только о Java SE 5 против SE 6. Но теперь скоро будет еще 2 версии. Я также просмотрел списки функций новых версий, но не зная языка лучше, я не могу сказать, насколько важны новые версии, или если они в основном синтаксический сахар. В лучшем случае мне просто нужно будет, возможно, прочитать несколько руководств по обновлению разработчиков, или, в худшем случае, мой SE 5-код ​​сломается в SE 6, 7 или 8? Любая помощь приветствуется!

ответ

3

Для чего это стоит, Java 7 была только recently released, и я не ожидал, что Java 8 будет выпущена в ближайшее время.

С точки зрения Java-версий релиз от Java 1.4 до Java 5 был самым большим изменением, на мой взгляд - достаточно того, что Sun начал ссылаться на Java 1.5 как «Java 5». Это была версия, в которой были представлены новые основные функции, такие как Generics, Annotations и т. Д.Переход от Java 5 дальше не будет таким большим, как изменение, по сравнению с предыдущими версиями; в основном Java 6 & 7 добавьте в стандартные библиотеки, а также новый синтаксический сахар, такой как try-with-resources.

В любом случае, я бы сказал, зайдите в книгу. Java 5 - хороший старт, и как только вы понимаете язык, вы можете перейти к новым функциям, которые предоставляют Java 6 & 7, например java.util.concurrency, nio, blah, blah, blah ...

+1

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

+0

Теперь, спустя несколько лет, оказалось, что Java 8 имеет столько же новых, как Java 5. Знание Java 5 по-прежнему важно и полезно. –

+0

Определенно! Я не знаю, рекомендую ли я сейчас покупать книгу Java 5 в 2016 году ;-) –

2

Java 6 имеет некоторые значительные улучшения в библиотеке по сравнению с Java 5, но мало изменений в синтаксисе за пределами некоторых улучшений в том, как аннотации выполняются, поэтому не составит труда подобрать 6 поэтапно.

Java 7 и (скорее всего) 8 намного больше изменений, но вы, вероятно, изучаете их одновременно с остальной частью сообщества Java. Java 7 все еще находится на раннем этапе цикла внедрения.

+1

Java 7 имеет несколько более значительные изменения? Все интересные вещи, запланированные для Java7, были отброшены до 8, на мой взгляд :((модули, в основном лямбда). Есть ли что-то помимо алмазного оператора и строковых коммутаторов, которые я забываю? Оба являются «хорошими», но тривиальными для изучения и не так много времени. – Voo

+0

@Voo. Например, 'java.nio.file' включает полную переписку о том, как происходит взаимодействие файловой системы, включая события файловой системы. Это не постепенное изменение библиотеки, которое основывается на старых знаниях. –

+0

Уверен, но это все еще библиотека, дополняющая меня, так как вы также можете написать асинхронную структуру ввода-вывода в Java5 (по крайней мере, я думаю, вы могли бы?). Если мы говорим об улучшениях в библиотеке, нет никаких сомнений в том, что Java6 был большой шаг вперед - например, параллельные коллекции тоже получили хороший пересмотр. Но, по-моему, язык отличается от нас тем, что мы были довольно застойными с Java5. – Voo

1

Я не думаю, что Oracle сделает все, что сломает код Java 5 в более поздних версиях Java, при условии, что вы не использовали никаких проприетарных или устаревших API.

В отношении Android у него есть собственный набор библиотек, которые не полностью совпадают с любой конкретной версией Java, предлагаемой Oracle. Изучение Java 5, а затем ознакомление с обучающими программами Android и, наконец, поиск API, когда вам это нужно, должно быть достаточно для Android.

1

Различия между языками Java5 и Java6/7 минимальны. В Java7 есть новый синтаксический сахар (давайте посмотрим: оператор Diamond, строковый переключатель, .. не могу думать ни о чем другом) в Java7, но об этом.

Java5 уже включает в себя самые важные изменения в Java за долгое время: общие и перечисления.

Единственное, что действительно улучшилось с помощью Java6/7 (особенно 6), это поддержка библиотеки: в JDK есть много классов, которые вы не найдете в Java5, но это не должно вас слишком беспокоить при обучении язык.