Самоучитель по языку программирования java. Обучение программированию на Java

Изучение программирования - сложная задача для людей, далеких от данной отрасли. Начинающие программисты пытаются быстрее получить знания из видеоуроков и статей в интернете. Однако такой метод изучения не будет основательным без практики и параллельного освоения лучших книг по Java, которые можно подобрать, основываясь на опыте предшественников.

"Изучаем Java" - Кэти Сьерра, Берт Бэйтс

Head First Java подходит для тех, кто совершенно не разбирается в программировании. Этот учебник не даст углубленного понимания процессов создания кода, но дает возможность в нем ориентироваться, а также писать небольшие приложения.

Легко полученные знания служат как достоинством, так и недостатком книги, поскольку в процессе обучения придется расширять знания за счет дополнительных источников информации. Задачи в учебнике слишком простые, а в некоторых главах отсутствуют вовсе.

Несмотря на недостатки книги, это лучшее решение для вступления в изучение языка. Материал в книге изложен максимально простым и живым языком. Для лучшего запоминания большая часть информации подается в виде визуальных образов.

Отдельно следует отметить и книгу «Java для чайников» Барри Берда. В книге описаны основные концепции Java, грамматика языка. Подробно рассказывается, как повторно использовать код, обрабатывать исключения, создавать апплеты Java. Также описаны принципы объектно-ориентированного программирования и рассказано, как избегать самых распространенных ошибок.

«Философия Java» - Брюс Эккель

Данное пособие подойдет в качестве дополнения к плану обучения. Материал излагается непоследовательно в виде раскрытия базовых концепций программирования на Java. В русскоязычной версии довольно много теории и практически нет ни задач, ни примеров кода.

Исходя из особенностей содержания, можно с уверенностью заявить, что это лучшая книга по Java, которую можно использовать в качестве настольного пособия. Так как книга раскрывает особенности объектно-ориентированного программирования - базового аспекта программирования в целом.

«Java 8. Руководство для начинающих» - Г. Шилдт

Материал подается в лаконичной форме: сначала раскрывается теория, которая дополняется примерами. По мере изложения предложенные задачи усложняются. Каждый раздел состоит из подпунктов, в которых описаны все возможности тех или иных средств для создания кода.

Несмотря на очевидные преимущества, в учебнике нет задач для самостоятельного решения. Любые разъяснения дополнены фрагментами кода таким образом, чтобы предугадывать события, которые они создают.

«Java 8. Руководство для начинающих» Герберта Шилдта подходит в качестве учебника, по которому можно постепенно постигать важнейшие азы языка. После изучения каждой главы лучше самостоятельно искать задачи, которые помогут закрепить полученные знания. Книга достаточно структурирована, чтобы использовать ее в качестве настольного справочника.

Кей Хорстманн, Гари Корнелл - «Java. Библиотека профессионала. Том 1. Основы»

Данная книга переиздана для Java SE 8, поэтому в ней содержится только свежая информация. Новичкам и практикующим программистам учебник полезен тем, что его база знаний максимально структурирована. Подробный разбор синтаксиса и множество дополнительной информации углубит знания о сущности языка и позволит отточить уже имеющиеся навыки.

Обучение программированию с нуля при помощи данной книги необходимо дополнять усиленной самостоятельной практикой, так как здесь ее попросту нет. Благодаря этому проще контролировать усвоение материала.

«Java. Методы программирования» - Блинов, Романчик

Учебник написан на академическом языке, а потому подойдет студентам, желающим поскорее изучить основы Java. В первой части излагается суть объектно-ориентированного программирования, работа с классами и базовый синтаксис. Вторая часть включает работу с библиотеками, коллекциями, сетевые и многопоточные приложения.

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

«Язык программирования Java» - Кен Арнольд, Джеймс Гослинг

Особенность книги заключается в том, что обучает языку Java один из его разработчиков. Информация подана в предельно сжатой форме, благодаря чему учебник уступает по объему своим аналогам.

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

«Программирование на Java для детей, родителей, дедушек и бабушек» - Яков Файн

Это пособие позволит научиться основам создания кода всем желающим. По заверению автора, изучать данную книгу можно с 11 лет. И содержимое отлично подтверждает данную теорию.

В книге предельно простым языком описаны правила запуска кода, работа с редактором, процесс компиляции файлов. Основы ООП и синтаксиса представлены в разговорном стиле, который помогает объяснить функционирование языка на примере бытовых вещей. Написание программ представляется в виде игровых упражнений.

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

«Эффективное программирование» - Джошуа Блох

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

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

«Java. Объектно-ориентированное программирование» - Алексей Васильев

Здесь собрана вся база знаний, необходимая для написания приложений любого уровня. В первой части описаны средства, с помощью которых можно создавать простые консольные программы. Особое внимание в книге уделяется созданию приложений с графическим интерфейсом. Для более профессионального подхода к программированию стоит изучить и вторую часть.

Книга зарекомендовала себя как наиболее полное пособие, которое подходит для освоения в пределах образовательной программы вуза. Собранная в структуру информация с подробными примерами и задачами для практики делает эту книгу по Java лучшей для студентов технических направлений. Вся теория изложена в стиле методических пособий, но стиль изложения не затрудняет ее освоение.

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

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

Каждая книга по Java для чайников может принести какую-либо новую информацию. Поэтому чтение профессиональной литературы — краеугольный камень совершенствования навыка наряду с регулярным процессом интенсивной практики написания кода.

От автора: на этом языке программирования работает примерно 3 миллиарда смартфонов, 125 миллионов телевизоров и все до единого Blu-Ray проигрыватели в мире. Этот язык регулярно занимает призовые места в рейтингах разработчиков ПО и является самым востребованным среди крупнейших IT-компаний. Он является техническим феноменом и работает абсолютно на любом устройстве, что соответствует его принципу «написал один раз - запускай везде» (WORA - «write once, run anywhere»). Кто догадался, поднимите руки! Конечно же, это язык Java. И сегодня я раскрою вам все карты и расскажу всю правду о том, как стать Java программистом с нуля! Устраивайтесь поудобнее!

Несколько фактов о Java

Дабы не утомлять вас длинными теоретическими проповедями, я сгруппировал некоторые сведения о Java в списочек, после прочтения которого вы получите озарение понимание того, что это за язык такой, и какова его роль в дикой природе программировании:

Java - это «модный» и кроссплатформенный язык программирования. Он работает на любом устройстве с любой операционкой. На нем написаны все Google и Android-приложения. Ни по одному другому языку вы не найдете столько информации и обучающих материалов;

официальная дата выпуска языка - 23 мая 1995 г. Изначально он задумывался для интерактивного кабельного телевидения, но «не срослось». Изобретателем Java является компания Sun Microsystems, которую в 2010 г. выкупила Oracle;

многие путают Java и JavaScript. Если вы хотите заниматься (веб-сайты, веб-приложения), то выбирайте второй вариант. Java - это back-end, т. е. разработка начинки приложений;

это объектно-ориентированный язык программирования, код которого выполняется специальной виртуальной java-машиной (JVM). В США примерно на 9 из 10 компьютеров установлена эта самая JVM;

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

Вы все еще здесь или побежали сделать себе чашку ароматного кофе? Тогда продолжим разговор о том, как стать Java программистом.

Установка программной среды

Как ни странно, у некоторых возникают проблемы уже на этапе установки программной среды Java. Для этого нужно перейти на официальный сайт компании-разработчика - Oracle. Ссылку на актуальную версию вы увидите в самом верху сайта. Вам нужны Java SE (Standard Edition) и Java Development Kit - набор инструментов для разработки. Обратите внимание, что существуют разные дистрибутивы под разные операционные системы.

Допустим, у нас Windows. Заходим в «Свойства системы» и смотрим, какая у нас система - 32-разрядная или 64-разрядная. Скачиваем файл, который подходит нам по разрядности. Если выберете неправильный дистрибутив, то при компиляции кода получите ошибку. После подтверждения Accept License Agreement нажимаем кнопку скачивания.

Каков инструментарий Java-разработчика?

Большую часть времени программист проводит в IDE (IntelliJ IDEA, Eclipse, WebStorm, NetBeans). IDE - это интегрированная среда разработки, специальный интерфейс для программирования. Он не только помогает при написании кода, но и упрощает использование других инструментов программирования. Некоторые советуют тем, кто хочет стать Java программистом с нуля, первые свои программы писать в обычном блокноте или Notepad++.

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

При командной работе, когда над одной программой работает сразу несколько человек, нужно обязательно использовать, так называемую, систему контроля версий (Perforce, Git, Subversion и т. д.). Впрочем, системы контроля версий очень удобны и при работе в одиночку.

Примерный алгоритм изучения Java

Изучение основ языка Java. Первый шаг - это развитие в себе навыков логического мышления и изучение фундаментальных понятий синтаксиса языка программирования. Вооружившись книгой, статьей или обучающим видео, научитесь создавать с помощью IDE или текстового редактора простые Java-объекты, в которых заложены различные варианты поведения, в зависимости от входных данных.

Разбор расширенных возможностей языка Java. На этом этапе изучите синтаксис, библиотеки и фреймворки, которые пригодятся вам при создании более сложных приложений с практическим уклоном. Хороший программист не только умеет пользоваться различными библиотеками, но и знает, как они устроены внутри. Кроме этого, такие понятия, как операции ввода/вывода, наследование и абстракции, сериализация, родовые типы, регулярные выражения, не должны быть для вас пустым звуком.

Современные тенденции и подходы в веб-разработке

Узнайте алгоритм быстрого роста с нуля в сайтостроении

Тонкости программирования. Ни в коем случае не брезгуйте тщательным изучением документации и жаргона Java-программирования. На этом этапе вы уже должны «мутировать» в зрелого программиста. Общайтесь с Java-гуру, которых вы найдете в тематических форумах и прочих средах, где собираются программисты. Показывайте им свой код, советуйтесь и советуйте другим - «накапливайте карму». Можете даже завести свой блог, публиковать на нем отрывки собственного кода и смотреть, что говорят о нем более опытные программисты.

Как начать программировать?

Для тех, кто собирается стать Java-программистом с полного нуля, я расскажу, как написать свою первую программу.
Итак, открываем любой текстовый редактор и записываем:

class HelloWorld { public static void main(String args) { System.out.println("Hello World!"); } }

class HelloWorld {

public static void main (String args ) {

System . out . println ("Hello World!" ) ;

Сохраняем файл под именем HelloWorld.java. Обращаю ваше внимание, что Java чувствительна к регистру, поэтому слова «helloworld» и «HelloWorld» являются разными. Если названия файла и класса в коде будут отличаться, то программа попросту не запустится. Кроме этого, важно, чтобы кодировка была ANSI.

Теперь мы должны скомпилировать программу, используя компилятор javac из JDK. Пока мы не установили среду разработки, будем компилировать с помощью командной строки cmd, вызвав ее из меню «Пуск». В появившемся окне набираем cmd и жмем Enter.

Если мы сохранили HelloWorld.java в папку Progа на диске C, то вписываем команду:

cd C : \ Prog а

и нажимаем Enter. Таким образом, мы изменили каталог на тот, где расположена наша программа. Затем вводим.

Общие сведения о программировании

Программирование- это процесс создания кода на каком-либо языке программирования, переводимого в файлы разных типов с помощью особой программы - транслятора.

8 крутых Youtube-каналов, которые помогут изучить Java

Существуют два типа трансляторов: компиляторы и интерпретаторы. Компилятор- это программа, переводящая текст, написанный на языке программирования, в какой-либо файл. Интерпретатор - это программа, способная переводить текст какой-либо программы в машинный код и одновременно выполнять ее.

Программирование на Java (он является компилирующим языком) имеет то преимущество, что код, написанный на данном языке программирования, переводится с помощью соответствующей программы-транслятора в так называемый байт-код, а он, в свою очередь, - в машинный код с помощью виртуальной машины Java (Java Virtual Machine, или просто JVM). Поэтому написанная на Java программа выполняема на любом компьютере с любой системой, лишь бы на нем была установлена виртуальная машина Java. Таким образом и обеспечивается одно из главных преимуществ языка Java - переносимость создаваемых на нем программ на компьютеры разных типов.

Программирование бывает двух типов: системное и прикладное .
Системное программирование позволяет нам программировать в системе, например в Windows, с целью решения глобальных задач.
Прикладное программирование направлено на создание прикладных программ, т.е. программ, выполняющих какую-то определенную функцию, например Microsoft Word, WordPad, Calculator и т.д. В этой книге мы будем заниматься прикладным программированием.

Основы программирования

Введение. Что такое JDK?

Введение. Что такое JRE?

Введение. Как установить JDK?

Введение. Как использовать JDK?

1. Типы программирования. Первые листинги.

2. Переменные и идентификаторы

3. Переменные и константы в Java

4. Литералы в Java

Все курсы программирования

5. Изучаем типы данных

6. Преобразовываем типы данных

7. Какие бывают операторы в языке Java

8. Массивы в Java

9. Управляющие структуры. Общие сведения о циклах

10. Конструкции выбора в языке Java

11. Инструкции выхода в Java

12. ООП, создание объектов

13. Конструкторы и блоки инициализации

14. Методы в Java

15. Наследование в Java

16. Интерфейсы

17. Вложенные классы и вопросы

18. Исключения в Java

19. Документирование кода

20. Полезные методы и контрольные вопросы

21. Пакеты в Java

22. Пакет java.lang

23. Пакет Java.util и вопросы

Поступить на факультет «Java-разработки»

24. Знакомимся с JBuilder

25. Настраиваем параметры программы

26. Создаем сами аплет на Java

27. Работа с палитрой компонентов в JBuilder 2005

28. Класс JButton из пакета javax. swing

29. Создание меню с помощью пакета java

30. Компоненты для работы с текстом в Java

31. Ползунок JSIider и индикатор в Java

32. Списки в Java

33. Работаем в в JBuilder 2005: компонент JScrollPane

34. Компонент JSplitPane и JTabbedPane

35. Формы и диалоговые окна в Java

36. Компоновки в Java и создание сервлетов

37. Мастера в JBuilder, а также вопросы к теме

38. Немного об HTML

39. Основы языка программирования JavaScript 1.5

40. Синтаксис языка JavaScript 1.5

41. Цикл for…in и функции в JavaScript

42. Работа с объектами в JavaScript

43. Встроенные объекты JavaScript

44. Подобъекты объекта document

45. Математический объект Math

46. Рисунки в HTML

47. Таблицы в HTML

48.Слои в HTML

49. Таблицы стилей CSS

Полезные сайты для java-программиста

Как научиться программировать на Java - полное руководство

Доброго времени суток всем!

В этой статье будет описываться создание 2D игры на Java. Сразу предупреждаю, вы должны хотя бы базово знать язык Java, поскольку на подробное объяснение каждой строки у меня нету времени. И очень прошу вас, не списывать просто код, а пытаться понять что означает каждая строка, и писать со смыслом. И еще, я использую Eclipse, но вы можете использовать любой IDE.

Задача:

Я планирую создать игру, напоминающую шутер с видом от 3 лица.

Начало:

Ну что, приступим!

Для начала создадим проект. Назовем его «Just game». И сразу создаем класс Display.java. В него пишем:

Теперь разберемся, что мы сделали.

мы создаем рамку, которая и будет отображаться при запуске нашей игры

устанавливаем операцию, которая будет происходить при нажатии на крестик. EXIT_ON_CLOSE - выйти из программы

устанавливаем нашей рамке максимальные размеры, убираем декорации(кнопки свернуть, закрыть, уменьшить/увеличить и т.п.), т.е. делаем игру на весь экран. Если вы хотите, чтобы игра не была бы на весь экран, то используйте:

Делаем рамку видимой

Только не забудьте, все настройки рамки надо писать до того, как вы сделаете её видимой

Ну чтож, теперь нажимаем «Run» и пробуем запустить нашу игру. Если все написано правильно, у вас не должны возникать ошибки и должно появиться пустое, серое окно.

Серое окно… Как скучно… Давайте создадим что-нибудь поинтереснее.

Создадим новый класс, под названием «Main». Main класс у нас будет являться панелью, которую мы вставим в рамку, по этому он должен расширять JPanel. (Для тех, кто не знает, расширять пишется как extends после названия класса)

Возвращаемся в класс Display и после настроек рамки, но перед установлением её видимости, пишем:

Вы спросите - «Ну и зачем мы это сделали?». Представьте себе картину. Эта картина и является конечная наша игра. А теперь представьте рамку. Без ничего внутри, просто пустую рамку. На ней ничего нельзя нарисовать, она бесполезна. Для этого, мы вставили в картину пустой лист, на котором программа в дальнейшем может рисовать картину. На этом закончим наше лирическое отступление и вернемся к классу Main.

Нам нужно осуществить отрисовку, по этому мы должны добавить метод paint. Для этого пишем:

Ну и для начала, можем написать внутри этого метода отрисовку линии. Для этого пишем:

Даааааа, не густо…

Давайте отрисуем какую-нибудь картинку. Например эту:

Для начала, нам нужно указать путь к картинке. Для этого не в методе paint, пишем:

(предварительно надо в наш проект скинуть картинку и назвать ее 2.png)

После этого удаляем строчку отрисовки линии, а вместо нее в метод paint пишем:

Разберемся поближе с методом drawImage, так как мы будем часто его затрагивать.

drawImage(картинка которую мы будем рисовать, которую мы объявили раннее, координата X с которой будет рисоваться картинка, координата Y с которой будет рисоваться картинка, paint);

Отдельно хочу поговорить о параметре paint. Лучше всего оставляйте его null. Я только однажды сталкивался, когда мне нужно было использовать paint. Это было когда я отрисовывал текст, и задавал ему размер шрифта. Но советую не лезть туда и использовать null.

Теперь запускаем программу, и видим:

Чего-то она маленькая, не правда ли? Давайте научимся увеличивать её размеры. Добавляем к drawImage() параметры так, чтобы вышло:

Получается:

Ну наконец-то. Теперь мы умеем любые картинки растягивать на весь экран. Но вот проблема. Метод paint вызывается только один раз. И как же его обновлять постоянно? Для этого существует очень полезная вещь - таймер. Давайте создадим его.

Для этого пишем:

(20 это частота с которой обновляется таймер, this- где выполнять метод при обновлении таймера
Это мы должны вписать сразу после строки определения класса, т.е. после:

Также, надо дополнить строку определения класса таким образом:

После прописывания этой строки, у вас название класса должно подчеркнуться красным. Чтобы это исправить, в самом конце класса добавьте метод:

Этот метод будет выполняться при обновлении таймера. В него мы должны написать repaint(); чтобы при каждом обновлении таймера у нас все элементы бы стирались, и нарисовывались заново.

Изучаем Java

Для этого, создаем конструктор класса Main и в него пишем:

После этого, можете не запускать программу, ведь в ней ничего не изменится. Давайте заменим текстуру домика на нормальную текстуру карты. Её вы можете нарисовать сами, либо скопировать у меня пробную:

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

И перед конструктором добавим:

И сходим еще в класс Display.java и там немного изменяем метод frame.add:

Таким образом, наша рамка будет передаваться в класс Main.java. Переходим в этот класс, и там где у нас метод paint() меняем строку drawImage() на:

Таким образом, теперь наша игра будет отрисовывать картинку на весь экран, в независимости от его разрешения. Запускаем:

На сегодня все. Оставляю код, для тех, кто запутался:

Display.java

Main.java

Как создать java-игру?

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

Создание игр для мобильного телефона

  1. Для начала необходимо установить необходимые компоненты:
  2. Набор эмуляторов, при помощи которых будет проводиться тестирование написанных модулей. Это J2ME Wireless Toolkit.
  3. Компилятор, который используется для создания архивов. Это J2SE.
  4. Текстовый редактор.
  5. Далее нужно запустить приложение WTK Toolbar
  6. Создать новый проект, воспользовавшись меню «Файл», «Новый проект».
  7. Заполнить поля: наименование проекта и класс. Нажать Ok. Новый проект будет находиться в программе WTK в папке apps. Папки каталога будут содержать следующее:
  8. папка bin – исполняемые файлы;
  9. папка res – ресурсы;
  10. папка lib – библиотеки;
  11. папка src – исходные файлы.
  12. Необходимо тщательно продумать сюжетную линию и графику.
  13. В соответствии с выбранной тематикой написать программу для java-игры.
  14. Обязательно ее протестировать, сначала с помощью эмулятора, а потом запустить на телефоне.
  15. Для этого нужно откомпеллировать проект через редактор WTK пункт Build.

    Материалы для изучения Java

    Нажать кнопку Run

  16. Если проблем с запуском нет, для загрузки на телефон нужно запаковать приложение в 2 архива (.jad и.jar).
  17. Для этого выбрать пункт Project. Далее Package. Архивы, которые появились в папке bin нужно загрузить на телефон.

Основные трудности

Для того чтобы понять, как сделать java-игру, нужно знать с какими трудностями приходится сталкиваться каждому начинающему программисту java-игр. Это:

  • Возможности аппаратных ресурсов.
  • Удовлетворенность пользователей.
  • Отладка игры.

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

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

Удовлетворенность пользователей. При создании java-игр для мобильных устройств, есть факторы, которые способны повлиять негативно на мнение об игре:

  • Во-первых, из-за того, что экран маленький, на нем не просто уместить все, как было задумано;
  • Маленькие клавиши не очень удобны в использовании, иногда это мешает игроку добиться высоких результатов в игре;
  • Очень ограниченные звуковые возможности.

При создании игры все это нужно учитывать. Для того чтобы заинтересовать пользователей, необходимо создать для игры достойный внимания внешний вид, хорошее звуковое оформление и достаточно удобное управление.

Отладка. Это самый трудоемкий процесс. Для этого удобнее всего использовать эмулятор, например, WTK. Еще один неплохой способ отладки – демонстрационный режим игры. В идеале, в демонстрационном режиме должна быть задействована вся функциональность игры. Теперь, если у вас возникнет желание сделать игру для мобильного телефона, вы знаете, как создать java-игру

Внимание, только СЕГОДНЯ!

  • 2 месяца обучения Java EE (2 раза в неделю по 4 часа)
  • если результаты показываешь хорошие (защищаешь свой проект успешно, который пишешь эти два месяца), то тебе предлагают трудоустройство.
Компания очень хорошая, иностранная, известная, да и условия работы отличные - словом, хотел я туда куда больше, чем туда, где мне уже сделали предложение. Отбор на обучение у нее предполагал 3 этапа:
  1. Выполнение практических заданий дома.
  2. В случае успеха тебя приглашают на компьютерное тестирование в офисе.
  3. В случае успешного тестирования в этот же день с тобой проводят собеседование.
С практическими заданиями я справился без особых проблем - здесь огромное спасибо JavaRush и их задачкам, после которых эти задания показались достаточно простыми. Заданий было 3: на RegExp(гугл помог, ибо сам я их терпеть не мог и не помнил), на алгоритмы (довольно простая, на соображалку скорее) и на запись\чтение из файла (таких в курсе JavaRush очень много). Меня пригласили на компьютерное тестирование. К тестированию я готовился по сайту quizful . Эти тесты очень помогли, некоторые вопросы в итоге даже пересекались. Сделал тест успешно, меня начали собеседовать. Это собеседование я, наверное, не забуду никогда в жизни. Все, что хотел услышать от меня собеседующий меня человек - основы теории Java, как то:
  • чем отличаются checked exceptions от unchecked;
  • какие методы есть у класса Object и зачем они нужны;
  • какие бывают коллекции и зачем они;
  • и немного про многопоточность.
JavaRush - отличный курс, он научит вас решать задачки и программировать, но теорию (для собеседований) нужно подучивать отдельно, в чем я и убедился, плавая в этих вопросах, как рыба в аквариуме. Меня хотели завернуть. Я его понимаю - я не мог внятно почти ни на что ответить, все пытался рассказывать с точки зрения написания кода, а его интересовала теория. Но я твердо знал, что я очень хочу попасть на эту стажировку, и я знал, что если мне дадут время, я все это наверстаю и выучу несчастную теорию. Все это я ему так и сказал, и он пошел мне навстречу - предложил через неделю встретиться еще раз, а пока что дал список тем (примерно, как я описал сверху) и сказал, где их можно выучить - просто туториал оракла, в нем есть все: http://docs.oracle.com/javase/tutorial/ За неделю я основательно изучил этот туториал и пошел на повторное собеседование накануне дня, когда меня ждали на новой работе. Судя по всему, собеседовавшего меня человека больше всего зацепила именно моя целеустремленность (я знал, что если я поступлю на эту стажировку, дальнейшее зависит только от меня - за два месяца я бы разобрался со всем, чем надо). Как бы то ни было, я поступил на эту стажировку и отказался от выхода на работу на том месте, куда мне предлагали ранее. За 2 месяца нас познакомили с многими темами из Java EE, как то: Servlets, JSP, Hibernate JSF, Spring и многое-многое другое - по итогам стажировки мы были знакомы (примерное представление имели точно) об основном стеке технологий Java EE. Также на протяжении стажировки мы писали свой проект, который на выходе надо было успешно представить для трудоустройства. Я просто помню свои первые ощущения, когда был на первой лекции. Я смотрел на задание этого проекта (его выдали сразу на первой же лекции) и не понимал даже близко, с чего здесь начинать и как это делать. Также я помню, чего мне стоило успешно его сделать. Эти два месяца почти все мысли в моей голове были о том, что успешное трудоустройство и исполнение мечты - в моих руках и только. Больше ни от кого не зависело, смогу ли я его сделать. Только от меня. Я уже уволился с работы, сидел почти без денег, и это было действительно тяжело. Сидел с утра, сидел днем, сидел вечером, однако не уставал радоваться - я не помню, когда еще я с такой одержимостью посвящал себя чему-то. Это время лишний раз помогло мне осознать, насколько мне нравится программировать и насколько я бы хотел работать в этой области. На выпуске я представил свой проект. Защитил его действительно хорошо, судя по всему, значительно лучше, чем ожидалось, и в качестве исключения меня взяли не на начальную должность, а сразу на позицию Middle Java Developer. Это было 9 декабря 2014. Я не мог поверить этому, но предложение о работе было передо мной на моем мониторе. Инженер-программист. Это случилось. С 15 декабря я вышел на работу. Еще ни разу не возникала у меня мысль "блин, не хочу идти на работу". Каждый день, выходя с утра из дома, я знаю, зачем я иду работать, что я буду делать, и насколько я этого хочу. Это безумно радует. Это стоит и стоило той цены, которую пришлось заплатить за достижение своей мечты. Я желаю всем из вас, кто действительно хочет быть программистом, идти вперед в достижении своей цели. Она более чем реальна, она совсем рядом, но за нее нужно заплатить. Заплатить своим потраченным временем, нервами, ведь изучать что-то с нуля - действительно не самый легкий шаг. JavaRush помог мне сделать эти первые шаги с легкостью, и не я отвернулся от программирования в самом начале из-за кажущейся сложности и обилия теории. Таким образом я смог довести свою довольно безумную идею по кардинальной смене области профессиональной деятельности (еще и при отсутствии технического образования) до конца. И вы обязательно сможете.

Начало текста Глава: Предисловие (или для кого эта книга) Глава: Введение (или рассказ о программировании) Часть 1. Установка необходимых программ и их настройка Глава: JDK - Java Development Kit (комплект для разработки на Java) Глава: IDE (Integrated Development Environment) "IntelliJ Idea"- Интегрированная среда разработки (система программирования) "IntelliJ Idea" Часть 2. Основные понятия и операторы Java. Глава 2.1. Урок 1. Структура программ на Java. Пример программы на Java.

Глава: Предисловие (или для кого эта книга)

Наверное многие скажут: "по Java уже написано много хороших книг, зачем еще одна"? И для многих скорее всего моя книга не даст ничего нового. Ведь основным ее читателем должен стать (предположительно) человек, который вообще не имеет никакого опыта в программировании. Со одной стороны кажется, что достаточно взять книгу с хорошим, наиболее полным описание и все. Но на практике это далеко не так. Недостаточно прочитать о чем-то. Главное понять, как это использовать. Уметь приспособить разный набор средств для решения конкретной задачи. Оценить, что из существующих вариантов лучше. Как этого добиться? Практика. Очень много практики с разбором тривиальных примеров и решением похожих задач самостоятельно. Однако практика, к сожалению, это еще не все. Помимо нее должна быть и правильно подобранная, дозированная теория. Это значит, что я не буду вываливать все знания в полном объеме на читателя сразу. Многое буду сознательно упрощать для лучшего понимания сути вещей. Надеюсь профессионалы меня за это не будут гневно хулить. Ведь после прочтения моей книги, читатель сможет перейти к литературе, дающей более развернутые знания, и разобраться в ней самостоятельно.


Глава: Введение (или рассказ о программировании)

Наверное, в наш прогрессивный век многие слышали такие слова как "программа" и "программирование". Давайте разберемся что это такое, откуда взялось и на какие направления сейчас разбивается.
Во-первых, начнем с термина "программа". Если простыми словами, то программа - это последовательность действий или указаний компьютеру, которую он должен выполнить. Запуская программу, мы запускаем по очереди все команды или инструкции, указанные в ней. Программирование, соответственно, - это процесс создания или написания программ.
Как компьютер понимает или расшифровывает команды записанные в программе?
По сути дела, программа, которую видит компьютер, и программа, которую видит человек на экране, очень сильно отличаются, так как написаны на разных языках. Компьютерная машина понимает только так называемый двоичный код - определенные комбинации из единиц и нулей. Почему так? Все просто, если мы обратимся к механике процесса. Команды компьютеру передаются по шлейфам, состоящие из набора проводов (каналов), и так называемой шине данных. Есть электрический сигнал в канале - значит поступила единица. Нет сигнала - ноль.
Однако, если мы откроем текст программы, написанной программистом, он не будет выглядеть как сплошной набор единиц и нулей и его вполне можно будет "прочитать" и разобрать на команды. Как же тогда компьютер понимает программы, написанные людьми? А вот здесь работают так называемые переводчики с одного языка на другой. Называют эти переводчики - трансляторами. Трансляторы можно разделить на два вида: компиляторы и интерпретаторы. Компиляторы переводят всю программу целиком и сохраняют в специальных исполняемых файлах. Чтобы запустить такую программу, нужно запустить полученный файл. Интерпретаторы переводят команды в режиме он-лайн и сразу их выполняют. По одной команде за один шаг: перевел команду - выполнил, перевел следующую - выполнил, и т. д.
От уровня сложности языка, с которого переводит транслятор, зависит количество команд в двоичном коде. Если язык достаточно приближен к двоичному коду, то на одну команду такого языка будет выходить от 1 (ассемблеры) до 10 команд в двоичном коде. К таким языкам можно отнести, например, Pascal, C. Для высокоуровневых языков, такие например, как С++ и Java, количество команд в двоичном коде на одну команду высокоуровневого языка может быть равным 100 и более.
С одной стороны использование компиляторов лучше, так как программы переведенные целиком на машинный язык работают быстрее. Однако эти программы работают только в какой-то одной операционной системе, для которой они были скомпилированы. К достоинствам интерпретаторов можно отнести так называемую кроссплатформенность, то есть независимость от конкретной операционной системы (платформы). Что здесь имеется ввиду? Дело в том что для запуска одной и той же программы в разных операционных системах будут использоваться разные интерпретаторы: в Windows один интерпретатор, в Linux - другой, в третьей операционной системе - третий и т. д. А текст самой программы остается неизменным и наглядным, где бы мы его ни открыли. Со скомпилированной программой все сложнее. Во-первых, она уже переведена на машинный язык и просмотреть в привычном виде мы ее не сможем. Во-вторых, программа четко ориентирована на определенную операционную систему и изменить это в скомпилированной программе невозможно. Для того, чтобы провернуть подобный фокус нужно взять исходную программу, которая написана на понятном программисту языке, внести необходимые изменения и скомпилировать ее под другую платформу (операционную систему).
В принципе для любого языка можно разработать как компиляторы так и интерпретаторы. К таким языкам, для которых существуют как компиляторы так и интерпретаторы, например, можно отнести Visual Basic. Однако есть ряд языков, для которых существуют только компиляторы или интерпретаторы. Например, для языка Pascal есть множество компиляторов, но нет интерпретаторов (по крайней мере я о них не слышала). Для языков VBScript, JavaScript существуют только интерпретаторы.
Отдельно можно выделить языки программирования, в которых используется некоторое сочетание принципов компиляции и интерпретации. К таким языкам можно отнести и Java. Сначала программа, написанная на Java, обрабатывается компилятором. Однако на выходе получается не машинный, а некоторый промежуточный код (псевдо-код или байт-код), который затем интерпретируется виртуальной машиной Java. Виртуальная машина Java - это программа, которая должна быть установлена в операционной системе, где будет запускаться превращенная в псевдо-код программа.
Как и где пишутся программы?
Давайте подумаем что нам понадобится для создания работающей программы. Во-первых, нам нужно где-то набирать текст программы. А значит нужен какой-то текстовый редактор, в котором мы это проделаем и сможем сохранить. Во-вторых, понадобится компилятор или интерпретатор. В принципе это необходимый минимум. Однако! Следует учесть, что по мере написания программ мы, как и все люди допускаем ошибки. Во-первых, ошибку мы можем сделать в тексте. Было бы удобно, чтобы текстовый редактор умел видеть хотя бы простейшие ошибки в синтаксисе написанных команд и как-то оповещал нас об этом (например, подчеркиванием, как это делает Word для обычных текстов). Во-вторых, могут быть логические ошибки, когда в тексте все вроде верно написано, но ничего не работает так как ожидалось. На этот случай, было бы неплохо иметь удобные инструменты для поиска ошибок во время работы программы.
Для удобства программистов все удобные инструменты объединены в особые программы - системы программирования. Обычно в них есть и особый текстовый редактор, и трансляторы, и отладчик (для поиска ошибок в ходе выполнения программы), и уйму удобных инструментов для облегчения нелегкого труда программиста. К таким "плюшкам" можно отнести автогенерацию кусочков программы, удобный запуск программ по одному щелчку (когда система программирования сама запускает нужный транслятор и полученную исполняемую программу) и многое-многое другое.
Обычно для одного языка существует не одна система программирования, а несколько. Каждый программист, естественно, сам выбирает наиболее удобную для себя систему. Например, для Java самыми распространенными системами программирования являются "IntelliJ Idea","Eclipse","NetBeans".
Поскольку автор предпочитает первую из них и остальные вам пока неизвестны, для нашей практики мы с вами будем использовать "IntelliJ Idea".


Часть 1. Установка необходимых программ и их настройка

Глава: JDK - Java Development Kit (комплект для разработки на Java)

Начнем с самого главного - установки набора необходимых программ для разработки и выполнения программ, написанных на Javа. На английском название этого набора звучит как Java Development Kit или коротко - JDK. Именно последнюю аббревиатуру мы будем использовать в дальнейшем.
Что входит в JDK?
В JDK входят следующие компоненты:
1) JRE - Java Runtime Environment (Среда выполнения Java)
Набор программ и библиотек, необходимых для выполнения псевдо-кода. Фактически это и есть виртуальная машина Java, необходимая для запуска скомпилированных под нее программ.
Примечание: Если нужно только запускать скомпилированные программы, написанные на Java, а не создавать их, устанавливать JDK не имеет смысла. Достаточно установить только JRE.
2) компиляторы
3) отладчики
4) специализированные библиотеки
5) и другие средства разработки
Что такое библиотеки и что в них находится?
Программы на языке высокого уровня пользуются готовыми, проверенными фрагментами кода для выполнения различных типовых действий. К таким действиям можно отнести: отображение информации на экране, ввод данных с клавиатуры, вычисление стандартных математических функций и т. д. Подобные фрагменты кода находятся в библиотеках, представленных в виде отдельных файлов.
Где взять JDK?
Любую версию JDK можно скачать совершенно бесплатно с официального сайта Oracle. Для этого сначала наберем в любом интернет-поисковике следующие слова для поиска: "JDK download". Первый же сайт в списке - наш.

В табличке с нужной версией выбирайте сначала опцию "Accept License Agreement" (переводится с английского как "Согласиться с лицензионным соглашением"), а затем щелкайте по нужному файлу в этой таблице.
Как вы уже знаете, Java - кроссплатформенный язык программирования, то есть одна и та же программа, написанная на нем, одинаково работает в разных операционных системах. Последнее свойство достигается за счет различающихся JRE и JDK на разных операционных системах (платформах).
Естественно вы должны скачать установочный файл, который соответствует вашей операционной системе. Например, если вы работаете под Linuх, выбирайте соответствующий файл для Linux. Если под Windows - файл для Windows.
Если вы устанавливаете JDK под 32 битную операционную систему, качайте файл с пометкой x86. Если под 64 битную - с пометкой х64.
Примечание. Разрядность системы в Windows 7 можно узнать так: жмем «Пуск», правой кнопкой мыши «Компьютер», выбираем «Свойства». Смотрим значение свойства "Тип системы".

Например:

Для 64-битной операционной системы Windows и JDK 8u101 нужный файл будет иметь следующее название:
"jdk-8u101-windows-x64.exe"

Для 32-битной операционной системы Windows и JDK 8u101 нужный файл будет иметь следующее название:
"jdk-8u101-windows-i586.exe"

Как установить и правильно настроить JDK (для ОС Windows 7)?
Этап первый: Установка JDK
Для того чтобы установить JDK, необходимо запустить установочный exe-файл с нужной версией JDK. Дальше нужно лишь следовать по окнам-шагам инсталляции.
Примечание: На одной операционной системе может быть установлено несколько версий JDK и JRE. Сделать какую-то JRE основной (которую и будет использовать виртуальная машина Java) можно в настройках операционной системы. Задать определенную JDK для проекта можно как в операционной системе(будет общей для всех проектов) так и в системе программирования, в которой этот проект пишется.
Давайте рассмотрим весь процесс установки JDK на примере установки JDK 8u102 на 64-битную операционную систему Windows 7 (нужно будет запускать файл jdk-8u102-windows-x64.exe).

1. В первом окне просто нажимаем кнопку "Next"

2. Во втором окне сначала выбираем папку, куда будет устанавливаться наше JDK. Для этого нажимаем кнопку "Change..." и выбираем нужное место на диске.

Примечание: Желательно придерживаться одного общего места для всех папок с разными версиями JRE. То есть чтобы структура общей папки была наподобие следующей:

После этого нажимаем кнопку "Next".

Этап второй: Настройка переменных окружения
Для того, чтобы система программирования знала какую jdk использовать по умолчанию для своих программ и операционная система умела распознавать файлы java, необходимо настроить системные переменные в нашей операционной системе.
Для этого в Windows 7 нужно сделать следующие шаги:

1) Зайдите в следующие настройки:
Кнопка "Пуск" --> правой кнопкой мыши в пункт "Компьютер"--> пункт "Свойства" --> пункт "Дополнительные параметры среды" --> вкладка "Дополнительно" --> кнопка "Переменные среды..."

2) Под списком "Cистемные Переменные" нажать кнопку "Создать"

3) Внести необходимые данные и нажать кнопку "OK":
Имя переменной JAVA_HOME
Значение переменной <путь к папке, куда устанавливалось JDK(не JRE!)>

4) Найдите в списке системных переменных переменную "Path", выберете ее и нажмите кнопку "Изменить".

5) Перейдите в конец поля "Значение переменной"(ничего не удалять!!!), добавьте следующий кусочек текста и нажмите кнопку "OK":
;%JAVA_HOME%\bin\

6) Нажмите кнопку "OK" для окна "Переменные среды", затем для вкладки "Дополнительно" и перезагрузите компьютер.


Глава: IDE (Integrated Development Environment) "IntelliJ Idea"- Интегрированная среда разработки (система программирования) "IntelliJ Idea"

"IntelliJ Idea" одна из наиболее распространенных систем программирования для Java. Она удобна и имеет много инструментов, облегчающих работу программиста. К несомненным плюсам можно отнести доступные бесплатные версии этой среды разработки в интернете.

Примечание. Термин IDE(интегрированная среда разработки) идентичен понятию "система программирования", однако в профессиональной среде его используют чаще.

Где взять "IntelliJ Idea"?
Данную IDE можно скачать с официального сайта компании "JetBrains". Для этого сначала нужно набрать в любом интернет-поисковике следующие слова для поиска: "Intellij Idea". Первый же сайт в отобразившемся списке - наш.




Есть вопросы?

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: