Программирую на Java вот уже 7 лет. Но на работе часто приходится обучать новое поколение. В связи с этим и решил сделать некоторую шпаргалку, которая, надеюсь, пригодится и для хабрчан. Если кто-то может помочь дополнить чем-то информацию из этой статьи, то пишите! Итак:
Основные ресурсы для начального обучения
www.javable.com — сайт со статьями и tutorial'ом по Java. Все в основном на русском.
www.exampledepot.com — очень полезный ресурс, где собраны краткие примеры использования классов для тех или иных пакетов
java.sun.com — без первоисточника не обойтись. Для любого Java программиста JavaDoc должен быть истиной в последней инстанции. Так же здесь можно найти серию tutorial'ов на все возможные темы.
Основные Java пакеты
Ниже приведён список Java пакетов, в которых программист должен свободно ориентироваться. Знакомиться с ними рекомендуется как по JavaDoc'ам, так и с помощью www.exampledepot.com. Все пакеты выстроены в рекомендуемом порядке для изучения. Итак:
java.lang — основа основ. Каждый класс в этом пакете нуждается в отдельном внимании.
java.io — ни одна программа не может обойтись без операций с вводом-выводом.
java.util — пакет в основном содержит все необходимое для работы с коллекциями: Collection, Enumeration, Set, List, Map и т. д. и т. п.
java.net — содержит основные классы для работы с сетью.
java.text — все необходимое для форматирования текста
java.lang.reflect — Java не была бы Java'ой если бы не Reflection. Reflection стирает грань между данными и кодом.
javax.sql — все необходимое по работе с базами данных
onjava.com — рано или поздно все новости мира Java попадают сюда
www.javaspecialists.eu — ресурс полезен как новичкам, так и продвинутым программистам, так как содержит много статей о тонкостях работы с Java.
www.theserverside.com — рекомендуется подписаться на RSS, так как часто проскакивают весьма интересные вещи по Java.
Java Библитеки, которые должны знать все
Java не заканчивается знаниями лишь о возможностях JSDK. Чтобы чувствовать себя комфортно необходимо знать еще десятка два сторонних библиотек, используемых Java программистами повсеместно. Итак, начнем с основных:
Commons Logging — логирование должно быть грамотным. За System.out.println для вывода логов начинающим программистам уже через неделю обучения следует отрубать руки.
Commons Net — логическое продолжение для пакета java.net. Множество классов для работы с основными сетевыми протоколами.
Commons VFS — отличная библиотека для абстрагирования от способа хранения файла. Позволяет достаточно обобщено иметь доступ до файлов по FTP, SFTP, WEBDAV, (G)ZIP и т. д.
Commons IO — работа с вводом-выводом часто получается весьма муторной, но с этой библиотекой все становится несколько веселее.
HttpClient — библиотека по работе с http ресурсами.
JUnit — любой код, должен сопровождаться тестированием. Для автоматизации тестирования и предназначена эта библиотека.
На этом пока все. Если подобные шпаргалки по Java вам интересны, то могу так же выложить свою коллекцию «простейших» задач по Java, которые ориентированы, на то, чтобы быстро освоить основные пакеты Java.
Если подобные шпаргалки по Java вам интересны, то могу так же выложить свои коллекцию «простейших» задач по Java, которые ориентированы, на то, чтобы быстро освоить основные пакеты Java.
Буду Вам очень благодарен если вы сделайте это:) Просто в скором времени придётся тоже разбираться с этим языком
самому писать аннотации обычно не приходится, зато постоянно с ними сталкиваешься при работе с Hibernate, EJB3, Spring и т. п. Так что советую смотреть сразу на примере работы того или иного фрэймворка.
Рекомендую вот эту статью: www.developer.com/java/other/article.php/3556176
Но, как верно написал ancalled, часто работаешь именно с «чужими» аннотациями, а следовательно надо смотреть уже в нужной библиотеке:)
и еще, думаю нелишне будет упомянуть суперкнигу Joshua Bloch Effective Java — ИМХО это must-read для начинающего (и не только) Java программиста. Хотя книги это тема для отдельного поста конечно
Поскольку на основных-java библиотеках далеко не уедешь, молодому java-программисту почти сразу приходится вникать в дебри различных фрэймворков и прочих технологических решений, коих в Java мильон, от чего у молодого неокрепшего организма могут начинаться различные java-неврозы, java-спазмы и даже java-фобии))
Сразу посоветую не гнаться за всеми технологиями сразу, а постепенно разбираться, начиная с самых основных.
Касательно EJB3, лучше сразу найти книгу «Mastering Enterprose JavaBeans 3.0», например здесь или здесь и попробовать разобраться в туториалах к ней (можно тут)
Spring — можно смотреть сразу и смело Reference Documentation, ну и начинать изучать простые примеры, опять же, вроде этого.
Хороший ресурс (для более или менее продвинутых java-разработчиков): in.relation.to — блог таких монстров, как Gavin King-а (один из создателей Hibernate и Seam), Emmanuel Bernard, Christian Bauer и т. д.
У меня опускаются руки, когда я слышу вопросы от новичков из серии «Я хочу стать Java-программистом. Какую IDE мне скачать: эклипс или идею? ». Либо «Я хочу начиться делать веб-сайты на Java. И даже уже нашёл и создал Struts-проект в идее. Что делать дальше?».
Мой совет: до тех пор, пока вы не научитесь без страха писать программы в блокноте, компилировать и запускать их из консоли, даже не садитесь за IDE.
Ребята, как же вы забыли про see.stanford.edu?
Это полный набор компьютерных курсов Стенфорда. Видеозаписи и листинги лекций, раздачка, домашние задания, контрольные…
Вообще там не только Java, но, например, курс Programming Methodology полностью посвящен программированию на Java.
Есть мнение что Commons Logging не стоит использовать. Несмотря на то что их много кто использовал (использует до сих пор, к сожалению), они не только решают проблемы, но и создают. Это связано с тем, что CL выбирает конкретную реализацию подсистемы логирования во время выполнения, это вызывает проблемы с загрузкой классов в контейнерах сервлетов и j2ee серверах. Подробности легко находятся в гугле. Например: www.qos.ch/logging/classloader.jsp www.bileblog.org/2003/08/the-evils-of-commons-loggingjar-and-its-ilk/
Взамен CL можно использовать старый добрый log4j, который подобных проблем не имеет, или реализацию логирования входящую в современные JDK (пакет java.util.logging). Для любителей переключать реализацию логирования есть проект slf4j. В нем выбор реализации логироваиния осуществляется во время развертывания приложения (включением в classpath нужного JAR), и он свободен от проблем CL.
Единственный минус, ИМХО, который доставляет неудобства — это генерируемое в случае ошибки инициализации исключение org.apache.commons.logging.LogConfigurationException. Проблемы в подсистеме логирования не должны «мешать» работе основного кода.
Еще одна замечательная книга по Swing, с хорошими примерами и объяснениями работы gui И. Портянкин — «Swing: Эффектные пользовательские интерфейсы.» Ознакомиться можно здесь.
Если кому будет инетересно, есть такой сотрудник фирмы Sun Microsystems — Java Evangelist по имени Sang Shin.
В свободное время он проводит большое число тренингов по Standard и Enterprise Java; отдельным технологиям и фреймфоркам (Struts, Ajax etc).
Можно заниматься с группой — при этом проверяются домашние задания, даются ответы на вопросы.
Можно учиться самому, все презентации, задания, примеры есть на сайте.
Адрес сайта: www.javapassion.com
комментарии (57)
Буду Вам очень благодарен если вы сделайте это:) Просто в скором времени придётся тоже разбираться с этим языком
Особенно понравилось это Начинаем с начала, или 'Hello, Java World!'. Рекомендую всем жаверам. И начинающим и опытным =)
самому писать аннотации обычно не приходится, зато постоянно с ними сталкиваешься при работе с Hibernate, EJB3, Spring и т. п. Так что советую смотреть сразу на примере работы того или иного фрэймворка.
docs.jboss.org/ejb3/app-server/tutorial/
www.laliluna.de/ejb-3-tutorial-jboss.html
А так же рекомендую почитать и саму спецификацию:
java.sun.com/products/ejb/docs.html
Я тут пытался вспомнить, а как же я сам изучал EJB3… И пришел к выводу, что, о ужас(!), делал я это именно по спецификации.
Так же рекомендую EJB3 смотреть в совокупности с Jboss Seam — это просто потрясающий фреймворк!
www.developer.com/java/other/article.php/3556176
Но, как верно написал ancalled, часто работаешь именно с «чужими» аннотациями, а следовательно надо смотреть уже в нужной библиотеке:)
http://java.sun.com/docs/books/tutorial/
www.javapractices.com/home/HomeAction.do
Полезные практики, из разряда «объекты для сессии должны быть Serializable», «закрывайте потоки», «не пишите пустые трай-кетчи» и т. п.
https://www.ibm.com/developerworks/ru/java/ — много статей (на русском)
Из форумов, имхо, наиболее живые это:
javatalks.ru
forum.vingrad.ru/forum/java-forum.html
www.sql.ru/forum/actualtopics.aspx?bid=38
Спасибо.
ru.sun.com/java/education/index.html
Сразу посоветую не гнаться за всеми технологиями сразу, а постепенно разбираться, начиная с самых основных.
Касательно EJB3, лучше сразу найти книгу «Mastering Enterprose JavaBeans 3.0», например здесь или
здесь и попробовать разобраться в туториалах к ней (можно тут)
По hibernate можно почитать Reference Guide, Java Persistence with Hibernate или сразу попробовать какой-нибудь простенький туториал вместе с веб-компонентами, вроде этого
Spring — можно смотреть сразу и смело Reference Documentation, ну и начинать изучать простые примеры, опять же, вроде этого.
Хороший ресурс (для более или менее продвинутых java-разработчиков): in.relation.to — блог таких монстров, как Gavin King-а (один из создателей Hibernate и Seam), Emmanuel Bernard, Christian Bauer и т. д.
www.mobilab.ru/forum/viewforum.php?f=6 — форум j2me.
От себя хочу добавить пару слов.
У меня опускаются руки, когда я слышу вопросы от новичков из серии «Я хочу стать Java-программистом. Какую IDE мне скачать: эклипс или идею? ». Либо «Я хочу начиться делать веб-сайты на Java. И даже уже нашёл и создал Struts-проект в идее. Что делать дальше?».
Мой совет: до тех пор, пока вы не научитесь без страха писать программы в блокноте, компилировать и запускать их из консоли, даже не садитесь за IDE.
Это полный набор компьютерных курсов Стенфорда. Видеозаписи и листинги лекций, раздачка, домашние задания, контрольные…
Вообще там не только Java, но, например, курс Programming Methodology полностью посвящен программированию на Java.
www.qos.ch/logging/classloader.jsp
www.bileblog.org/2003/08/the-evils-of-commons-loggingjar-and-its-ilk/
Взамен CL можно использовать старый добрый log4j, который подобных проблем не имеет, или реализацию логирования входящую в современные JDK (пакет java.util.logging). Для любителей переключать реализацию логирования есть проект slf4j. В нем выбор реализации логироваиния осуществляется во время развертывания приложения (включением в classpath нужного JAR), и он свободен от проблем CL.
JCL уже начиная с версии 1.0.5 лишён большинства проблем, обнаруженных далёком 2002-м году. Остались только фундаментальные проблемы с загрузкой и использованием общих данных/классов, касающиеся любой библиотеки в целом.
Единственный минус, ИМХО, который доставляет неудобства — это генерируемое в случае ошибки инициализации исключение org.apache.commons.logging.LogConfigurationException. Проблемы в подсистеме логирования не должны «мешать» работе основного кода.
В свободное время он проводит большое число тренингов по Standard и Enterprise Java; отдельным технологиям и фреймфоркам (Struts, Ajax etc).
Можно заниматься с группой — при этом проверяются домашние задания, даются ответы на вопросы.
Можно учиться самому, все презентации, задания, примеры есть на сайте.
Адрес сайта:
www.javapassion.com
Если там зарегистрироваться, то станет доступна версия для печати/кпк. Довольно удобно.