С чего начать изучение Java? | OTUS
⚡ Подписка на курсы OTUS!
Интенсивная прокачка навыков для IT-специалистов!
Подробнее

Курсы

Программирование
Алгоритмы и структуры данных Team Lead Архитектура и шаблоны проектирования Разработчик IoT C# Developer. Professional PostgreSQL Разработчик на Spring Framework
-5%
Flutter Mobile Developer NoSQL iOS Developer. Basic
-10%
C++ Developer. Basic C++ Developer. Professional Android Developer. Professional Microservice Architecture Unity Game Developer. Professional Базы данных Node.js Developer React.js Developer Специализация Java-разработчик
-25%
Web-разработчик на Python Framework Laravel Cloud Solution Architecture Vue.js разработчик Интенсив «Оптимизация в Java» Супер - интенсив по паттернам проектирования Супер - интенсив по Kubernetes Супер-интенсив "Tarantool" PHP Developer. Basic
Инфраструктура
Мониторинг и логирование: Zabbix, Prometheus, ELK Administrator Linux. Professional Дизайн сетей ЦОД Разработчик IoT PostgreSQL Экспресс-курс "Версионирование и командная работа с помощью Git"
-30%
Microservice Architecture Highload Architect Специализация Administrator Linux
-25%
Network engineer Cloud Solution Architecture Внедрение и работа в DevSecOps Супер-практикум по работе с протоколом BGP Супер - интенсив по паттернам проектирования Супер - интенсив по Kubernetes Супер-интенсив «СУБД в высоконагруженных системах» Супер-интенсив "Tarantool" Network engineer. Basic
Корпоративные курсы
Безопасность веб-приложений IT-Recruiter Дизайн сетей ЦОД Компьютерное зрение Разработчик IoT Вебинар CERTIPORT Machine Learning. Professional
-6%
NoSQL Пентест. Практика тестирования на проникновение Java QA Engineer. Базовый курс Руководитель поддержки пользователей в IT
-8%
SRE практики и инструменты Cloud Solution Architecture Внедрение и работа в DevSecOps Супер-практикум по работе с протоколом BGP Infrastructure as a code Супер-практикум по использованию и настройке GIT Промышленный ML на больших данных Экспресс-курс «CI/CD или Непрерывная поставка с Docker и Kubernetes» BPMN: Моделирование бизнес-процессов Основы Windows Server
Специализации Курсы в разработке Подготовительные курсы Подписка
+7 499 938-92-02

С чего начать изучение 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, а также к изучению библиотек.

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

bfe30be5_c6ea_4c60_a743_400fba51d0ed_1-20219-2a6d18.png

Что надо для программирования на 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.

Лучше ориентироваться в основных терминах поможет следующая таблица:

61df88b2_9f31_4040_9015_5eadea6e147e_1-20219-7065d2.png

Жизненный цикл 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 выполняет поиск метода public static void main(String[]). 4. Потом происходит выполнение кода метода main. Если нужно, осуществляется загрузка и инициализация прочих классов. 5. После выполнения кода производится уборка мусора (очистка памяти и закрытие программы JVM).

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

82eadf99_a989_49a1_b388_71f1c5ca2cb3_2-20219-f1a45b.jpg

Выбираем и устанавливаем среду разработки

Если мы хотим программировать на 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-программистом, у вас всё получится!

Java_970x90-20219-db8529.png.

Не пропустите новые полезные статьи!

Спасибо за подписку!

Мы отправили вам письмо для подтверждения вашего email.
С уважением, OTUS!

Автор
0 комментариев
Для комментирования необходимо авторизоваться