1 added
1 removed
Original
2026-01-01
Modified
2026-03-10
1
<p>Язык программирования Java - это не просто язык, а полноценная программная платформа с большими возможностями. В этой статье мы поговорим, что в эту платформу входит, с чего лучше начать изучение Java, и почему вообще множество людей выбирает именно этот язык программирования.</p>
1
<p>Язык программирования Java - это не просто язык, а полноценная программная платформа с большими возможностями. В этой статье мы поговорим, что в эту платформу входит, с чего лучше начать изучение Java, и почему вообще множество людей выбирает именно этот язык программирования.</p>
2
<h2>Основные компоненты Java</h2>
2
<h2>Основные компоненты Java</h2>
3
<p>Главными составляющими языка программирования Java являются: -<strong>библиотеки и классы</strong>. Обеспечивают необходимые функциональные возможности Java: это и обработка исключений, и многопоточность, и логирование, и коллекции, а также рефлексия, безопасность, работа с сетью и XML, сериализация и прочее; -<strong>базовые инструменты, необходимые для запуска и написания программ</strong>на Java; -<strong>инструменты, используемые при развертывании и автоматическом запуске приложений</strong>; -<strong>инструменты, применяемые при создании фронтенда</strong>(GUI). Речь идёт о таких классах библиотек, как Swing, JavaFX, Java2D; -<strong>библиотеки, предназначенные для работы с БД</strong>, а также удалённо по сети (JNDI, JDBC, RMI, Java RMI-IIOP).</p>
3
<p>Главными составляющими языка программирования Java являются: -<strong>библиотеки и классы</strong>. Обеспечивают необходимые функциональные возможности Java: это и обработка исключений, и многопоточность, и логирование, и коллекции, а также рефлексия, безопасность, работа с сетью и XML, сериализация и прочее; -<strong>базовые инструменты, необходимые для запуска и написания программ</strong>на Java; -<strong>инструменты, используемые при развертывании и автоматическом запуске приложений</strong>; -<strong>инструменты, применяемые при создании фронтенда</strong>(GUI). Речь идёт о таких классах библиотек, как Swing, JavaFX, Java2D; -<strong>библиотеки, предназначенные для работы с БД</strong>, а также удалённо по сети (JNDI, JDBC, RMI, Java RMI-IIOP).</p>
4
<p>Если вы желаете узнать об инструментах и классах Java всё - лучше всего прочтите официальную<a>документацию Oracle</a>. Дело в том, что если 1-я версия Java JDK 1.0 имела "всего-то" пару сотен классов, то теперь их число составляет несколько тысяч. На протяжении существования этого языка программирования его создатели внесли множество изменений, повышающих безопасность, переносимость и функциональность. Собственно говоря, в том числе и благодаря регулярному совершенствованию языка и его постоянной поддержке со стороны разработчиков, Java всегда "шагала в ногу" с современным развитием IT-технологий.</p>
4
<p>Если вы желаете узнать об инструментах и классах Java всё - лучше всего прочтите официальную<a>документацию Oracle</a>. Дело в том, что если 1-я версия Java JDK 1.0 имела "всего-то" пару сотен классов, то теперь их число составляет несколько тысяч. На протяжении существования этого языка программирования его создатели внесли множество изменений, повышающих безопасность, переносимость и функциональность. Собственно говоря, в том числе и благодаря регулярному совершенствованию языка и его постоянной поддержке со стороны разработчиков, Java всегда "шагала в ногу" с современным развитием IT-технологий.</p>
5
<h2>Плюсы Java</h2>
5
<h2>Плюсы Java</h2>
6
<p>О широкой поддержке и развитии Java мы уже сказали. Но есть и другие положительные характеристики: •<strong>невысокий порог вхождения</strong>. Считается, что язык программирования Java изучать несколько проще, чем многие другие языки с Си-подобным синтаксисом; •<strong>объектная ориентированность</strong>. Как известно, Java-программы строятся на основе объектов и взаимодействия объектов - это даёт возможность задействовать все преимущества<a>ООП</a>; •<strong>переносимость и платформенная независимость</strong>. При программировании мы используем интерпретатор -<a>виртуальную машину Java</a>. Благодаря этому, программы могут переноситься на разные устройства и платформы. То есть код, написанный на языке программирования Java для одной платформы, может компилироваться в промежуточный байт-код. Таким образом, эта программа в итоге сможет запускаться и на других платформах, а всё благодаря интерпретации посредством JVM под каждую платформу; •<strong>развитая многопоточность</strong>. Средства программирования Java дают нам возможность управлять выполнением нескольких потоков - это позволяет создавать многопоточные приложения; •<strong>безопасность</strong>. Она достигается за счёт встроенной в JVM верификации байт-кода, отсутствия в Java ручного управления памятью, слежения за переполнением стека, наличия различных API, позволяющих контролировать безопасность, и т. п.; •<strong>отказоустойчивость</strong>. Повышается за счёт механизма исключения, который полезен как при компиляции, так при непосредственном выполнении. В итоге имеем снижение количества ошибок; •<strong>интерпретируемость</strong>. У нас есть Java-интерпретатор, способный выполнять байт-коды Java на любых машинах, где есть JRE и JVM; •<strong>распределённость</strong>. Речь идёт о Java-инструментах для создания распределённых приложений; •<strong>производительность</strong>. Just-in-time-компилятор (он же JIT) повышает скорость работы приложений, делая её сопоставимой с языками С и С++.</p>
6
<p>О широкой поддержке и развитии Java мы уже сказали. Но есть и другие положительные характеристики: •<strong>невысокий порог вхождения</strong>. Считается, что язык программирования Java изучать несколько проще, чем многие другие языки с Си-подобным синтаксисом; •<strong>объектная ориентированность</strong>. Как известно, Java-программы строятся на основе объектов и взаимодействия объектов - это даёт возможность задействовать все преимущества<a>ООП</a>; •<strong>переносимость и платформенная независимость</strong>. При программировании мы используем интерпретатор -<a>виртуальную машину Java</a>. Благодаря этому, программы могут переноситься на разные устройства и платформы. То есть код, написанный на языке программирования Java для одной платформы, может компилироваться в промежуточный байт-код. Таким образом, эта программа в итоге сможет запускаться и на других платформах, а всё благодаря интерпретации посредством JVM под каждую платформу; •<strong>развитая многопоточность</strong>. Средства программирования Java дают нам возможность управлять выполнением нескольких потоков - это позволяет создавать многопоточные приложения; •<strong>безопасность</strong>. Она достигается за счёт встроенной в JVM верификации байт-кода, отсутствия в Java ручного управления памятью, слежения за переполнением стека, наличия различных API, позволяющих контролировать безопасность, и т. п.; •<strong>отказоустойчивость</strong>. Повышается за счёт механизма исключения, который полезен как при компиляции, так при непосредственном выполнении. В итоге имеем снижение количества ошибок; •<strong>интерпретируемость</strong>. У нас есть Java-интерпретатор, способный выполнять байт-коды Java на любых машинах, где есть JRE и JVM; •<strong>распределённость</strong>. Речь идёт о Java-инструментах для создания распределённых приложений; •<strong>производительность</strong>. Just-in-time-компилятор (он же JIT) повышает скорость работы приложений, делая её сопоставимой с языками С и С++.</p>
7
<h2>С чего начать программирование на Java?</h2>
7
<h2>С чего начать программирование на Java?</h2>
8
<p>Если вы начинаете изучать Java с нуля, рекомендуется для начала усвоить основные понятия: что включено в язык программирования Java, что вообще представляет собой Java-программа и каким образом она выполняется. И только потом надо переходить к синтаксису и основам Java, а также к изучению библиотек.</p>
8
<p>Если вы начинаете изучать Java с нуля, рекомендуется для начала усвоить основные понятия: что включено в язык программирования Java, что вообще представляет собой Java-программа и каким образом она выполняется. И только потом надо переходить к синтаксису и основам Java, а также к изучению библиотек.</p>
9
<p>Немного ознакомившись с теорией, можно приступать и к изучению основ. Общая последовательность шагов выглядит приблизительно так:</p>
9
<p>Немного ознакомившись с теорией, можно приступать и к изучению основ. Общая последовательность шагов выглядит приблизительно так:</p>
10
<h2>Что надо для программирования на Java?</h2>
10
<h2>Что надо для программирования на Java?</h2>
11
<p>Чтобы программировать, разумеется, вам потребуется соответствующее ПО для разработки и запуска программ - это<strong>JDK (Java Development Kit)</strong>. Настроив JDK на компьютере, можно приступить к скачиванию и установке одной из<strong>IDE (Integrated Development Environment)</strong>- речь идёт, разумеется о среда для разработки ПО. Раз мы говорим о Java, то одной из самых популярных IDE для этого языка программирования является<strong>IntelliJ IDEA</strong>. Есть и альтернативные решения - NetBeans, Eclipse, JCreator, да и, собственно говоря, даже простой блокнот.</p>
11
<p>Чтобы программировать, разумеется, вам потребуется соответствующее ПО для разработки и запуска программ - это<strong>JDK (Java Development Kit)</strong>. Настроив JDK на компьютере, можно приступить к скачиванию и установке одной из<strong>IDE (Integrated Development Environment)</strong>- речь идёт, разумеется о среда для разработки ПО. Раз мы говорим о Java, то одной из самых популярных IDE для этого языка программирования является<strong>IntelliJ IDEA</strong>. Есть и альтернативные решения - NetBeans, Eclipse, JCreator, да и, собственно говоря, даже простой блокнот.</p>
12
<h2>Устанавливаем Java на компьютер</h2>
12
<h2>Устанавливаем Java на компьютер</h2>
13
<p>Первый шаг - установка JDK. Для этого: 1. Переходим на<a>сайт</a>Oracle. 2. Выбираем и скачиваем установочный файл в соответствии с типом своей ОС. 3. Выполняем установку, следуя рекомендациям установщика. 4. Настраиваем переменную окружения при использовании Windows.</p>
13
<p>Первый шаг - установка JDK. Для этого: 1. Переходим на<a>сайт</a>Oracle. 2. Выбираем и скачиваем установочный файл в соответствии с типом своей ОС. 3. Выполняем установку, следуя рекомендациям установщика. 4. Настраиваем переменную окружения при использовании Windows.</p>
14
<p>Если интересует подробное описание для Windows, можете посмотреть его, например,<a>здесь</a>.</p>
14
<p>Если интересует подробное описание для Windows, можете посмотреть его, например,<a>здесь</a>.</p>
15
<h2>Основные термины в Java</h2>
15
<h2>Основные термины в Java</h2>
16
<p>Начав изучать Java, вы неизбежно столкнётесь со следующими терминами: -<strong>Java Virtual Machine (JVM)</strong>- виртуальная машина Java. Представляет собой программный модуль, используемый для интерпретации исходного байт-кода в машинный код, а также для исполнения этого кода; -<strong>Java Runtime Environment (JRE)</strong>- среда выполнения Java. Включает реализацию JVM для конкретной платформы и комплект библиотек, используемых для выполнения Java-программ; -<strong>Java Development Kit (JDK)</strong>- набор инструментов программиста, используемых для написания Java-программ. Сюда входят компилятор, JRE, стандартные библиотеки Java, документация, разные утилиты. -<strong>исходный код</strong>- текстовый файл на Java с расширением<strong>.java</strong>; -<strong>байт-код</strong>- низкоуровневый машинно-независимый код, представляющий набор инструкций для JVM; -<strong>машинный код</strong>- комплект машинных инструкций в двоичном формате, которые выполняются процессором; -<strong>компиляция</strong>- процесс преобразования исходного кода в байт-код; -<strong>интерпретация</strong>- процесс преобразования байт-кода в машинный код; -<strong>платформа</strong>- программно-аппаратная среда, где осуществляется выполнение программ и приложений. Самые популярные платформы -Microsoft Windows, Linux, Solaris, Mac OS.</p>
16
<p>Начав изучать Java, вы неизбежно столкнётесь со следующими терминами: -<strong>Java Virtual Machine (JVM)</strong>- виртуальная машина Java. Представляет собой программный модуль, используемый для интерпретации исходного байт-кода в машинный код, а также для исполнения этого кода; -<strong>Java Runtime Environment (JRE)</strong>- среда выполнения Java. Включает реализацию JVM для конкретной платформы и комплект библиотек, используемых для выполнения Java-программ; -<strong>Java Development Kit (JDK)</strong>- набор инструментов программиста, используемых для написания Java-программ. Сюда входят компилятор, JRE, стандартные библиотеки Java, документация, разные утилиты. -<strong>исходный код</strong>- текстовый файл на Java с расширением<strong>.java</strong>; -<strong>байт-код</strong>- низкоуровневый машинно-независимый код, представляющий набор инструкций для JVM; -<strong>машинный код</strong>- комплект машинных инструкций в двоичном формате, которые выполняются процессором; -<strong>компиляция</strong>- процесс преобразования исходного кода в байт-код; -<strong>интерпретация</strong>- процесс преобразования байт-кода в машинный код; -<strong>платформа</strong>- программно-аппаратная среда, где осуществляется выполнение программ и приложений. Самые популярные платформы -Microsoft Windows, Linux, Solaris, Mac OS.</p>
17
-
<p>Лучше ориентироваться в основных терминах поможет следующая таблица:</p>
17
+
<p>Лучше ориентироваться в основных терминах п��может следующая таблица:</p>
18
<h2>Жизненный цикл Java-программы</h2>
18
<h2>Жизненный цикл Java-программы</h2>
19
<p>Жизненный цикл Java-программы начинается с момента написания исходного кода в текстовом формате. Как правило, обычно для решения этой задачи используют специальные среды разработки (IDE), хотя простейшие программы вы сможете набрать и в текстовом редакторе (в том же Notepad, поставляемым с Windows).</p>
19
<p>Жизненный цикл Java-программы начинается с момента написания исходного кода в текстовом формате. Как правило, обычно для решения этой задачи используют специальные среды разработки (IDE), хотя простейшие программы вы сможете набрать и в текстовом редакторе (в том же Notepad, поставляемым с Windows).</p>
20
<p>Итак, у нас создаётся исходный код, который сохраняется в файле с расширением<strong>.java</strong>.</p>
20
<p>Итак, у нас создаётся исходный код, который сохраняется в файле с расширением<strong>.java</strong>.</p>
21
<p>Вот пример<a>первой простейшей программы</a>HelloWorld.java, с которой начинают многие из новичков:</p>
21
<p>Вот пример<a>первой простейшей программы</a>HelloWorld.java, с которой начинают многие из новичков:</p>
22
public class HelloWorld { public static void main(String[] args) { System.out.println("Это моя первая программа"); } }<p>До того, как этот исходный код выполнится, произойдёт его компиляция в байт-код. Естественно, тут подключается компилятор, входящий в JDK. Благодаря его работе, мы получим файл, имеющий расширение<strong>.class</strong>. Этот файл содержит байт-код - то есть инструкции для JVM. Таким образом, написанная нами программа<strong>HelloWorld.java</strong>скомпилируется в файл<strong>HelloWorld.class</strong>.</p>
22
public class HelloWorld { public static void main(String[] args) { System.out.println("Это моя первая программа"); } }<p>До того, как этот исходный код выполнится, произойдёт его компиляция в байт-код. Естественно, тут подключается компилятор, входящий в JDK. Благодаря его работе, мы получим файл, имеющий расширение<strong>.class</strong>. Этот файл содержит байт-код - то есть инструкции для JVM. Таким образом, написанная нами программа<strong>HelloWorld.java</strong>скомпилируется в файл<strong>HelloWorld.class</strong>.</p>
23
<p>При желании мы можем посмотреть байт-код, хотя платформа Java и не предусматривает наличие инструментов для редактирования такого кода. Тем не менее есть возможность использовать утилиту дизасcемблера<strong>javap</strong>, входящую в состав JDK. С её помощью мы увидим:</p>
23
<p>При желании мы можем посмотреть байт-код, хотя платформа Java и не предусматривает наличие инструментов для редактирования такого кода. Тем не менее есть возможность использовать утилиту дизасcемблера<strong>javap</strong>, входящую в состав JDK. С её помощью мы увидим:</p>
24
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 }<p>Идём дальше. После написания и компиляции наша программа хранится в файле<strong>HelloWorld.class</strong>. Чтобы выполнить эту программу на любой из платформ, потребуется установленная JRE. А переносимость Java-программ на нужную платформу обеспечивается за счёт JVM.</p>
24
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 }<p>Идём дальше. После написания и компиляции наша программа хранится в файле<strong>HelloWorld.class</strong>. Чтобы выполнить эту программу на любой из платформ, потребуется установленная JRE. А переносимость Java-программ на нужную платформу обеспечивается за счёт JVM.</p>
25
<p>Итак, мы плавно подошли к исполнению программы - выполнению байт-кода JVM. Вот как это реализуется: 1. На компьютере происходит запуск JVM. 2. Начальный загрузчик классов JVM загружает, а потом инициализирует наш класс в памяти ПК (для нашего примера - это класс HelloWorld). 3. Далее в нашем классе JVM выполняет поиск метода public static void main(String[]). 4. Потом происходит выполнение кода метода main. Если нужно, осуществляется загрузка и инициализация прочих классов. 5. После выполнения кода производится уборка мусора (очистка памяти и закрытие программы JVM).</p>
25
<p>Итак, мы плавно подошли к исполнению программы - выполнению байт-кода JVM. Вот как это реализуется: 1. На компьютере происходит запуск JVM. 2. Начальный загрузчик классов JVM загружает, а потом инициализирует наш класс в памяти ПК (для нашего примера - это класс HelloWorld). 3. Далее в нашем классе JVM выполняет поиск метода public static void main(String[]). 4. Потом происходит выполнение кода метода main. Если нужно, осуществляется загрузка и инициализация прочих классов. 5. После выполнения кода производится уборка мусора (очистка памяти и закрытие программы JVM).</p>
26
<p>По результатам выполнения вышеописанных действий JVM интерпретирует байт-код в машинную инструкцию для процессора, учитывая тип ОС. Весь жизненный цикл программы на Java можно представить схематично:</p>
26
<p>По результатам выполнения вышеописанных действий JVM интерпретирует байт-код в машинную инструкцию для процессора, учитывая тип ОС. Весь жизненный цикл программы на Java можно представить схематично:</p>
27
<h2>Выбираем и устанавливаем среду разработки</h2>
27
<h2>Выбираем и устанавливаем среду разработки</h2>
28
<p>Если мы хотим программировать на Java быстро и эффективно, не обойтись без среды разработки - специального софта для написания Java-программ. Наиболее популярные IDE среди Java-разработчиков мы уже перечислили, поэтому повторяться не будем.</p>
28
<p>Если мы хотим программировать на Java быстро и эффективно, не обойтись без среды разработки - специального софта для написания Java-программ. Наиболее популярные IDE среди Java-разработчиков мы уже перечислили, поэтому повторяться не будем.</p>
29
<p>Для новичков более чем достаточно<strong>IntelliJ IDEA Community Edition</strong>. Выбрав её, вы получите в своё распоряжение необходимые плюсы: и подсказки, и возможность отладки и проверки кода, и удобство интеграции с БД и GitHub и т. п. Да и вообще, это хорошая практика - сразу начинать с использования профессионального инструмента Java-разработки.</p>
29
<p>Для новичков более чем достаточно<strong>IntelliJ IDEA Community Edition</strong>. Выбрав её, вы получите в своё распоряжение необходимые плюсы: и подсказки, и возможность отладки и проверки кода, и удобство интеграции с БД и GitHub и т. п. Да и вообще, это хорошая практика - сразу начинать с использования профессионального инструмента Java-разработки.</p>
30
<h2>Сколько времени уйдёт на изучение Java?</h2>
30
<h2>Сколько времени уйдёт на изучение Java?</h2>
31
<p>Тут всё индивидуально и зависит от интенсивности обучения. Вообще, чтобы изучить основы и выработать навыки программирования, вам потребуется не менее 6-12 месяцев, то есть будьте сразу готовы, что это долгий и кропотливый труд.</p>
31
<p>Тут всё индивидуально и зависит от интенсивности обучения. Вообще, чтобы изучить основы и выработать навыки программирования, вам потребуется не менее 6-12 месяцев, то есть будьте сразу готовы, что это долгий и кропотливый труд.</p>
32
<p>Обязательно составьте план своего изучения и выделяйте на это несколько часов в день. Помните, что главное - это практика.</p>
32
<p>Обязательно составьте план своего изучения и выделяйте на это несколько часов в день. Помните, что главное - это практика.</p>
33
<p>Естественно, все мы хотим сэкономить и думаем, что выучим язык программирования Java самостоятельно, используя многочисленные открытые источники. Да, кое-какие знания вы так приобретёте, но всё же это не лучший выход. Очень часто новички начинают буксовать на задачках (на том же Степике, например), в результате чего самостоятельное обучение затягивается, время идёт, жизнь меняется, ваше желание постепенно угасает. Итог - годы прошли, а вы до сих пор не программист.</p>
33
<p>Естественно, все мы хотим сэкономить и думаем, что выучим язык программирования Java самостоятельно, используя многочисленные открытые источники. Да, кое-какие знания вы так приобретёте, но всё же это не лучший выход. Очень часто новички начинают буксовать на задачках (на том же Степике, например), в результате чего самостоятельное обучение затягивается, время идёт, жизнь меняется, ваше желание постепенно угасает. Итог - годы прошли, а вы до сих пор не программист.</p>
34
<p><strong>Лучше всего - платные курсы</strong>. Именно платные - это станет хорошей мотивацией не бросить. Для начала пусть это будут основы и базовые знания. Если говорить об OTUS, то вам пригодятся<a>подготовительные Java-курсы</a>. Освоив их, можете переходить на<a>следующую ступень обучения</a>. Как вариант - сразу<a>выбор Java-специализации</a>.</p>
34
<p><strong>Лучше всего - платные курсы</strong>. Именно платные - это станет хорошей мотивацией не бросить. Для начала пусть это будут основы и базовые знания. Если говорить об OTUS, то вам пригодятся<a>подготовительные Java-курсы</a>. Освоив их, можете переходить на<a>следующую ступень обучения</a>. Как вариант - сразу<a>выбор Java-специализации</a>.</p>
35
<p>Итак, вот один из алгоритмов возможных действий: 1. Изучите основные понятия языка программирования Java. 2. Установите Java на свой ПК. 3. Установите IDE. 4. Напишите и запустите первую программу на Java. 5. Начните проходить любые курсы по основам Java (например,<a>подготовительные курсы от OTUS</a>). 6. Получив базовые знания, приступайте к<a>курсам по глубокому погружению в практику программирования на Java</a>.</p>
35
<p>Итак, вот один из алгоритмов возможных действий: 1. Изучите основные понятия языка программирования Java. 2. Установите Java на свой ПК. 3. Установите IDE. 4. Напишите и запустите первую программу на Java. 5. Начните проходить любые курсы по основам Java (например,<a>подготовительные курсы от OTUS</a>). 6. Получив базовые знания, приступайте к<a>курсам по глубокому погружению в практику программирования на Java</a>.</p>
36
<p>Да, будет сложно. Но если вы действительно хотите стать Java-программистом, у вас всё получится!</p>
36
<p>Да, будет сложно. Но если вы действительно хотите стать Java-программистом, у вас всё получится!</p>
37
37