Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Программирование на java / Лекции / Тема 1.1 Введение в Java.ppt
Скачиваний:
130
Добавлен:
14.02.2015
Размер:
1.13 Mб
Скачать

Программирование на 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