Введение в Java. Изучаем Java

05.08.2019 Мониторы

Введение

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

Сортировка может быть реализована и на других языках программирования, таких как PHP, C++ и т.д. Просто на языке Java намного выгоднее. Подробности рассматривается ниже. Новизна состоит в том, что ранее не была реализована программа сортировки на данном языке и в данной интерпретации.

Для осуществления задачи был предложен алгоритм написания программы. Далее этот алгоритм был реализован на языке Java.

Описание языка программирования Java

Общие характеристики Java

Для написания программы сортировщика был выбран язык Java. Java - объектно-ориентированный язык программирования, разрабатываемый компанией Sun Microsystems с 1991 года и официально выпущенный 23 мая 1995 года. Изначально новый язык программирования назывался Oak (James Gosling) и разрабатывался для бытовой электроники, но впоследствии был переименован в Java и стал использоваться для написания апплетов, приложений и серверного программного обеспечения.

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

Одно из главных преимуществ языка Java - его независимость от платформы и типа компьютера, на которой выполняются программы. Таким образом, один и тот же код можно запускать под управлением операционных систем Windows, Linux, FreeBSD, Solaris, Apple Mac и др. Это становится очень важным, когда программы загружаются посредством глобальной сети интернет и используются на различных платформах. Язык программирования Java может работать не только со статичными текстами и графикой, но и различными динамическими объектами.

Другим, не менее важным преимуществом Java, является большая схожесть с языком программирования C++. Поэтому тем программистам, которые знакомы с синтаксисом С и С++ будет просто освоить Java.

Кроме того, Java - полностью объектно-ориентированный язык, даже в большей степени, чем С++. Все сущности в языке Java являются объектами, за исключением немногих основных типов (primitive types), например чисел.

Важно и то, что разрабатывать на Java программы, которые не содержат ошибок, значительно легче, чем на С++.

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

Для этого было сделано следующее:

разработчики исключили возможность явного выделения и освобождения памяти.

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

введение истинных массивов и запрещение указателей.

Теперь программисты не могут стереть данные из памяти по причине неправильного использования указателей.

была исключена возможность перепутать оператор присваивания с оператором сравнения на равенство. Как правило, проблема со знаком "=" очень часто приводит в С и С++ к логическим ошибкам, которые не так просто обнаружить. Особенно в крупных программах.

полностью исключено множественное наследование. Оно было заменено новым понятием - интерфейсом, идея которого была позаимствована из языка Objective C.

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

Последнее обновление: 26.09.2018

На сегодняшний момент язык Java является одним из самых распространенных и популярных языков программирования. Первая версия языка появилась еще в 1996 году в недрах компании Sun Microsystems, впоследствии поглощенной компанией Oracle. Java задумывался как универсальный язык программирования, который можно применять для различного рода задач. И к настоящему времени язык Java проделал большой путь, было издано множество различных версий. Текущей версией является Java 11, которая вышла в сентябре 2018 года. А Java превратилась из просто универсального языка в целую платформу и экосистему, которая объединяет различные технологии, используемые в целого ряда задач: от создания десктопных приложений до написания крупных веб-порталов и сервисов. Кроме того, язык Java активно применяется для создания программного обеспечения для целого ряда устройств: обычных ПК, планшетов, смартфонов и мобильных телефонов и даже бытовой техники. Достаточно вспомнить популярность мобильной ОС Android, большинство программ для которой пишутся именно на Java.

Особенности Java

Ключевой особенностью языка Java является то, что его код сначала транслируется в специальный байт-код, независимый от платформы. А затем этот байт-код выполняется виртуальной машиной JVM (Java Virtual Machine). В этом плане Java отличается от стандартных интерпретируемых языков как PHP или Perl, код которых сразу же выполняется интерпретатором. В то же время Java не является и чисто компилируемым языком, как С или С++.

Подобная архитектура обеспечивает кроссплатформенность и аппаратную переносимость программ на Java, благодаря чему подобные программы без перекомпиляции могут выполняться на различных платформах - Windows, Linux, Mac OS и т.д. Для каждой из платформ может быть своя реализация виртуальной машины JVM, но каждая из них может выполнять один и тот же код.

Java является языком с Си-подобным синтаксисом и близок в этом отношении к C/C++ и C#. Поэтому, если вы знакомы с одним из этих языков, то овладеть Java будет легче.

Еще одной ключевой особенностью Java является то, что она поддерживает автоматическую сборку мусора. А это значит, что вам не надо освобождать вручную память от ранее использовавшихся объектов, как в С++, так как сборщик мусора это сделает автоматически за вас.

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

Установка Java

Для работы программ на языке Java на целевой машине должна быть установлена JRE (Java Runtime Environment). JRE представляет минимальную реализацию виртуальной машины, а также библиотеку классов. Поэтому, если мы хотим запускать программы, то нам надо установить JRE. Для каждой конкретной платформы имеется своя версия JRE.

Однако, так как мы собираемся не только запускать программы, но и разрабатывать их, нам потребуется специальный комплект для разработки JDK (Java Development Kit). JDK уже содержит JRE, а также включает ряд дополнительных программ и утилит, в частности компилятор Java.

Загрузить и установить соответствующую версию JDK можно с с официального сайта Oracle: http://www.oracle.com/technetwork/java/javase/downloads/index.html

Итак, с выше упомянутого адреса загрузим программу установки JDK для последней версии Java.

Затем нас перебросит на страницу, где надо выбрать версию для целевой ОС - Windows, MacOS или Linux:

Для каждой ОС есть два варианта загрузки: в виде установщика, либо в виде архива, который не надо устанавливать. Например, моя ОС - Windows, поэтому я загружаю файл jdk_11_windows-x64_bin.exe, который представляет программу установки.

После загрузки запустим программу установки:

Оставим все опции по умолчанию и нажмем на Next для выполнения установки.

После завершения установки JDK мы увидим вот такое окно:

Итак, после установки JDK создадим первую программу на Java.

Язык Java. Введение.

Долгое время трудно было представить себе компьютерный журнал без статьи, посвященной языку Java. О нем писали даже такие популярные газеты и журналы, как The New York Times, The Washington Post и Business Week.

Невозможно припомнить, чтобы национальное общественное радио (National Public Radio) когда-либо посвящало языку программирования десятиминутную передачу. Хорошо это или плохо, зависит от точки зрения. А инвестиции объемом 100 миллионов долларов, вложенные в производство программного обеспечения, создаваемого с помощью конкретного языка программирования?! Телекомпании CNN, CNBC и другие средства массовой информации только и говорили, да и сейчас говорят, о том, как язык Java и то сможет, и это сделает.

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

На первых порах между рекламными обещаниями и реальными возможностями языка Java лежала пропасть. По мере его созревания технология становилась все более стабильной и надежной, а ожидания снизились до разумного уровня. Сейчас язык Java все шире используется для создания "промежуточного программного обеспечения" (middleware), поддерживающего связь между клиентами и ресурсами серверов (например, базами данных).

Несмотря на то, что эти важные приложения не поражают воображение, именно в этой области язык Java оказался наиболее полезным благодаря своей машинной независимости, многопоточности и возможностям сетевого программирования. Кроме того, язык Java захватил лидерство в области встроенных систем (embedded systems), став фактическим стандартом портативных устройств, виртуальных киосков, бортовых автомобильных компьютеров и т.п. Однако первые попытки переписать на языке Java широко распространенные программы для персональных компьютеров не увенчались успехом - полученные приложения оказались маломощными и медленными. С появлением новой версии некоторые из этих проблем удалось решить, и все же нужно признать, что пользователям, в общем-то, совершенно безразлично, на каком языке написаны купленные ими программы. Мы полагаем, что основные преимущества языка Java проявятся при создании новых видов устройств и приложений, а не при переписывании уже существующих программ.

Язык Java как средство программирования

Как язык программирования Java перевыполнил свои рекламные обещания. Несомненно, это один из лучших языков, доступных серьезным программистам. Потенциально Java имеет все предпосылки, чтобы стать великим языком программирования, однако, вероятно, сейчас уже слишком поздно. Когда появляется новый язык программирования, немедленно возникает неприятная проблема его совместимости с программным обеспечением, созданным ранее. Более того, даже если изменения в эти программы можно внести без вмешательства в их текст, создателям языка, который так горячо приветствовался публикой, как, например, язык Java, сложно прямо сказать: "Да, возможно мы ошиблись при разработке версии X, но версия Y будет лучше". В итоге, ожидая появления дальнейших улучшений, мы должны констатировать, что структура языка Java в ближайшем будущем существенно не изменится.

Возникает очевидный вопрос: "Как удалось улучшить язык Java? ". Оказывается, это сделано не за счет усовершенствования собственно языка программирования, а путем коренного изменения библиотек программ, написанных на языке Java. Компания Sun Microsystems изменила все: начиная с имен отдельных библиотечных функций (сделав их более осмысленными) и методов работы графических модулей (изменив способ обработки событий и частично переписав рабочие программы), и заканчивая созданием новых свойств языка, например, средств вывода информации на печать, которых не было в версии Java 1.0. В результате получилась гораздо более полезная программная платформа, чем все предыдущие версии языка Java.

Компания Microsoft выпустила в свет свой собственный продукт под названием J++, имеющий отношение к языку Java. Язык J++ интерпретируется виртуальной машиной, совместимой с виртуальной машиной языка Java (Java Virtual Machine) при выполнении байт-кода, но интерфейсы с внешними кодами у этих языков значительно различаются. Языки J++ и Java имеют практически одинаковый синтаксис. Однако компания Microsoft создала дополнительные языковые конструкции. Все они имеют довольно сомнительную ценность, за исключением интерфейса Windows API. Помимо того, что у этих языков одинаковый синтаксис, их основные библиотеки (строки, утилиты, средства сетевого программирования, средства поддержки многопоточности, математические библиотеки и т.п.), по существу, также совпадают.

Однако графические библиотеки, пользовательский интерфейс и доступ к удаленным объектам у этих языков совершенно разные. В настоящее время компания Microsoft больше не поддерживает язык J++, разработав новый язык С#, имеющий много общего с Java, но использующий другую виртуальную машину. В этой книге ни язык J++, ни язык С# не описываются.

Преимущества языка Java

1) Одно из основных преимуществ языка Java - независимость от платформы, на которой выполняются программы : один и тот же код можно запускать под управлением операционных систем Windows, Solaris, Linux, Machintosh и др.
Это действительно необходимо, когда программы загружаются через Интернет для последующего выполнения под управлением разных операционных систем.

2) Другое преимущество заключается в том, что синтаксис языка Java похож на синтаксис языка C++, и программистам, знающим языки С и C++, его изучение не составляет труда . Правда, для программистов, владеющих языком Visual Basic, этот синтаксис, возможно, будет непривычен.

Если вы никогда не программировали на языке C++, некоторые термины, использованные в этом разделе, будут вам непонятны. В этом случае можете пропустить его. Пока вы доберетесь до конца главы 6, эти термины станут для вас привычными.

3) Кроме того, Java - полностью объектно-ориентированный язык, даже в большей степени, чем C++ . Все сущности в языке Java являются объектами, за исключением немногих основных типов (primitive types), например чисел. (Поскольку с помощью объектно-ориентированного программирования легко разрабатывать сложные проекты, оно заменило собой более древнее структурное программирование. Если вы не знакомы с объектно-ориентированным программированием, главы 3-6 предоставят вам все необходимые сведения о нем.)

Однако разработать еще один, слегка улучшенный, диалект языка C++ недостаточно. Принципиально важно, чторазрабатывать программы, не содержащие ошибок, наязы- ке Java легче, чем наязыке C++. Почему? Разработчики языка Java долго размышляли о том, отчего программы, написанные на языке C++, так подвержены ошибкам. Они снабдили язык Java средствами, позволяющими исключить саму возможность создавать программы, в которых были бы скрыты наиболее распространенные ошибки. Для этого в языке Java сделано следующее.

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

5) Введены истинные массивы и запрещена арифметика указателей.
Теперь программисты в принципе не могут стереть данные из памяти вследствие неправильного использования указателей.

6) Исключена возможность перепутать оператор присваивания с оператором сравнения на равенство.
Теперь нельзя даже скомпилировать выражение if(ntries = 3) . . . (программисты на языке Visual Basic могут вообще не заметить здесь никакой проблемы, поскольку эта ошибка - источник большинства недоразумений в языках С и C++).

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

Характерные особенности языка Java

Простой
Интерпретируемый
Распределенный
Надежный
Безопасный
Машинонезависимый
Объектно-ориентированный
Высокопроизводительный
Многопоточный
Динамичный
Не зависящий от архитектуры компьютера

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

Простой

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

Синтаксис языка Java, по существу, представляет собой очищенный вариант синтаксиса языка C++. В этом языке нет заголовочных файлов, арифметики указателей (и самих указателей), структур, объединений, перегрузки операторов, виртуальных базовых классов и т.п. (Различия между языками Java и C++ описываются в замечаниях о языке C++, разбросанных по всей книге.) Однако разработчики не стремились исправить все недостатки языка C++.

Например, синтаксис оператора switch в языке Java остался неизменным. Зная язык C++, перейти к синтаксису языка Java будет легко.
Если обычно вы используете визуальную среду программирования (например Visual Basic), язык Java покажется вам сложным.
Его синтаксис часто выглядит довольно странным (хотя понять смысл выражения не составляет труда). Важнее то, что при работе на языке Java приходится намного больше программировать. Прелесть языка Visual Basic заключается в том, что его визуальная среда программирования позволяет почти автоматически создавать инфраструктуру приложения. Чтобы достичь того же результата с помощью языка Java, необходимо программировать вручную, но при этом получаются намного более короткие программы.

Существует, однако, и третья разновидность сред программирования, позволяющих создавать программы с помощью технологии "перетащить-и-опустить" ("drag-and-drop").

Другой аспект простоты - краткость. Одна из целей языка Java - обеспечить разработку программ, которые можно было бы совершенно самостоятельно выполнять на небольших машинах. Размер основного интерпретатора и средств поддержки классов составляет около 40 Кбайт; стандартные библиотеки и средства поддержки потоков (особенно номное микроядро (self-contained microkernel)) занимают еще 17: Кбайт.
Это огромный успех. Заметим, однако, что библиотеки средств поддержки графического пользовательского интерфейса значительно крупнее.

Объектно-ориентированный

Попросту говоря, объектно-ориентированное программирование - это метод программирования, в центре внимания которого находятся данные (т.е. объекты) и средства доступа к ним. Проводя аналогию со столярным делом, можно сказать, что объектноориентированный мастер в основном сосредоточен на стуле, который он изготавливает, и лишь во вторую очередь его интересуют инструменты, необходимые для этого; в то же время необъектноориентированный столяр думает лишь о своих инструментах. Объектноориентированные свойства языка Java и C++, по существу, совпадают.

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

Механизмы отражения (глава 5) и сериализации объектов (глава 12) позволяют реализовать устойчивые объекты и средства для создания графических пользовательских интерфейсов на основе готовых компонентов.

Если вы никогда не программировали на объектно-ориентированных языках, внимательно изучите главы 4-6. В этих главах излагаются основы объектно-ориентированного программирования и показываются его преимущества при разработке сложных проектов над такими традиционными, процедурно-ориентированными языками, как язык С или Basic.

Распределенный

Java обладает большой библиотекой программ для передачи данных на основе таких протоколов TCP/IP (Transmission Control Protocol/Internet Protocol-протокол управления передачей/Интернет-протокол), как HTTP (Hypertext Transfer Protocol - протокол передачи гипертекстов) или FTP (File Transfer Protocol-протокол передачи файлов). Приложения, написанные на языке Java, могут открывать объекты и получать к ним доступ через сеть с помощью и URL-адресов (Uniform Resource Location - универсальный адрес ресурса) так желегко, как авлокальной сети.

Язык Java предоставляет мощные и удобные средства для работы в сети. Каждый, кто когда-либо пытался писать программы для работы в Интернет на других языках, будет приятно удивлен тем, как легко решаются на языке Java самые трудные задачи, например, открытие сетевых соединений (sockets connection). Элегантный механизм, состоящий из так называемых сервлетов (servlets), делает работу на сервере чрезвычайно эффективной.

Сервлеты поддерживаются многими популярными Web- серверами. (Работа в сети будет описана во втором томе.) Связь между распределенными объектами в языке Java обеспечивается механизмом вызова удаленных методов (эта тема также раскрывается во втором томе).

Надежный

Язык Java предназначен для создания программ, которые должны надежно работать в любых ситуациях. Основное внимание в языке Java уделяется раннему обнаружению возможных ошибок, динамической проверке (во время выполнения программы), а также исключению ситуаций, подверженных ошибкам... Единственное значительное отличие языка Java от языка C++ заключается в модели указателей, принятой в языке Java, которая исключает возможность перезаписи участка памяти и повреждения данных.

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

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

Безопасный

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

В первом издании мы написали: "Никогда не говори никогда",- и оказались правы. Группа экспертов по вопросам безопасности из Принстонского университета обнаружила первые ошибки в системе защиты версии Java 1.0 вскоре после появления в продаже первой версии набора инструментальных средств JDK. Более того, и они, и другие специалисты продолжали и впоследствии находить все новые и новые ошибки в механизмах безопасности всех последующих версий языка Java.

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

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

Web-страница компании Sun, посвященная вопросам безопасности, имеет следующий URL-адрес: http://java.sun.com/sfaq/.

Перечислим некоторые ситуации, возникновение которых предотвращает система безопасности языка Java.

1) Переполнение стека выполняемой программы, к которюму приводил печально известный "червь", распространявшийся в Интернет.

2) Повреждение участков памяти, находящихся за пределами пространства, выделенного процессу.

3) Считывание и запись локальных файлов при использовании безопасного загрузчика классов, например Web-броузера, который запрещает такой доступ к файлам.

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

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

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

Не зависящий от архитектуры

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

Это не новая идея. Более 20 лет назад и в системе реализации языка Pascal, разработанной Никлаусом Виртом (Niclaus Wirth), и в системе UCSD Pascal применялась та же самая технология. Использование байт-кодов дает большой выигрыш при выполнении программы (правда, синхронная компиляция во многих случаях его компенсирует). Разработчики языка Java прекрасно справились с разработкой набора команд байт-кода, которые отлично работают на большинстве современных компьютеров, легко транслируясь в реальные машинные команды.

Машинонезависимый

В отличие от языков С и C++, в спецификации Java нет аспектов, зависящих от системы реализации. И размер основных типов данных, и арифметические операции над ними точно определены.

Например, тип int в языке Java всегда означает 32-разрядное целое число. В языках С и C++ тип int может означать как 16-разрядное, так и 32-разрядное целое число, а также целое число произвольного размера, по выбору разработчика конкретного компилятора. Единственное ограничение заключается в том, размер типа int не может быть меньше размера типа short int и больше размера типа long int. Фиксированный размер числовых типов позволяет избежать многих неприятностей, связанных с выполнением программ на разных компьютерах. Бинарные данные хранятся и передаются в фиксированном формате, что также позволяет избежать недоразумений, связанных с разным порядком записи байтов на разных платформах (конфликт "big endian/little endian"). Строки сохраняются в стандартном формате Unicode.

Библиотеки, представляющие собой часть системы, определяют машинонезависимый интерфейс. Например, в языке предусмотрен абстрактный класс Window и его реализации для операционных систем Unix, Windows и Macintosh.

Каждый, кто когда-либо пытался написать программу, которая одинаково хорошо работала бы под управлением операционных систем Windows, Macintosh и десяти разновидностей системы Unix, знает, что это очень трудная задача. Версия Java предприняла героическую попытку решить эту проблему, предоставив простой инструментальный набор, адаптирующий обычные элементы пользовательского интерфейса к большому количеству программных платформ. К сожалению, библиотека, на которую было затрачено немало труда, не позволила достичь приемлемых результатов на разных платформах. (При этом на разных платформах в графических программах проявлялись разные ошибки.)

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

Интерпретируемый

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

Возможно, это дает преимущество при разработке приложений, однако приведенная цитата - явное преувеличение. В любом случае компилятор языка Java, входящий в набор инструментальных средств JSDK (Java Software Development Kit), работает довольно медленно. (Некоторые компиляторы, принадлежащие к третьей разновидности, например, компиляторы компании IBM, работают намного быстрее.) Скорость перекомпиляции - это всего лишь один из факторов, характеризующих эффективность среды программирования. Сравнив скорость работы сред программирования на языке Java и языке Visual Basic, вы, возможно, будете разочарованы.

Высокопроизводительный

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

Если для выполнения байт-кодов применяется интерпретатор, не следует употреблять словосочетание "высокая производительность". Однако на многих платформах возможен другой вид компиляции, обеспечиваемый синхронными компиляторами (just-in-time compilers-JIT). Они транслируют байт-код в машинозависимый код, сохраняют результат в памяти, а затем вызывают его при необходимости. Поскольку при этом интерпретация выполняется только один раз, этот подход во много раз увеличивает скорость работы.

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

МНОГОПОТОЧНЫЙ

Обеспечивает лучшую интерактивность и выполнение программы.

Если вы когда-либо пытались организовать многопоточные вычисления на каком- нибудь еще языке программирования, вы будете приятно удивлены тем, как это легко сделать на языке Java. Потоки в языке Java могут использовать преимущества многопроцессорных систем, если операционная система позволяет это сделать. К сожалению, реализации потоков на большинстве платформ сильно отличаются друг от друга, а разработчики языка Java не предпринимают никаких попыток достичь единообразия. Только код для вызова потоков остается одинаковым для всех машин; язык Java перекладывает реализацию многопоточности на базовую операционную систему или библиотеку потоков. (Потоки описываются во втором томе.) Несмотря на это, именно легкость организации многопоточных вычислений делает язык Java таким привлекательным для разработки программного обеспечения серверов.

Динамичный

Во многих отношениях язык Java является более динамичным, чем языки С или C++. Он был разработан так, чтобы легко адаптироваться к постоянно изменяющейся среде. В библиотеки можно свободно добавлять новые методы и объекты, не причиняя никакого вреда. Язык Java позволяет легко получать информацию о ходе выполнения программы.

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

Язык Java и Интернет

Идея проста- пользователи загружают байт-коды языка Java из Интернет и выполняют их на своих машинах. Программы Java, работающие под управлением Web-броузеров, называются апплетами. Для использования апплета нужен Web-броузер, поддерживающий язык Java и способный интерпретировать байт-коды. Лицензия на исходные коды языка Java принадлежит компании Sun, настаивающей на неизменности как самого языка, так и структуры его основных библиотек. К сожалению, в реальности все не так. Разные версии броузеров Netscape и Internet Explorer поддерживают разные версии языка Java, причем некоторые из этих версий значительно устарели. Эта достойная сожаления ситуация создает все больше препятствий при разработке апплетов, позволяющих использовать преимущества последней версии языка Java. Чтобы решить эту проблему, компания Sun разработала программу Java Plug-in, позволяющую создавать наиболее современную среду для запуска программ на языке Java на основе броузеров Netscape и Internet Explorer.

Загрузка апплета напоминает внедрение изображения в Web-страницу. Апплет становится частью страницы, а текст обтекает занятое им пространство. Однако отличие заключается в том, что изображение теперь является живым (alive). Оно реагирует на команды пользователя, изменяет свой внешний вид и обеспечивает пересылку данных между компьютером, на котором просматривается апплет, и компьютером, управляющим этим апплетом.

Загрузка апплета напоминает вставку рисунка в Web-страницу. Апплет становится частью страницы, а текст обтекает занимаемое им место. Дело в том, что изображение является "живым". Оно реагирует на команды пользователя, изменяет свой внешний вид и выполняет пересылку данных между компьютером, на котором выполняется апплет, и компьютером, управляющим этим апплетом.

На рис. 1.1 показан хороший пример динамической Web-страницы, выполняющей сложные вычисления и применяющей апплет для изображения молекул. Чтобы лучше понять структуру молекулы, можно вращать ее либо изменять масштаб изображения, используя мышь. Такие манипуляции нельзя реализовать на статических Web- страницах, однако апплеты делают это возможным. (Этот апплет можно найти по адресу http: //jmol.sourceforge.net.)

Рис. 1.1. Апплет Jmol

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

Почти то же самое можно сделать с помощью языка Dynamic HTML, форм языка HTML (Hypertext Markup Language - язык разметки гипертекстов) или языка сценариев, например, языка JavaScript. Разумеется, первые апплеты предназначались для анимации: вращающиеся глобусы, танцующие персонажи мультфильмов, вычурные тексты и т.п. Однако большинство из перечисленного могут делать и анимированные GIF-файлы, а язык Dynamic HTML в сочетании с разработкой сценариев делает намного больше, чем апплеты.

В результате несовместимости броузеров и несогласованности процесса загрузки через медленные сетевые соединения апплеты, предназначенные для Web-страниц, не стали огромным достижением. В локальных сетях (intranets) ситуация совершенно иная. В них обычно не возникают проблемы, связанные с пропускной способностью канала, поэтому время загрузки апплетов несущественно. В локальной сети можно выбирать нужный броузер или применять программу Java Plug-In. Сотрудники не могут переместить программу, доставленную через сеть, в неправильное место или неверно ее установить, а системному администратору не нужно обходить все клиентские машины и обновлять на них программы. Большое количество программ, предназначенных для учета товаров, планирования отпуска, возмещения транспортных расходов и тому подобного, были разработаны многими корпорациями в виде апплетов, использующих броузеры.

Пока мы писали книгу, маятник вновь качнулся от клиентских программ в сторону программирования серверных приложений (server-side programming). В частности, прикладные серверы (application servers) могут использовать мониторинговые возможности виртуальной машины Java для автоматического выравнивания нагрузки, объединения связей с базой данных, синхронизации объектов, безопасного завершения работы и повторной загрузки, а также для выполнения других процессов, необходимых для масштабируемых серверных приложений, которые почти невозможно корректно реализовать. Таким образом, программисты, создающие приложения, получили возможность купить эти сложные механизмы, вместо того, чтобы разрабатывать их самостоятельно. Это повысило производительность труда программистов - они сосредоточились на логике своих программ, не отвлекаясь на детали, связанные с работой серверов.

Что такое Java или особенности языка


Если вы спросите, что такое Java, то вам можно сказать о Java как о языке общего назначения, объектно-ориентированном, который выглядит очень похоже на C и C ++, но проще в использовании и позволяет создавать более надежные программы. К сожалению, это определение не даст вам полного понимания Java. Более подробное определение дано Sun Microsystems и является столь же актуальным, хотя и было озвучено в далеком 2000 году:

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

Java является простым языком . Java изначально был смоделирован с подобия C и C ++, только убраны некоторые потенциально непонятные элементы. Указатели, множественное наследование реализации, а также перегрузка операторов – эти некоторые C / C ++ функции не являются частью Java. Функция не является обязательной в C / C ++, но необходима для Java – это сборщик мусора, который автоматически высвобождает объекты и массивы.

Java является объектно-ориентированным языком . Объектно-ориентированный фокус в Java позволяет разработчикам работать над адаптацией Java, чтобы решить проблему, а не заставлять нас манипулировать проблемой для удовлетворения языковых ограничений. Этим он отличается от структурированного языка, как, например, С. Например, в то время как Java позволяет сосредоточиться на сберегательном счете объектов, C требует, чтобы вы думали отдельно об экономии состояния счета (такой баланс) и формах поведения (например, ввод и вывод).

Java позволяет работать с сетью . Обширная сетевая библиотека Java позволяет легко справиться с интернет-протоколом (TCP / IP), а также такими сетевыми протоколами, как HTTP (Hypertext Transfer Protocol) и FTP (File Transfer Protocol). С помощью библиотек задача создания сетевых соединений упрощается. Кроме того, Java программы могут получить доступ к объектам через TCP / IP сети, с помощью унифицированных указателей информационных ресурсов (URL), с такой же легкостью, как и к файлам, находящимся на локальном компьютере.

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

Java является надежным языком . Java программы должны быть надежными, поскольку они используются в потребительских и критически важных приложениях, начиная от Blu-Ray-плееры или систем воздушного контроля в автомобилях. Банковские клиенты и сервера пишутся на этом языке. Особенности языка, которые помогают сделать Java надежным, включают в себя декларации, дублирование проверки типа во время компиляции и выполнения (для предотвращения проблем несоответствия версий), массивы с автоматической проверкой границ, отсутствие указателей.

Другим аспектом надежности Java является то, что циклы должны находиться под контролем логических выражений вместо целых выражений, где 0 является ложным и ненулевое значение верно. Например, Java , не допускает цикл С-типа как в while (x) x++; поскольку цикл может не закончиться, как и ожидалось. Вместо этого вы должны явно обеспечить логическое выражение, например, в while (x != 10) x++; (Что означает, что цикл будет выполняться до тех пор x не равен 10).

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

Теоретически, Java является безопасным. На практике различные уязвимости были обнаружены и эксплуатируются. В результате, Sun Microsystems и Oracle затем в настоящее время продолжают выпускать обновления безопасности.

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

Java представляет собой портативный язык . Архитектура нейтральности способствует мобильности. Библиотеки Java также способствуют мобильности. В случае необходимости они предоставляют типы, которые соединяют код Java с возможностями конкретных платформ наиболее портативным способом.

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

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

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

Таким образом, мы разобрали особенности языка Java. Если вам требуется написать программу на этом языке, сделать курсовую работу или диплом, то можете обратиться ко мне – [email protected] – я вам обязательно помогу.

06.11.17 9.8K

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

Что такое язык программирования Java?

В 1991 году «Зелёная команда », подразделение Sun Microsystems , возглавляемое Джеймсом Гослингом , создала язык для программирования бытовых электронных устройств. На тот момент он назывался Oak («Дуб »). Почему «Дуб »? Просто потому, что за окном рабочего кабинета Гослинга росло это дерево.

«Зелёная команда » продемонстрировала использование Oak в интерактивном телевизоре. Но для цифрового кабельного телевидения тех лет эта технология была слишком передовой. Одновременно с этим набирал популярность интернет, для которого новый язык программирования подходил лучше всего.

Через некоторое время новый язык переименовали в Green , и уже после этого - в Java , в честь кофе с острова Ява. Поэтому на логотипе Java изображена кружка с кофе.

Во время разработки Java были популярны C/С++ , поэтому Гослинг сделал синтаксис языка похожим на C/C++ и реализовал для него принцип «написать один раз - запустить где угодно ». В 1995 году Sun Microsystems выпустили первую официальную версию Java . И одновременно с этим было объявлено, что Java войдёт в состав браузера Netscape Navigator .

В 2010 году компания Sun Microsystems вместе с языком программирования Java была приобретена корпорацией Oracle .

История версий Java

  1. Июнь 1991 – старт проекта разработки языка программирования Java .
  2. JDK 1.0 – Январь 1996 года.
  3. JDK 1.1 – Февраль 1997 года.
  4. J2SE 1.2 – Декабрь 1998 года.
  5. J2SE 1.3 – Май 2000 года.
  6. J2SE 1.4 – Февраль 2002 года.
  7. J2SE 5.0 – Сентябрь 2004 года.
  8. Java SE 6 – Декабрь 2006 года.
  9. Java SE 7 – Июль 2011 года.
  10. Java SE 8 – 18 марта 2014 года.
  11. Java SE 9 – 21 сентября 2017 года.

Функции языка программирования Java

Java - межплатформенный язык

Код Java , написанный на одной платформе (то есть операционной системе ), можно запустить без изменений на других платформах.

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

Объектно-ориентированный язык программирования

Существуют различные стили программирования, и один из самых популярных - объектно-ориентированное программирование. При таком подходе сложная проблема разбивается на более мелкие путём создания объектов. Благодаря чему код можно использовать повторно.

Объектно-ориентированные функции есть во многих языках программирования, включая Java , Python и C++ . Если вы серьёзно настроены освоить программирование, объектно-ориентированный подход стоит включить в план своего обучения.

Java работает быстро

Ранние версии языка программирования Java часто критиковали за медленную работу. Но сегодня ситуация кардинально поменялась. Новые версии JVM работают значительно быстрее, а интерпретирующие их процессоры становятся всё шустрее.

Сегодня Java - один из самых быстрых языков программирования. Хорошо оптимизированный Java-код работает почти так же быстро как низкоуровневые языки программирования, такие как C/C++ и намного быстрее, чем Python , PHP и т.д.

Java - безопасная платформа

Java представляет собой :

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

Обширная базовая библиотека

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

java.lang – это продвинутые функции для строк, массивов и т.д.

java.util – библиотека для работы со структурами данных, регулярными выражениями, датой и временем и т.д.

kava.io - библиотека для ввода/вывода файлов, обработки исключений и т.д.

Применение платформы Java

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

  1. Приложения для Android - для разработки Android-приложений язык программирования Java часто используется в сочетании с Android SDK (от английского software development kit - комплект разработки программного обеспечения ).
  2. Веб-приложения - Java используется для создания сетевых приложений с помощью серверных программ, фреймворка Struts и JSP . Вот некоторые популярные веб-приложения, написанные на Java: Google.com , Facebook.com , eBay.com , LinkedIn.com .

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

  1. Разработка программного обеспечения – на Java написаны такие программы как Eclipse , OpenOffice , Vuze , MATLAB и многие другие.
  2. Обработка Big Data – для обработки «больших данных » можно воспользоваться фреймворком Hadoop , написанным на Java .
  3. Трейдинговые системы – используя платформу Oracle Extreme Java Trading Platform , можно писать программы для трейдинга.
  4. Встраиваемые устройства – на основе технологии Java Embedded от Oracle сегодня работают миллиарды устройств, таких как телевизоры, SIM-карты , проигрыватели Blu-ray и т.д.

Также программирование на Java используется для разработки игр, научных приложений (к примеру, для обработки естественного языка ) и во многих других областях.

Терминология Java, которую следует знать

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

Язык программирования Java – межплатформенный объектно-ориентированный язык программирования общего назначения, обладающий широкими возможностями.

Java 9 – последняя на момент написания данной статьи версия Java .

Java EE , Java Me и Java SE – эти названия обозначают Java Enterprise Edition , Micro Edition и Standard Edition , соответственно.

Java EE нацелена на приложения, запускаемые на серверах. Java ME создана для ограниченных по мощности устройств, таких как встраиваемые устройства. Java SE - стандартное издание Java для написания обычных программ.

Если вы новичок в Java-программировании , рекомендуем начать с Java SE .

JVM — Java Virtual Machine («виртуальная машина Java ») - это программа, позволяющая компьютеру запускать программы, написанные на Java .

JRE – Java Runtime Environment («среда выполнения Java ») включает в себя JVM , соответствующие библиотеки и другие компоненты, необходимые для запуска программ. Но в JRE нет компилятора, отладчика и других средств разработки.

JDK – Java Development Kit (комплект Java разработчика ) содержит JRE и другие инструменты разработки, такие как компиляторы, отладчики и т.д.

Как запустить Java на своей операционной системе

Как запустить Java на Mac OS

Вот что нужно сделать для Java программирование с нуля и установки платформы на Mac OS X или macOS :

  1. Скачайте свежую версию Java (JDK ) со страницы загрузки Java SE .
  2. Дважды кликните по скачанному DMG-файлу и следуйте инструкциям программы-установщика.
  3. Для верификации установки откройте терминал и введите следующую команду:

javac –version

Если Java установлена верно, на экран будет выведена версия программы (например, javac 1.8.0_60 ).

Следующим шагом будет установка IDE (интегрированной среды разработки ) для написания и запуска Java-кода . Мы установим бесплатную версию IntelliJ IDEA и запустим на ней Java . Вот что нужно для этого сделать:

  1. Перейдите на страницу загрузки IntelliJ и скачайте бесплатную версию Community Edition .
  1. Откройте скачанный DMG-файл и следуйте инструкциям по установке. Для быстрого доступа можно переместить IntelliJ IDEA в папку «Программы ».
  2. Откройте IntelliJ IDEA . Выберите опцию «Don ’ t import settings » («Не импортировать настройки ») и нажмите «Ok » . После этого примите политику приватности Jetbrains , нажав на кнопку «Accept » .
  3. Теперь можно настроить интерфейс под себя. Также можно пропустить этот шаг и оставить всё по умолчанию. Если не уверены, просто пропускайте этот шаг, нажав кнопку «Skip All and Set Defaults » («Пропустить всё и установить настройки по умолчанию »).

  1. Программа покажет вам страницу приветствия. Нажмите на кнопку «Create New Project » («Создать новый проект »).
  2. В следующем окне выберите «Java » в левой панели и нажмите «New » вверху окна программы для выбора «JDK » . Здесь надо выбрать место, куда установили JDK , после чего нажать Next .

  1. У вас будет вариант создать проект из шаблона («Create project from template » ). Игнорируем его и нажимаем кнопку «Next » .
  2. На следующем шаге установки языка программирования Java введите имя проекта и нажмите кнопку «Finish » .
  3. В левой панели вы увидите свой проект. Если панели не видно, перейдите в меню Views > Tool Windows > Project .
  4. Зайдите в Hello > New > Java и задайте имя класса. Мы назвали его First .

  1. Для запуска только что написанной программы, зайдите в Run > Run… Нажмите на First (то есть имя созданного нами файла

Как запустить Java на Linux

Для запуска примеров из уроков программирования с нуля Java на Linux понадобится JAVA SE Development Kit (JDK ) и IDE для разработки своих проектов. Следуйте инструкции шаг за шагом, чтобы начать работу с Java .

Установите Java

  1. Откройте терминал и наберите следующую команду для установки Java:

    sudo add-apt-repository ppa:webupd8team/java sudo apt update; sudo apt install oracle-java8-installer

  1. Примите лицензионное соглашение и условия использования, нажав «OK » и «Yes » , соответственно.
  2. Вы установили Java . Чтобы проверить, что установка прошла без ошибок, введите в терминале следующую команду:

java –version

Если выводится текущая версия, установка прошла успешно. Если же нет, сверьтесь со страничкой помощи Oracle .

Установка IntelliJ IDEA

  1. Перейдите на .

  1. Скачайте бесплатную версию Community Edition , нажав кнопку «Загрузить ».
  2. После скачивания смените в терминале директорию на директорию загрузок и извлеките tar-файл Java в папку /opt следующей командой:

sudo tar xf .tar.gz -C /opt/

  1. После распаковки поменяйте директорию на папку bin программы IntelliJ IDEA :

    cd /opt//bin

  2. Для запуска IDE вводим следующую команду:
  3. Выбираем «Don ’ t import settings » («Не импортировать настройки ») и нажимаем «OK » . После этого принимаем политику приватности Jetbrains , нажав на кнопку «Accept » .
  4. Теперь для прохождения курсов программирования Java можно настроить интерфейс под себя. Создайте ярлык на рабочем столе для быстрого доступа к программе. После этого для запуска IDE нажимаем «Next » на всех следующих этапах.
  5. Программа покажет страницу приветствия. Нажмите «Create New Project » («Создать новый проект »).
  6. В следующем окне выберите «Java » в левой панели и убедитесь, что в строке Project SDK выбрана Java . Если нет, то выберите местоположение, куда установили JDK: /usr/lib/jvm/java-8-oracle.

  1. Два раза нажимаем «Next » и создаём проект.
  2. На следующем шаге введите имя проекта и нажмите кнопку «Finish » . Теперь в левой панели вы увидите свой проект. Если этой панели не видно, перейдите в меню Views > Tool Windows > Project .
  3. Добавьте новый класс Java . Выберите src на левой панели правой кнопкой и зайдите в New > Java Class . Задайте имя класса. В имени класса не должно быть пробелов.

  1. Напишите Java-код и сохраните проект.
  2. Для запуска программы, зайдите в Run > Run … Нажмите на HelloWorld (название проекта ) - программа скомпилирует файл и запустит его.

Как запустить Java на Windows (XP, 7, 8 и 10)

Для освоения Java основ программирования и запуска платформы на Windows потребуется JAVA SE Development Kit (JDK) и IDE для разработки проектов. Следуйте пошаговой инструкции, приведенной ниже:

Установка Java

  • Перейдите на страницу загрузки Java Standard Edition Development Kit .
  1. В разделе Java SE Development Kit вверху таблицы нажмите «Accept License agreement» («Принять лицензионное соглашение »). Затем кликните по ссылке Windows (x64) , если у вас 64-битная операционная система или Windows (x86) , если у вас 32-битная ОС .

  1. После скачивания запустите установочный файл и следуйте инструкциям, которые будут появляться на экране. Нажмите «Next ». Выберите все функции, нажав «This feature will be installed on local hard drive » и скопируйте место установки (оно выделено жёлтым ) в «Блокнот », после чего снова нажмите «Next ».

  1. В процессе установки появится запрос об установке JRE . Нажмите «Next » , а затем «Finish » для завершения установки.
  2. Теперь необходимо отредактировать переменную PATH . Перейдите в Панель управления > Система и безопасность > Система . В левой панели выберите «Дополнительные параметры системы».

  1. Нажмите «Переменные среды» . В разделе «Системные переменные» найдите переменную PATH и в следующем окне нажмите «Изменить» .

  1. Выберите весь текст в поле «Значение переменной» и скопируйте его в отдельный текстовый файл. Так будет легче его отредактировать и проверить на наличие ошибок. Посмотрите, есть ли в скопированном тексте строка: C : ProgramData Oracle Java javapath ; . Если да, то можно переходить к следующему шагу. Если нет, то вставьте скопированное ранее место установки в начало переменной и добавьте в конце строки bin вот так: C : Program Files (x 86) Java jdk 1.8.0_112 bin ; Обратите внимание, что ваша версия JDK (jdk 1.8.0_112 ) может отличаться. Скопируйте значение переменной и вставьте его в окошко PATH .

  1. Нажмите «ОК », чтобы сохранить внесенные изменения.
  2. Чтобы проверить, правильно ли установлена платформа для введения в программирование Java , откройте командную строку , набрав cmd в строке поиска Windows или через команду «Выполнить… » (Windows — R ). Введите команду java -version . Если отображается текущая версия Java , значит, установка прошла успешно. Если нет, сверьтесь со страничкой помощи Oracle .

Установка IntelliJ IDEA

  1. Перейдите на страницу загрузки IntelliJ IDEA .
  2. Скачайте бесплатную версию Community Edition , нажав «Загрузить ».

  1. После загрузки запустите файл установки и следуйте инструкциям, которые будут появляться на экране. Затем создайте ярлык на рабочем столе для 64-битной версии и добавьте ассоциации с расширением .java . Нажмите «Next » и продолжайте установку.

  1. После установки откройте IntelliJ IDEA , нажав на значок на рабочем столе.
  2. Выберите «Don ’ t import settings » («Не импортировать настройки ») и нажмите «OK ». После этого принимаем политику приватности Jetbrains, нажав «Accept ».
  3. Теперь можно настроить интерфейс под себя. Также можно пропустить этот шаг и оставить всё по умолчанию, нажав кнопку «Skip All and Set Defaults ».
  4. Программа покажет страницу приветствия. Нажмите «Create New Project » («Создать новый проект »).

  1. В следующем окне выберите «Java » в левой панели и нажмите «New » в верхней части окна программы для выбора JDK . Здесь надо выбрать местоположение, куда установили JDK во время установки Java , после чего нажать «Next ».
  2. IntelliJ IDEA найдёт JDK и распознает его. Никакие другие опции отмечать не нужно, просто нажмите «Next » .
  3. На следующем экране введите имя проекта: HelloWorld и нажмите «Finish ». Если программа скажет, что директории не существует, нажмите «ОК ». Если вы не видите левой панели, перейдите в меню Views > Tool Windows > Project .
  4. Чтобы задать имя класса, выберите в левой панели папку src. Кликните по ней правой кнопкой мыши, зайдите в New > Java и задайте имя класса. В имени класса не должно быть пробелов.

  1. Напишите код и сохраните проект Java урока программирования .
  2. Для запуска программы, зайдите в меню Run > Run … Нажмите на HelloWorld - программа скомпилирует файл и запустит его.

Ваша первая программа на Java

Чтобы познакомить пользователей с новым языком программирования, используют программу Hello World («Привет, мир! »). Это простая программа, которая выводит на экран слова Hello, World ! В этом разделе мы научим вас писать данную программу на Java , используя IntelliJ IDEA .

  1. Откройте IntelliJ IDEA .
  2. Перейдите в File > New > Project… > Java (в левой панели навигации ).
  3. Задайте имя проекта (Project Name ) из курса программирования J a va . Мы назовём его Hello World и нажмём «Finish ».
  4. Теперь нужно создать новый класс Java .
  5. Выберите папку src в левой панели, после чего перейдите в меню File > New > Java Class и задайте имя нового класса- HelloWorld .
  6. Скопируйте следующий код в файл HelloWorld.java и сохраните его.

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

  1. Нажмите кнопку запуска (Run ). Если всё в порядке, вы увидите на экране надпись Hello, World !

Как выучить Java?

Официальная документация Java

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

Примечание: единственный минус - официальная документация Java не всегда написана самым простым языком.

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

Java: Полное руководство (10-е издание)

Отличная книга для тех, кто только начинает изучать Java . Последнее издание включает все функции релиза Java 8 .

В книге описано всё, что нужно знать о программировании на Java , включая синтаксис, ключевые слова и фундаментальные основы программирования, а также библиотеку API Java , апплеты Java и многое другое.

Философия Java (4-е издание)

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

Java 8. Карманный справочник: Скорая помощь Java-программистам

Эта книга содержит понятные ответы на вопросы, возникающие при обучении J ava программированию с нуля . Она кратко рассказывает обо всех основных концепциях Java (включая Java 9 ). Не хотите листать сотни страниц в поисках нужной строчки? Купите эту книгу.

Вместо заключения

Если начнёте изучать Java , не ошибётесь - это перспективный язык программирования, полный самых разнообразных возможностей.

Перед тем, как приступить к изучению Java , воспользуйтесь несколькими советами:

  • Не читайте обучающие статьи и примеры как роман. Единственный способ стать хорошим программистом - писать много кода.
  • Если переходите с другого языка программирования (скажем , C# ), не надо писать код в стиле C# .

    Хорошо Плохо