С чего начать изучение Java?
Язык программирования Java — это не просто язык, а полноценная программная платформа с большими возможностями. В этой статье мы поговорим, что в эту платформу входит, с чего лучше начать изучение Java, и почему вообще множество людей выбирает именно этот язык программирования.
Основные компоненты Java
Главными составляющими языка программирования Java являются: — библиотеки и классы. Обеспечивают необходимые функциональные возможности Java: это и обработка исключений, и многопоточность, и логирование, и коллекции, а также рефлексия, безопасность, работа с сетью и XML, сериализация и прочее; — базовые инструменты, необходимые для запуска и написания программ на Java; — инструменты, используемые при развертывании и автоматическом запуске приложений; — инструменты, применяемые при создании фронтенда (GUI). Речь идёт о таких классах библиотек, как Swing, JavaFX, Java2D; — библиотеки, предназначенные для работы с БД, а также удалённо по сети (JNDI, JDBC, RMI, Java RMI-IIOP).
Если вы желаете узнать об инструментах и классах Java всё — лучше всего прочтите официальную документацию Oracle. Дело в том, что если 1-я версия Java JDK 1.0 имела «всего-то» пару сотен классов, то теперь их число составляет несколько тысяч. На протяжении существования этого языка программирования его создатели внесли множество изменений, повышающих безопасность, переносимость и функциональность. Собственно говоря, в том числе и благодаря регулярному совершенствованию языка и его постоянной поддержке со стороны разработчиков, Java всегда «шагала в ногу» с современным развитием IT-технологий.
Плюсы Java
О широкой поддержке и развитии Java мы уже сказали. Но есть и другие положительные характеристики: • невысокий порог вхождения. Считается, что язык программирования Java изучать несколько проще, чем многие другие языки с Си-подобным синтаксисом; • объектная ориентированность. Как известно, Java-программы строятся на основе объектов и взаимодействия объектов — это даёт возможность задействовать все преимущества ООП; • переносимость и платформенная независимость. При программировании мы используем интерпретатор — виртуальную машину Java. Благодаря этому, программы могут переноситься на разные устройства и платформы. То есть код, написанный на языке программирования Java для одной платформы, может компилироваться в промежуточный байт-код. Таким образом, эта программа в итоге сможет запускаться и на других платформах, а всё благодаря интерпретации посредством JVM под каждую платформу; • развитая многопоточность. Средства программирования Java дают нам возможность управлять выполнением нескольких потоков — это позволяет создавать многопоточные приложения; • безопасность. Она достигается за счёт встроенной в JVM верификации байт-кода, отсутствия в Java ручного управления памятью, слежения за переполнением стека, наличия различных API, позволяющих контролировать безопасность, и т. п.; • отказоустойчивость. Повышается за счёт механизма исключения, который полезен как при компиляции, так при непосредственном выполнении. В итоге имеем снижение количества ошибок; • интерпретируемость. У нас есть Java-интерпретатор, способный выполнять байт-коды Java на любых машинах, где есть JRE и JVM; • распределённость. Речь идёт о Java-инструментах для создания распределённых приложений; • производительность. Just-in-time-компилятор (он же JIT) повышает скорость работы приложений, делая её сопоставимой с языками С и С++.
С чего начать программирование на Java?
Если вы начинаете изучать Java с нуля, рекомендуется для начала усвоить основные понятия: что включено в язык программирования Java, что вообще представляет собой Java-программа и каким образом она выполняется. И только потом надо переходить к синтаксису и основам Java, а также к изучению библиотек.
Немного ознакомившись с теорией, можно приступать и к изучению основ. Общая последовательность шагов выглядит приблизительно так:
Что надо для программирования на Java?
Чтобы программировать, разумеется, вам потребуется соответствующее ПО для разработки и запуска программ — это JDK (Java Development Kit). Настроив JDK на компьютере, можно приступить к скачиванию и установке одной из IDE (Integrated Development Environment) — речь идёт, разумеется о среда для разработки ПО. Раз мы говорим о Java, то одной из самых популярных IDE для этого языка программирования является IntelliJ IDEA. Есть и альтернативные решения — NetBeans, Eclipse, JCreator, да и, собственно говоря, даже простой блокнот.
Устанавливаем Java на компьютер
Первый шаг — установка JDK. Для этого: 1. Переходим на сайт Oracle. 2. Выбираем и скачиваем установочный файл в соответствии с типом своей ОС. 3. Выполняем установку, следуя рекомендациям установщика. 4. Настраиваем переменную окружения при использовании Windows.
Если интересует подробное описание для Windows, можете посмотреть его, например, здесь.
Основные термины в Java
Начав изучать Java, вы неизбежно столкнётесь со следующими терминами: — Java Virtual Machine (JVM) — виртуальная машина Java. Представляет собой программный модуль, используемый для интерпретации исходного байт-кода в машинный код, а также для исполнения этого кода; — Java Runtime Environment (JRE) — среда выполнения Java. Включает реализацию JVM для конкретной платформы и комплект библиотек, используемых для выполнения Java-программ; — Java Development Kit (JDK) — набор инструментов программиста, используемых для написания Java-программ. Сюда входят компилятор, JRE, стандартные библиотеки Java, документация, разные утилиты. — исходный код — текстовый файл на Java с расширением .java; — байт-код — низкоуровневый машинно-независимый код, представляющий набор инструкций для JVM; — машинный код — комплект машинных инструкций в двоичном формате, которые выполняются процессором; — компиляция — процесс преобразования исходного кода в байт-код; — интерпретация — процесс преобразования байт-кода в машинный код; — платформа — программно-аппаратная среда, где осуществляется выполнение программ и приложений. Самые популярные платформы —Microsoft Windows, Linux, Solaris, Mac OS.
Лучше ориентироваться в основных терминах поможет следующая таблица:
Жизненный цикл Java-программы
Жизненный цикл Java-программы начинается с момента написания исходного кода в текстовом формате. Как правило, обычно для решения этой задачи используют специальные среды разработки (IDE), хотя простейшие программы вы сможете набрать и в текстовом редакторе (в том же Notepad, поставляемым с Windows).
Итак, у нас создаётся исходный код, который сохраняется в файле с расширением .java.
Вот пример первой простейшей программы HelloWorld.java, с которой начинают многие из новичков:
public class HelloWorld { public static void main(String[] args) { System.out.println("Это моя первая программа"); } }
До того, как этот исходный код выполнится, произойдёт его компиляция в байт-код. Естественно, тут подключается компилятор, входящий в JDK. Благодаря его работе, мы получим файл, имеющий расширение .class. Этот файл содержит байт-код — то есть инструкции для JVM. Таким образом, написанная нами программа HelloWorld.java скомпилируется в файл HelloWorld.class.
При желании мы можем посмотреть байт-код, хотя платформа Java и не предусматривает наличие инструментов для редактирования такого кода. Тем не менее есть возможность использовать утилиту дизасcемблера javap, входящую в состав JDK. С её помощью мы увидим:
Compiled from "HelloWorld.java" public class HelloWorld { public HelloWorld(); Code: 0: aload_0 1: invokespecial #1 // Method java/lang/Object."<init>":()V 4: return public static void main(java.lang.String[]); Code: 0: getstatic #2//Fieldjava/lang/System.out:Ljava/io/PrintStream; 3: ldc #3// String This is my first program 5:invokevirtual#4//Methodjava/io/PrintStream.println:(Ljava/lang/String;)V 8: return }
Идём дальше. После написания и компиляции наша программа хранится в файле HelloWorld.class. Чтобы выполнить эту программу на любой из платформ, потребуется установленная JRE. А переносимость Java-программ на нужную платформу обеспечивается за счёт JVM.
Итак, мы плавно подошли к исполнению программы — выполнению байт-кода JVM. Вот как это реализуется:
1. На компьютере происходит запуск JVM.
2. Начальный загрузчик классов JVM загружает, а потом инициализирует наш класс в памяти ПК (для нашего примера — это класс HelloWorld).
3. Далее в нашем классе JVM выполняет поиск метода
По результатам выполнения вышеописанных действий JVM интерпретирует байт-код в машинную инструкцию для процессора, учитывая тип ОС. Весь жизненный цикл программы на Java можно представить схематично:
Выбираем и устанавливаем среду разработки
Если мы хотим программировать на Java быстро и эффективно, не обойтись без среды разработки — специального софта для написания Java-программ. Наиболее популярные IDE среди Java-разработчиков мы уже перечислили, поэтому повторяться не будем.
Для новичков более чем достаточно IntelliJ IDEA Community Edition. Выбрав её, вы получите в своё распоряжение необходимые плюсы: и подсказки, и возможность отладки и проверки кода, и удобство интеграции с БД и GitHub и т. п. Да и вообще, это хорошая практика — сразу начинать с использования профессионального инструмента Java-разработки.
Сколько времени уйдёт на изучение Java?
Тут всё индивидуально и зависит от интенсивности обучения. Вообще, чтобы изучить основы и выработать навыки программирования, вам потребуется не менее 6-12 месяцев, то есть будьте сразу готовы, что это долгий и кропотливый труд.
Обязательно составьте план своего изучения и выделяйте на это несколько часов в день. Помните, что главное — это практика.
Естественно, все мы хотим сэкономить и думаем, что выучим язык программирования Java самостоятельно, используя многочисленные открытые источники. Да, кое-какие знания вы так приобретёте, но всё же это не лучший выход. Очень часто новички начинают буксовать на задачках (на том же Степике, например), в результате чего самостоятельное обучение затягивается, время идёт, жизнь меняется, ваше желание постепенно угасает. Итог — годы прошли, а вы до сих пор не программист.
Лучше всего — платные курсы. Именно платные — это станет хорошей мотивацией не бросить. Для начала пусть это будут основы и базовые знания. Если говорить об OTUS, то вам пригодятся подготовительные Java-курсы. Освоив их, можете переходить на следующую ступень обучения. Как вариант — сразу выбор Java-специализации.
Итак, вот один из алгоритмов возможных действий: 1. Изучите основные понятия языка программирования Java. 2. Установите Java на свой ПК. 3. Установите IDE. 4. Напишите и запустите первую программу на Java. 5. Начните проходить любые курсы по основам Java (например, подготовительные курсы от OTUS). 6. Получив базовые знания, приступайте к курсам по глубокому погружению в практику программирования на Java.
Да, будет сложно. Но если вы действительно хотите стать Java-программистом, у вас всё получится!