
- •Программирование на Java Тема 1.1 Введение в Java
- •Java и другие языки программирования
- •Java и другие языки программирования
- •Java и другие языки программирования
- •Категории программ, написанных на языке Java
- •Выполнение Java-программы
- •Выполнение Java-программы
- •Выполнение Java-программы
- •Платформа Java
- •Платформа Java
- •Платформа Java
- •Java Development Kit (JDK)
- •Java Development Kit (JDK)
- •Java Development Kit (JDK)
- •Java Development Kit (JDK)
- •Структура Java-программы
- •Структура Java-программы
- •Структура Java-программы
- •Структура Java-программы
- •Структура Java-программы
- •Структура Java-программы
- •Структура Java-программы
- •Структура Java-программы
- •Константы
- •Константы
- •Константы
- •Константы
- •Идентификаторы
- •Идентификаторы
- •Примитивные и ссылочные типы данных
- •Примитивные и ссылочные типы данных
- •Переменные
- •Переменные
- •Примитивные типы данных и операции
- •Примитивные типы данных и операции
- •Примитивные типы данных и операции
- •Примитивные типы данных и операции
- •Примитивные типы данных и операции
- •Примитивные типы данных и операции
- •Примитивные типы данных и операции
- •Выражения
- •Выражения
- •Выражения
- •Консольный ввод-вывод
- •Консольный ввод-вывод
- •Консольный ввод-вывод
- •Консольный ввод-вывод
- •Консольный ввод-вывод
- •Консольный ввод-вывод
- •Консольный ввод-вывод
- •Ввод данных из файла
- •Ввод данных из файла
- •Контрольные вопросы

Программирование на Java Тема 1.1 Введение в Java
1

Java и другие языки программирования
Язык C (начало1970-х, Bell Laboratories, Деннис Ритчи) - универсальный язык процедурного программирования для создания системного программного обеспечения;
Язык C++ (начало 1980-х, Bell Laboratories, Бьерн Страуструп, расширение языка С) - универсальный язык процедурного и объектно-ориентированного программирования для создания системного и прикладного программного обеспечения;
Язык Java (1995, Sun Microsystems, Джеймс Гослинг) –
универсальный объектно-ориентированный язык прикладного программирования;
Язык JavaScript (1995, Netscape Communication) – узкоспециализированный прикладной язык программирования HTML-документов, расширяющий возможности HTML.
Язык C#, платформа .Net (2000, Microsoft) – универсальный объектно-ориентированный язык прикладного программирования;
2

Java и другие языки программирования
Как связаны между собой языки C, C++, JavaScript и Java? Что между ними общего, и в чём они отличаются? В каких случаях следует, а в каких не следует их применять?
Язык C был создан в 1972 году в одной из исследовательских групп Bell Laboratories при разработке операционной системы Unix. Язык C создавался как язык для создания системного программного обеспечения, и таким он остаётся до сих пор (до сих пор применяется для написания операционных систем и программирования микроконтроллеров). Причины его популярности в том, что он смог обеспечить необходимую функциональность программного обеспечения в условиях низкой производительности
компьютеров, крайней ограниченности их ресурсов и неразвитости периферийных устройств! Язык C является языком процедурного программирования, так как его базовыми конструкциями являются подпрограммы (подпрограммы –функции).
C++, Java, и JavaScript являются объектно-ориентированными языками программирования, и все они имеют C-образный синтаксис операторов. Но объектные модели и базовые конструкции этих языков (за исключением синтаксиса операторов) принципиально различны. Ни один из них не является версией или упрощением другого – это совсем разные языки, предназначенные для разных целей.
C++ является базовым языком системного программирования. Длительное время он использовался и для написания прикладных программ. Требования к прикладным программам совпадают к требованиям к системным только в том случае, когда быстродействие компьютера можно рассматривать как низкое, а ресурсы компьютера – малыми.
У языков C и C++ имеется два принципиальных недостатка: а) низкая надёжность как на уровне исходного кода, так и на уровне исполняемого кода; б) отсутствие переносимости на уровне исполняемого кода. С появлением компьютерных сетей эти недостатки стали очень существенным ограничивающим фактором, поскольку вопросы безопасности при работе в локальных, и, особенно, глобальных сетях приобретают первостепенную значимость.
Java – это не только язык программирования, -это целая технология программирования (язык программирования Java + платформа Java). Сначала Java предназначалась для программирования бытовых электронных устройств, таких как телефоны. Потом Java стала применяться для программирования браузеров — появились апплеты.
3

Java и другие языки программирования
Java также применяется для прикладного программирования в неоднородных компьютерных сетях как со стороны клиентского компьютера, так и со стороны сервера.
Язык JavaScript создавался как узкоспециализированный прикладной язык программирования
HTML-страниц, расширяющий возможности HTML, и в полной мере отвечает этим потребностям до сих пор. Следует подчеркнуть, что язык JavaScript не имеет никакого отношения к Java. Включение слова “Java” в название JavaScript являлось рекламным трюком фирмы Netscape Communication. Он также C-образен, но, в отличие от Java, является интерпретируемым.
Итак, Java- универсальный язык прикладного программирования, JavaScript – узкоспециализированный язык программирования HTML-документов, C++ - универсальный язык системного программирования.
В 2000 году в корпорации Microsoft была разработана платформа .Net (читается “дотнет”, DotNet– в переводе с английского “точка Net” ). Она стала альтернативой платформе Java и во многом повторяла её идеи. Основное различие заключалось в том, что для этой платформы можно использовать произвольное количество языков программирования, а не один. Причём классы .Net оказываются совместимы как в целях наследования, так и по исполняемому коду независимо от языка, используемого для их создания. Важнейшим языком .Net стал Java-образный язык C# (читается “Си шарп”). Фактически, C# унаследовал от Java большинство особенностей - динамическую объектную модель, сборку “мусора”, основные синтаксические конструкции. Хотя и является вполне самостоятельным языком программирования, имеющим много привлекательных черт. В частности, компонентные модели Java и C# принципиально отличаются.
4

Категории программ, написанных на языке Java
Приложение (application) – аналог “обычной” прикладной программы.
Апплет (applet) – специализированная программа с
ограниченными возможностями, работающая в окне
WWW-документа под управлением браузера.
Сервлет (servlet) - специализированная программа с
ограниченными возможностями, работающая в WWW на
стороне сервера. Используется преимущественно в рамках технологии JSP (Java Server Pages - Серверных
Страниц Java) для программирования WWW-документов со стороны сервера.
Серверное приложение (Enterprise application) –
предназначено для многократного использования на
стороне сервера.
Библиотека (Java Class Library – библиотека классов,
либо NetBeans Module – модуль платформы NetBeans) –
предназначена для многократного использования программами Java
5

Выполнение Java-программы
Выполнение Java-программы
|
|
|
Компоновка |
||
|
Компиля |
|
, |
|
|
|
ция |
|
выполнение |
||
|
|
виртуальн |
|
||
|
|
|
ая |
|
|
|
|
|
машина |
|
|
Исходны |
Компиля |
байт |
|||
Java (JVM, |
|
||||
й код |
тор |
-код |
Java |
|
|
|
|||||
(наборы |
|
|
Virtual |
|
|
классов) |
|
|
|
||
|
|
Machine) |
|||
|
|
|
6

Выполнение Java-программы
Как вы знаете, программа, написанная на одном из языков высокого уровня, к которым относится и язык Java, так называемый исходный модуль ("source"), не может быть сразу же выполнена. Ее
сначала надо откомпилировать, т. е. перевести в последовательность машинных команд — объектный модуль. Но и он, как правило, не может быть сразу же выполнен: объектный модуль
надо еще скомпоновать с библиотеками использованных в модуле функций, получив в результате загрузочный модуль — полностью готовую к выполнению программу.
Исходный модуль, написанный на Java, не может избежать этих процедур, но здесь проявляется главная особенность технологии Java — программа компилируется сразу в машинные команды, но
не команды какого-то конкретного процессора, а в команды так называемой виртуальной машины Java (JVM, Java Virtual Machine). Виртуальная машина Java — это совокупность команд вместе с
системой их выполнения. Команды JVM короткие, большинство из них имеет длину 1 байт, отчего команды JVM называют байт-кодами.
Другая особенность Java — все стандартные функции, вызываемые в программе, подключаются к
ней только на этапе выполнения, а не включаются в байт-коды. Как говорят специалисты, происходит динамическая компоновка (dynamic binding). Это тоже сильно уменьшает объем откомпилированной программы.
Итак, на первом этапе программа, написанная на языке Java, переводится компилятором в байт- коды. Эта компиляция не зависит от типа какого-либо конкретного процессора и архитектуры некоего конкретного компьютера. Она может быть выполнена один раз сразу же после написания программы. Байт-коды записываются в одном или нескольких файлах, могут храниться во внешней памяти или передаваться по сети. Это особенно удобно благодаря небольшому размеру файлов с байт-кодами. Затем полученные в результате компиляции байт-коды можно выполнять на любом компьютере, имеющем систему, реализующую JVM. При этом не важен ни тип процессора, ни архитектура компьютера. Так реализуется принцип Java "Write once, run anywhere" — "Написано однажды, выполняется где угодно".
7

Выполнение Java-программы
Интерпретация байт-кодов и динамическая компоновка значительно замедляют выполнение программ. Это не имеет значения в тех ситуациях, когда байт-коды передаются по сети, сеть все равно медленнее любой интерпретации, но в других ситуациях требуется мощный и быстрый
компьютер. Поэтому постоянно идет усовершенствование интерпретаторов в сторону увеличения скорости интерпретации. Разработаны JIT-компиляторы (Just-In-Time), запоминающие уже интерпретированные участки кода в машинных командах процессора и просто выполняющие эти участки при повторном обращении, например, в циклах. Это значительно увеличивает скорость повторяющихся вычислений. Фирма SUN разработала целую технологию Hot-Spot и включила ее в свою виртуальную машину Java.
При выполнении программ Java на других процессорах требуется интерпретация команд JVM в команды конкретного процессора, а значит, нужна программа-интерпретатор, причем для каждого типа процессоров, и для каждой архитектуры компьютера следует написать свой интерпретатор.
Эта задача уже решена практически для всех компьютерных платформ. На них реализованы виртуальные машины Java, а для наиболее распространенных платформ имеется несколько реализаций JVM разных фирм. Все больше операционных систем и систем управления базами данных включают реализацию JVM в свое ядро. Создана и специальная операционная система JavaOS, применяемая в электронных устройствах. В большинство браузеров встроена виртуальная машина Java для выполнения апплетов.
Внимательный читатель уже заметил, что кроме реализации JVM для выполнения байт-кодов на компьютере еще нужно иметь набор функций, вызываемых из байт-кодов и динамически
компонующихся с байт-кодами. Этот набор оформляется в виде библиотеки классов Java, состоящей из одного или нескольких пакетов. Каждая функция может быть записана байт-кодами, но, поскольку она будет храниться на конкретном компьютере, ее можно записать прямо в системе команд этого компьютера, избегнув тем самым интерпретации байт-кодов. Такие функции называют "родными" методами (native methods). Применение "родных" методов ускоряет выполнение программы.
8

Платформа Java
Варианты распространения платформы Java:
JDK (Java Development Kit);
JRE (Java Runtime Environment ).
Версии JDK (Java Development Kit) :
Java SE – комплект Java Standard Edition – для
написания программного обеспечения для обычных компьютеров;
Java EE– комплект Java Enterprise Edition – для
написания серверного программного обеспечения;
Java ME – комплект Java Micro Edition – для написания программного обеспечения для устройств,
обладающих малыми ресурсами, например, сотовых телефонов, микроконтроллеров;
Ссылка для скачивания JRE: http://java.com/ru/download/index.jsp
9

Платформа Java
Платфома Java – это программное обеспечение, которое используется для создания и выполнения Java –программ, также коллекция компонентов готовых к использованию, которые существенно упрощают процесс разработки приложений. Эти компоненты сгруппированы в библиотеки классов
и интерфейсов. Такие библиотеки называются пакетами (packages).
Замечание: Платформа – это совокупность аппаратного и программного (ОС) обеспечения (Microsoft Windows, Linux, Solaris OS и Mac OS). Платформа Java отличается от этих платформ, так как являет лишь программным обеспечением.
Платформа Java распространяется в двух вариантах – JDK(Java Development Kit) и JRE (Java Runtime Environment ).
JDK - средство разработчика, состоящее в основном из утилит (например, java compiler), стандартных библиотек классов и демонстрационных примеров. JDK является базовым средством разработки приложений. Оно не содержит никаких текстовых редакторов, а оперирует только с уже существующими java-файлами с помощью утилит командной строки.
JRE (среда выполнения Java) - это минимальная реализация виртуальной машины, необходимая для исполнения Java-приложений, без компилятора и других средств разработки. Если пользователь хочет только запускать программы, это именно то, что ему нужно. JRE включен в состав JDK.
10