Раздел 1. ВВЕДЕНИЕ

реклама
-1Прикладное программирование в ТС
Лекция 3-01
Лекция 03-01
Раздел 1. Введение
Тема 1.1. Архитектура и средства телекоммуникационных систем
1.1.1. Структура и основные компоненты телекоммуникационных систем
1.1.2. Структура и компоненты программного обеспечения телекоммуникационных систем
Раздел 2.Основы языка Java
Тема 2.1. Введение в язык Java
2.1.1. История и версии Java
2.1.2. Основные принципы функционирования Java
2.1.2.1. Переносимость
2.1.2.2. Объектная ориентация
2.1.2.3. Многопотоковость
2.1.2.4. Распределенность
2.1.2.5. Безопасность
2.1.3. Платформы Java
2.1.4. Инструментальные средства Java
2.1.5. Оформление программы на языке Java
РАЗДЕЛ 1. ВВЕДЕНИЕ
Тема 1.1. Архитектура и средства телекоммуникационных
систем
1.1.1. Структура и основные компоненты телекоммуникационных
систем
Слово телекоммуникация образована из древнегреческого слова tele (далеко) и
латинского слова communicare (общаться).
Телекоммуникационная
система
содержит
следующие
основные
функциональные компоненты:
 оконечное оборудование данных;
 оборудование окончания канала данных;
 оборудование коммутации данных;
 каналы связи.
Пример структуры сети и взаимосвязи ее компонент приведен на рис. 1.1.1.
Файл: 681459470 Создан: 09.07.2007 Модифицирован: 01.05.2016
Автор: Шонин В.А.
-2Прикладное программирование в ТС
Лекция 3-01
Сегмент
сети
Узел 1
DCE
DTE
Узел 6
Узел 2
DCE
DTE
DTE
Узел 7
DCE
DTE
DCE
DCE
Узел 8
DTE
Подсеть
3
1
Подсеть
1
DSE
2
DSE
DSE
Узел 4
DTE
Подсеть
DCE
Узел 6
DCE
– интерфейс DTE-DCE
3
DCE
DTE
2
Узел 5
DCE
DCE
DTE
– каналы связи
Рис. 1.1.1. Структура и компоненты телекоммуникационной системы
Оконечным оборудованием
данных – DTE
(Data Terminal Equipment)
называется любое устройство ввода-вывода и обработки данных. Это может быть, либо
компьютер, либо терминал, состоящий из клавиатуры и монитора, либо принтер, либо,
например, датчик температуры в системе метеослужбы.
При передаче по каналам связи используются представления данных, отличные от
представления внутри компьютера. Для преобразования данных из формы представления
в компьютере в форму представления в каналах связи и выполнения обратного
преобразования используется оборудование окончания канала данных – DCE
(Data Circuit-terminating Equipment). DCE может быть подключено к одному или
нескольким каналом связи, а к DTE может быть подключено одно или несколько DCE.
Примером DCE может служить модем, выполняющий преобразование сигналов из
цифровой в аналоговую форму (модуляцию сигналов) и обратное преобразование
(демодуляцию) для передачи данных по телефонным каналам связи. Другим примером
DCE является плата для подключения компьютера к сети – сетевой адаптер.
DTE и DCE вместе составляют узел сети. Компьютеры в узлах сети иногда
называют хост-машинами или просто хостами.
Основными функциями оборудования коммутации данных – DSE (Data
Switching Equipment) является обеспечение процесса передачи данных в сети от источника
к адресату. Первоначально (в телефонных сетях) эти устройства выполняли только
коммутацию (выбор и подключение) промежуточных каналов связи – отсюда название
оборудования. В современных сетях DSE выполняют не только коммутацию, но и другие
функции, например, фильтрацию данных (передачу только тех данных, которые отвечают
заданному критерию) или выбор дальнейшего маршрута передачи данных
(маршрутизацию данных). Примером DSE является концентратор, объединяющий
несколько каналов на входе устройства в один канал на его выходе.
Файл: 681459470 Создан: 09.07.2007 Модифицирован: 01.05.2016
Автор: Шонин В.А.
-3Прикладное программирование в ТС
Лекция 3-01
Каналы или линии связи являются физической средой, по которой передаются
данные от одного узла к другому. Примером канала связи является телефонная линия от
пользователя сети до АТС (автоматической телефонной станции).
Каналы связи и DSE часто называют сетью передачи данных.
Телекоммуникационные системы предприятия, организации или учреждений часто
называют корпоративной сетью (enterprise network). Существуют также сети общего
пользования, оказывающие платные или бесплатные услуги своим пользователям, в
качестве которых могут выступать как предприятия, организации или учреждения, так и
отдельные лица.
Сети с большим количеством узлов часто разбиваются на подсети. Каждая подсеть
обычно имеет свое административное управление. Так, например, сеть крупной
организации может состоять из подсетей отделов этой организации. Отдельные подсети
могут содержать общие компоненты. Так, подсети 1 и 2 на рис. 1.1.1 имеют общий узел 4,
а подсети 1 и 3 – общий DSE с номером 2. Подсети могут иметь иерархическую
структуру, т.е., в свою очередь, разбиваться на подсети. Подсети могут разбиваться на
сегменты (обычно под общим административным управлением), как это показано на рис.
1.5.1. Сегментом подсети отдела может являться фрагмент сети, расположенный в
отдельной комнате или в отдельном здании.
Примерами телекоммуникационных систем являются телефонные сети, радио- и
мобильная связь, компьютерные сети и кабельное телевидение.
1.1.2. Структура и компоненты программного обеспечения
телекоммуникационных систем
Программное обеспечение телекоммуникационных систем можно разделить на три
группы:
 системное программное обеспечение;
 прикладное программное обеспечение;
 инструментальное программное обеспечение.
Системное программное обеспечение управляет работой всех программных и
аппаратных компонент DTE, DCE или DSE компьютера и обеспечивает интерфейс с
пользователем. Кроме этого, системное программное обеспечение управляет
взаимодействием компонента сети с другими компонентами, подключенными к нему по
каналам связи.
Основным компонентом системного программного обеспечения компьютера
является операционная система (ОС). Кроме этого в состав системного программного
обеспечения входят драйверы устройств, программы-оболочки операционной системы
(иногда их называют программами, расширяющими возможности операционных систем)
и вспомогательные программы-утилиты.
Все наиболее распространенные в настоящее время операционные системы: Unix
(Linux), Windows и Mac OS X являются сетевыми ОС.
Другие устройства телекоммуникационных систем, например, мобильные
телефоны, также имеют управляющие программы, являющиеся более простым аналогом
ОС компьютеров и обеспечивающие основные функции системного программного
обеспечения.
Для оконечных устройств телекоммуникационных систем, в том числе
компьютеров и мобильных телефонов, разработаны и используются сотни тысяч
различных прикладных программ (приложений) и комплексов (пакетов) программ.
Это и редакторы текста, и системы управления базами данных (СУБД), и игровые
программы и множество других приложений в самых различных областях.
Файл: 681459470 Создан: 09.07.2007 Модифицирован: 01.05.2016
Автор: Шонин В.А.
-4Прикладное программирование в ТС
Лекция 3-01
Значительная
часть
приложений,
выполняемых
в
устройствах
телекоммуникационной системы, являются сетевыми, т.е. отдельные части приложения
выполняются на разных компьютерах. Например, одна часть приложения на компьютере,
хранящем базу данных большого объема, выполняет поиск в базе записей, отвечающих
определенным критериям, а вторая (на компьютере пользователя) занимается
статистической обработкой этих данных, представлением их в графической форме на
экране, а также поддерживает диалог с пользователем, принимая от него новые запросы
на определение тех или иных статистических характеристик. Другим примером сетевого
приложения является приложение, обеспечивающее обмен данными между компьютером
и мобильным телефоном.
Существуют различные схемы разделения приложений на части, причем для
каждого конкретного приложения можно предложить свою схему. Так, можно разделить
приложение на шесть функциональных частей:
 средства представления данных на экране, например, средства графического
пользовательского интерфейса – GUI (Graphic User Interface);
 логика представления данных на экране – описывает правила и возможные
сценарии взаимодействия пользователя с приложением: выбор из системы меню, выбор
элемента из списка и т. п.;
 прикладная логика – набор правил для принятия решений, вычислительные
процедуры и операции;
 логика данных – операции с данными, хранящимися в некоторой базе данных,
которые нужно выполнить для реализации прикладной логики;
 внутренние операции базы данных – действия СУБД, вызываемые в ответ на
выполнение запросов логики данных, такие как поиск записи по определенным
признакам;
 файловые операции – стандартные операции над файлами и файловой системой,
которые обычно являются функциями операционной системы.
На основе этой модели можно построить несколько схем распределения частей
приложения между компьютерами сети.
Распределение приложения между большим числом компьютеров и других
устройств может повысить качество его выполнения (скорость, количество одновременно
обслуживаемых пользователей и т. д.), но при этом существенно усложняется организация
самого приложения, что может просто не позволить воспользоваться потенциальными
преимуществами распределенной обработки. Поэтому на практике приложение обычно
разделяют на две или три части и достаточно редко — на большее число частей. Наиболее
распространенной является двухзвенная схема, распределяющая приложение между
двумя компьютерами. Перечисленные выше типовые функциональные части приложения
можно разделить между двумя компьютерами различными способами.
В централизованной схеме (рис. 1.1.2а) компьютер или устройство пользователя
работает как терминал, выполняющий лишь функции представления данных, тогда как
все остальные функции передаются центральному компьютеру. Ресурсы компьютера
пользователя используются в этой схеме в незначительной степени, загруженными
оказываются только графические средства подсистемы ввода-вывода ОС, отображающие
на экране окна и другие графические элементы по командам центрального компьютера, а
также сетевые средства ОС, принимающие из сети команды центрального компьютера и
возвращающие данные о нажатии клавиш и координатах мыши. Программа, работающая
на компьютере или устройстве пользователя, часто называется эмулятором терминала –
графическим или текстовым, в зависимости от поддерживаемого режима. Фактически эта
схема повторяет организацию многотерминальной системы на базе компьютеров общего
назначения (mainframe) с тем лишь отличием, что вместо терминалов используются
Файл: 681459470 Создан: 09.07.2007 Модифицирован: 01.05.2016
Автор: Шонин В.А.
-5Прикладное программирование в ТС
Лекция 3-01
компьютеры или устройства, подключенные не через локальный интерфейс, а через сеть,
локальную или глобальную.
Главным и очень серьезным недостатком централизованной схемы является ее
недостаточная масштабируемость и отсутствие отказоустойчивости. Производительность
центрального компьютера всегда будет ограничителем количества пользователей,
работающих с данным приложением, а отказ центрального компьютера приводит к
прекращению работы всех пользователей. Именно из-за этих недостатков
централизованные вычислительные системы, представленные компьютерами общего
назначения, уступили место сетям, состоящим из серверов на базе микрокомпьютеров и
клиентов на базе персональных компьютеров и других устройств. Тем не менее,
централизованная схема иногда применяется как из-за простоты организации программы,
которая почти целиком работает на одном компьютере, так и из-за наличия большого
количества старых, не распределенных приложений.
В схеме «файловый сервер» (рис. 1.1.2б) на клиентской машине выполняются все
части приложения, кроме файловых операций. В сети имеется достаточно мощный
компьютер, имеющий дисковую подсистему большого объема, который хранит файлы,
доступ к которым необходим большому числу пользователей. Этот компьютер играет
роль файлового сервера, представляя собой централизованное хранилище данных,
находящихся в разделяемом доступе. Распределенное приложение в этой схеме мало
отличается от полностью локального приложения. Единственным отличием является
обращение к удаленным файлам вместо локальных. Для того чтобы в этой схеме можно
было использовать локальные приложения, в сетевые операционные системы ввели такой
компонент сетевой файловой службы, как редиректор (redirector), который перехватывает
обращения к удаленным файлам (с помощью специальной нотации для сетевых имен,
такой, например, как //server1/doc/file1.txt) и направляет запросы в сеть,
освобождая приложение от необходимости явно задействовать сетевые системные
вызовы.
Файловый сервер представляет собой компонент наиболее популярной сетевой
службы – сетевой файловой системы, которая лежит в основе многих распределенных
приложений и некоторых других сетевых служб.
Такая схема обладает хорошей масштабируемостью, так как дополнительные
пользователи и приложения добавляют лишь незначительную нагрузку на центральный
узел – файловый сервер. Однако эта архитектура имеет и свои недостатки:
 во многих случаях резко возрастает сетевая нагрузка (например, многочисленные запросы к базе данных могут приводить к загрузке всей базы данных в
клиентскую машину для последующего локального поиска нужных записей), что
приводит к увеличению времени реакции приложения;
 компьютер или устройство клиента должен обладать высокой вычислительной
мощностью, чтобы справляться с представлением данных, логикой приложения, логикой
данных и поддержкой операций базы данных.
Файл: 681459470 Создан: 09.07.2007 Модифицирован: 01.05.2016
Автор: Шонин В.А.
-6Прикладное программирование в ТС
Лекция 3-01
К
Кллииееннтт
С
Сееррввеерр
Л
Лооггииккаа
ппррииллоож
жеенниияя ии
ооббрраащ
щеенниияя кк
ббааззее ддаанннны
ыхх
сервера
Э
Эм
муулляяцциияя
ттееррм
мииннааллаа
ссееррввеерраа
О
Оппееррааццииии
ббааззы
ы
ддаанннны
ыхх
Ф
Фааййллооввы
ыее
ооппееррааццииии
а)
К
Кллииееннтт
И
Иннттееррф
фееййсс
ппооллььззооввааттеелляя
С
Сееррввеерр
Л
Лооггииккаа
ппррииллоож
жеенниияя ии
ооббрраащ
щеенниияя кк
ббааззее ддаанннны
ыхх
сервера
О
Оппееррааццииии
ббааззы
ы
ддаанннны
ыхх
Ф
Фааййллооввы
ыее
ооппееррааццииии
б)
К
Кллииееннтт
И
Иннттееррф
фееййсс
ппооллььззооввааттеелляя
С
Сееррввеерр
Л
Лооггииккаа
ппррииллоож
жеенниияя ии
ооббрраащ
щеенниияя кк
ббааззее ддаанннны
ыхх
сервера
О
Оппееррааццииии
ббааззы
ы
ддаанннны
ыхх
Ф
Фааййллооввы
ыее
ооппееррааццииии
в)
Рис. 1.1.2. Варианты распределения частей приложения по двухзвенной схеме:
а) централизованная схема; б) файловый сервер; в) сервер баз данных
Другие варианты двухзвенной модели более равномерно распределяют функции
между клиентской и серверной частями системы. Наиболее часто используется схема, в
которой на серверный компьютер возлагаются функции проведения внутренних операций
базы данных и файловых операций (рис. 1.1.2в). Клиентский компьютер или устройство
при этом выполняет все функции, специфические для данного приложения, а сервер —
функции, реализация которых не зависит от специфики приложения, из-за чего эти
функции могут быть оформлены в виде сетевых служб. Поскольку функции управления
базами данных нужны далеко не всем приложениям, то в отличие от файловой системы
они чаще всего не реализуются в виде службы сетевой ОС, а являются независимой
распределенной прикладной системой. Система управления базами данных (СУБД)
является одним из наиболее часто применяемых в сетях распределенных приложений. Не
все СУБД являются распределенными, но практически все мощные СУБД, позволяющие
поддерживать большое число сетевых пользователей, построены в соответствии с
описанной моделью клиент-сервер. Сам термин «клиент-сервер» справедлив для любой
двухзвенной схемы распределения функций, но исторически он оказался наиболее тесно
связанным со схемой, в которой сервер выполняет функции по управлению базами
данных (и, конечно, файлами, в которых хранятся эти базы) и часто используется как
синоним этой схемы.
Файл: 681459470 Создан: 09.07.2007 Модифицирован: 01.05.2016
Автор: Шонин В.А.
-7Прикладное программирование в ТС
Лекция 3-01
Трехзвенная архитектура позволяет еще лучше сбалансировать нагрузку на
различные компоненты сети, а также способствует дальнейшей специализации серверов и
средств разработки распределенных приложений. Примером трехзвенной архитектуры
может служить такая организация приложения, при которой на клиентском компьютере
или устройстве выполняются средства представления и логика представления, а также
поддерживается программный интерфейс для вызова частей приложения второго звена –
промежуточного сервера (рис. 1.1.3).
Промежуточный сервер называют в этом варианте сервером приложений, так как
на нем выполняются прикладная логика и логика обработки данных, представляющих
собой наиболее специфические и важные части большинства приложений.
Сервер приложений должен базироваться на мощной аппаратной платформе
(мультипроцессорные системы, специализированные кластерные архитектуры). ОС
сервера приложений должна обеспечивать высокую производительность вычислений, а
значит, поддерживать многопоточную обработку, вытесняющую многозадачность,
мультипроцессирование, виртуальную память и наиболее популярные прикладные среды.
Слой логики обработки данных вызывает внутренние операции базы данных,
которые реализуются третьим звеном схемы – сервером баз данных.
Сервер баз данных, как и в двухзвенной модели, выполняет функции двух
последних слоев – операции внутри базы данных и файловые операции. Примером такой
схемы может служить неоднородная архитектура, включающая клиентские компьютеры
под управлением Windows, сервер приложений с монитором транзакций TUXEDO в среде
Solaris на компьютере Sun и сервер баз данных Oracle.
К
Кллииееннтт
И
Иннттееррф
фееййсс
ппооллььззооввааттеелляя
С
Сееррввеерр ппррииллоож
жеенниийй
Л
Лооггииккаа
ппррииллоож
жеенниияя ии
ооббрраащ
щеенниияя кк
ббааззее ддаанннны
ыхх
сервера
С
Сееррввеерр ббаазз ддаанннны
ыхх
О
Оппееррааццииии
ббааззы
ы
ддаанннны
ыхх
Ф
Фааййллооввы
ыее
ооппееррааццииии
Рис. 1.1.3. Трехзвенная схема распределения частей приложения
Централизованная реализация логики приложения решает проблему недостаточной
вычислительной мощности клиентских компьютеров и, в особенности, устройств для
сложных приложений, а также упрощает администрирование и сопровождение. В том
случае, когда сервер приложений сам становится узким местом, в сети можно применить
несколько серверов приложений, распределив каким-либо образом запросы пользователей
между ними. Упрощается и разработка крупных приложений, так как в этом случае четко
разделяются платформы и инструменты для реализации интерфейса и прикладной логики,
что позволяет с наибольшей эффективностью реализовывать их силами специалистов
узкого профиля.
Монитор транзакций представляет собой популярный пример программного
обеспечения, не входящего в состав сетевой ОС, но выполняющего функции, полезные
для большого количества приложений. Такой монитор управляет транзакциями с базой
данных и поддерживает целостность распределенной базы данных.
Трехзвенные схемы часто применяются для централизованной реализации в сети
некоторых общих для распределенных приложений функций, отличных от файлового
сервиса и управления базами данных. Программные модули, выполняющие такие
функции, относят к классу middleware, то есть промежуточному слою,
Файл: 681459470 Создан: 09.07.2007 Модифицирован: 01.05.2016
Автор: Шонин В.А.
-8Прикладное программирование в ТС
Лекция 3-01
располагающемуся между индивидуальной для каждого приложения логикой и сервером
баз данных.
В крупных сетях для связи клиентских и серверных частей приложений также
используется и ряд других средств, относящихся к классу middleware, в том числе:
 средства асинхронной обработки сообщений;
 средства удаленного вызова процедур;
 посредники запроса объектов.
Принципиально межпроцессное взаимодействие может осуществляться одним из
двух способов:
 с помощью совместного использования одних и тех же данных (разделяемая
память);
 путем передачи друг другу данных в виде сообщений.
В централизованных системах связь между процессами, как правило, предполагает
наличие разделяемой памяти. В распределенных системах не существует памяти,
непосредственно доступной процессам, работающим на разных компьютерах, поэтому
взаимодействие процессов может осуществляться только путем передачи сообщений
через сеть. В любой сетевой ОС имеется подсистема передачи сообщений (messageoriented middleware, MOM), называемая также транспортной подсистемой, которая
обеспечивает набор средств для организации взаимодействия процессов по сети.
Еще одним удобным механизмом, облегчающим взаимодействие операционных
систем и приложений по сети, является механизм вызова удаленных процедур (Remote
Procedure Call, RPC). Этот механизм представляет собой надстройку над системой обмена
сообщениями ОС, поэтому в ряде случаев он позволяет более удобно и прозрачно
организовать взаимодействие программ по сети.
Идея вызова удаленных процедур состоит в расширении механизма передачи
управления и данных внутри программы, выполняющейся на одной машине, на передачу
управления и данных через сеть. Средства удаленного вызова процедур предназначены
для облегчения организации распределенных вычислений. Наибольшая эффективность
RPC достигается в тех приложениях, в которых существует интерактивная связь между
удаленными компонентами с небольшим временем ответов и относительно малым
количеством передаваемых
данных. Такие приложения называются RPCориентированными.
Характерными чертами вызова локальных процедур являются:
 асимметричность – одна из взаимодействующих сторон является инициатором
взаимодействия;
 синхронность – выполнение вызывающей процедуры блокируется с момента
выдачи запроса и возобновляется только после возврата из вызываемой процедуры.
Реализация удаленных вызовов существенно сложнее реализации вызовов
локальных процедур, поскольку вызывающая и вызываемая процедуры выполняются на
разных машинах.
Посредники запроса объектов (Object Request Broker, ORB) находят объекты,
хранящиеся на различных компьютерах, и помогают их использовать в одном
приложении или документе. Спецификация ORB содержится в документе, названном
CORBA (Common Object Request Broker Architecture – архитектура посредника запросов
типового объекта).
Услуги, оказываемые объектом, определяются в CORBA с помощью языка
определения интерфейсов IDL (Interface Definition Language).
Приведенные средства помогают улучшить качество взаимодействия клиентов с
серверами за счет промышленной реализации достаточно важных и сложных функций, а
также упорядочить поток запросов от множества клиентов к множеству серверов, играя
роль регулировщика, распределяющего нагрузку на серверы.
Файл: 681459470 Создан: 09.07.2007 Модифицирован: 01.05.2016
Автор: Шонин В.А.
-9Прикладное программирование в ТС
Лекция 3-01
Инструментальное программное обеспечение используется для создания новых
программ. Современные инструментальные средства, называемые также системами
программирования, включают мощные и удобные средства для написания,
модификации и тестирования программ, а также включают готовые программы
(библиотеки) для реализации наиболее часто используемых операций (например,
библиотеки вычисления тригонометрических функций). Наиболее распространенными
инструментальными программными средствами, используемыми для программирования
приложений в телекоммуникационных системах, являются системы программирования на
языках Java, C# (версии языка Java фирмы Microsoft) и C++.
В настоящем модуле дисциплины «Прикладное программирование в
телекоммуникационных системах» рассматривается программирование приложений на
языке Java, включая сетевые приложения.
РАЗДЕЛ 2. ОСНОВЫ ЯЗЫКА JAVA
Тема 2.1. Введение в язык Java
2.1.1. История и версии Java
Формально язык Java появился на свет 23 мая 1995 года, когда компания Sun
Microsystems заявила о выпуске его в свет в качестве языка программирования для
Internet.
Однако первоначально язык Java являлся лишь одной из составных частей
секретного проекта фирмы Sun по созданию бытовой техники нового поколения, начатом
в 1991 году.
Главной целью этого проекта было объединить все те микрокомпьютеры
(встроенные в видеомагнитофоны, телевизоры и микроволновые печи), которые нас
окружают в единую сеть. Этот рынок показался Sun весьма перспективным, и с целью его
исследования внутри компании была создана специальная, почти полностью автономная
группа, получившая кодовое название «Green Team».
Летом 1992 года был продемонстрирован первый рабочий демонстрационный
образец – интерактивное портативное графическое устройство *7 (StarSeven) для
управления телефоном и другими средствами домашней электроники (здесь впервые был
использован один из будущих логотипов Java – пингвин Duke).
При программировании устройства *7 был использован новый процессорнонезависимый язык Oak, разработанный одним из членов команды «Green Team»
Джеймсом Гослингом (James Gosling). Автор назвал этот язык в честь дуба, который рос
под его окном. Позднее оказалось, что слово «Oak» уже кем-то зарегистрировано в
качестве торговой марки, и было решено переименовать язык в «Java» (в честь любимого
разработчиками языка сорта кофе).
Однако попытки найти рынок для устройства *7 и следующего разработанного
устройства – MovieWood, закончились неудачей. Чтобы найти применение наработкам,
полученным в ходе выполнения проекта «Green Team», группа разработчиков обратила
внимание на Internet и разработала в начале 1995 года Web-браузер, названный
WebRunner и написанный полностью на языке Java (позднее этот Web-браузер получил
новое имя – HotJava). Популярность нового Web-браузера, распространяемого бесплатно,
привлекла внимание к технологии Java, и, кроме того, фирма Sun заключила соглашение
об использовании специально разработанных для Internet программ Java – апплетов в
самом популярном тогда Web-браузере – Netscape Navigator.
Фирма Oracle, в которую вошла фирма Sun, является владельцем языка Java и
поддерживает средства разработки программ на языке Java для основных компьютерных
платформ: Windows, Linux, SunOS и Macintosh. Кроме того, она разработала концепцию
Файл: 681459470 Создан: 09.07.2007 Модифицирован: 01.05.2016
Автор: Шонин В.А.
- 10 Прикладное программирование в ТС
Лекция 3-01
«чистой» Java, назвав ее Pure Java, и лицензирует все инструментальные средства,
разрабатываемые другими фирмами для языка Java.
Описание языка содержится в спецификации языка программирования Java (Java
Programming Language Specification), также разработанного фирмой Sun. Первая версия
этой спецификации (1.0) была разработана в 1996 г., вторая (2.0) – в 2000 г. В настоящее
время действующей является третья спецификация (3.0), опубликованная в начале 2005 г.
Средства разработки программ на языке Java обеспечивают среду написания,
компиляции, компоновки и отладки программ Java. Наиболее распространенной и простой
средой разработки программ на языке Java является набор разработчика Java – Java
Developer’s Kit (JDK). Пакет JDK разработан и поддерживается фирмой Sun или фирмой,
JDK которой лицензирован фирмой Sun.
В 1996 г. была выпущена первая версия JDK 1.0, которая модифицировалась до
версии с номером 1.0.2.
В 1997 г. появилась версия JDK 1.1, последняя ее модификация, 1.1.8, выпущена в
1998 г.
Затем набор инструментальных средств JDK был существенно переработан.
Версия JDK 1.2 вышла в декабре 1998 г. Начиная с этой версии, все продукты
технологии Java собственного производства компания Sun стала называть SDK (Java 2
Platform, Software Development Kit – набор разработки программного обеспечения для
платформы Java 2). Появились три варианта (издания) SDK:
 J2SE – Java 2 SDK Standard Edition (стандартное издание Java 2 SDK);
 J2EE – Java 2 SDK Enterprise Edition (издание Java 2 SDK уровня предприятия);
 J2ME – Java 2 SDK Micro Edition (издание Java 2 SDK для микропроцессоров).
Издание J2SE содержит необходимые компоненты для разработки и выполнения
приложений на языке Java.
Издание J2EE дополняет компоненты
J2SE средствами для разработки
распределенных корпоративных приложений.
Издание J2ME содержит среду выполнения приложений на языке Java для
различных сетевых устройств – от сотовых телефонов до настольных компьютеров.
Кроме этого, фирма Sun предлагает отдельно пакет JRE (Java Runtime Environment,
среда выполнения Java) – часть SDK, не содержащая средств разработки (компилятора,
отладчика и т.п.), а также специализированные программные пакеты на основе Java: по
трехмерному моделированию (3D), коммуникационный пакет и некоторые другие пакеты.
В 2006 году фирма Sun изменила наименования своих программных продуктов.
Теперь J2SE называется Java SE (Java Platform Standard Edition – стандартное издание
платформы Java), J2EE – Java EE (Java Platform Enterprise Edition – платформа Java для
предприятия) и J2ME – Java ME (Java Platform Micro Edition – платформа Java для
микропроцессоров).
В дисциплине рассматриваются основные возможности Java SE и Java EE.
Последняя версия этого программного продукта – Java SE 7. Версия реализует
спецификацию языка программирования Java версии 3.0 и содержат два компонента: JDK
и JRE. Кроме версии продукта, используется также версия разработчика. Так, последний в
настоящее пакет Java SE 7 имеет версию разработчика 7u9.
Все вопросы, связанные с языком Java, освещаются фирмой Oracle, в которую
вошла
фирма
Sun,
на
Web-сайте
http://www.oracle.com/technetwork/java/index.html.
2.1.2. Основные принципы функционирования Java
В основу разработки языка Java были положены следующие основные принципы:
 переносимость;
Файл: 681459470 Создан: 09.07.2007 Модифицирован: 01.05.2016
Автор: Шонин В.А.
- 11 



Прикладное программирование в ТС
Лекция 3-01
объектная ориентация;
многопотоковость;
распределенность;
безопасность.
2.1.2.1. Переносимость
Переносимостью называется возможность перенесения программы на другие
компьютерные платформы и операционные системы (при условии, что компиляторы с
языков программирования имеются на тех компьютерах, куда будет переноситься
программа).
Преобразование программ, написанных на языке ассемблера или на языке
программирования высокого уровня, в машинный код и выполнение программы может
производиться одном из двух режимов: интерпретации и компиляции.
В
режиме
интерпретации
(соответствующая
программа
называется
интерпретатором) выполняется независимое преобразование каждой отдельной команды
или инструкции программы в машинный код (или коды) и эта команда или инструкция
сразу же выполняется. Если необходимы какие-либо дополнительные программные
модули (например, модули вычисления математических функций), они вызываются в
процессе выполнения программы. Интерпретатор находится в оперативной памяти в
течение всего времени выполнения программы пользователя. Таким образом, работает,
например, некоторые версии языка BASIC, а также используемые в Web-дизайне языки
сценариев JavaScript и VBScript.
Упрощенная схема выполнения программы в режиме интерпретации представлена
на рис. 1.1.
Рис. 1.1. Выполнение программы в режиме интерпретации
При работе компилятора программа на исходном языке программирования
сначала преобразуется в эквивалентную ей программу на машинном языке –
промежуточный машинный (объектный код) в так называемом объектном модуле.
Результаты работы компилятора можно просмотреть на дисплее и печати, при
необходимости (например, при наличии синтаксических ошибок в программе)
модифицировать программу и повторить ее компиляцию. Объектный код еще не является
Файл: 681459470 Создан: 09.07.2007 Модифицирован: 01.05.2016
Автор: Шонин В.А.
- 12 Прикладное программирование в ТС
Лекция 3-01
программой, готовой к выполнению, поскольку практически всегда программа содержит
не один, а несколько программных модулей. Это могут быть объектные модули, как
входящие в поставляемый вместе с компилятором набор модулей – стандартную
библиотеку (например, модули извлечения корня или возведения в степень), так и
откомпилированные ранее пользователем части программы, оформленные в виде
отдельных программ. Все объектные модули собираются в единый, так называемый
загрузочный модуль с помощью специальной программы – компоновщика.
Загрузочный модуль хранится в виде отдельного файла (на компьютерах под управлением
MS DOS или Windows в виде файлов с расширениями .com или .exe). Такой модуль может
быть загружен операционной системой в оперативную память и выполнен. Так работает,
например, системы программирования для языков C, C++ и Pascal.
Упрощенная схема выполнения программы в режиме компиляции представлена на
рис. 1.2.
Рис. 1.2. Выполнение программы в режиме компиляции
Интерпретатор реализуется проще, однако интерпретируемая программа
запускается под управлением программы интерпретации для данного языка
программирования. Кроме того, если в программе имеются циклы, многократное
преобразование одних и тех же участков программы в машинные коды приводит к
большим накладным расходам.
Файл: 681459470 Создан: 09.07.2007 Модифицирован: 01.05.2016
Автор: Шонин В.А.
- 13 Прикладное программирование в ТС
Лекция 3-01
Компилируемые программы запускаются непосредственно под управлением
операционной системы и выполняются быстрее, поскольку они содержат только
машинные коды.
С точки зрения переносимости более предпочтительным является режим
интерпретации. Интерпретируемые программы могут быть выполнены без изменения
исходного текста на любой компьютерной платформе при наличии соответствующего
интерпретатора для этой платформы (при использовании одной и той же версии языка
программирования).
Компилируемые программы при переносе на другую компьютерную платформу
необходимо компилировать и компоновать заново, поскольку наборы машинных команд
и, соответственно, объектные коды программ на разных компьютерных платформах
различны.
Технология выполнения программ на языке Java объединяет преимущества
режимов компиляции и интерпретации программ.
Исходные программы на языке Java компилируются, но не в машинные команды
конкретной компьютерной платформы, а в команды так называемой виртуальной
машины Java (JVM, Java Virtual Machine). Виртуальная машина Java — это совокупность
команд вместе с программной системой их выполнения. Команды JVM короткие,
большинство из них имеет длину 1 байт, поэтому эти команды называют байт-кодами
(byte-codes), хотя имеются команды длиной 2 и 3 байта (согласно статистическим
исследованиям средняя длина команды составляет 1,8 байта). Байт-коды записываются в
одном или нескольких файлах, могут храниться во внешней памяти или передаваться по
сети.
Таким образом, компиляция не зависит от компьютерной платформы и в то же
время при выполнении интерпретируется не текст исходной программы, а не зависящие
от компьютерной платформы байт-коды.
Виртуальные машины Java программно реализованы практически для всех
компьютерных платформ, а для наиболее распространенных платформ имеется несколько
реализации JVM разных фирм. Все больше операционных систем и систем управления
базами данных включают реализацию JVM в свое ядро. Создана и специальная
операционная система JavaOS, применяемая в электронных устройствах. В большинство
Web-браузеров встроена виртуальная машина Java для выполнения апплетов.
Фирма Sun выпускает микропроцессоры PicoJava, работающие на системе команд
JVM, и собирается выпускать целую линейку все более мощных Java-процессоров. Есть
уже и Java-процессоры других фирм. Эти процессоры непосредственно выполняют байткоды, что существенно повышает скорость выполнения программ.
Упрощенная схема выполнения программы на языке Java приведена на рис. 1.3.
Файл: 681459470 Создан: 09.07.2007 Модифицирован: 01.05.2016
Автор: Шонин В.А.
- 14 Прикладное программирование в ТС
Лекция 3-01
Рис. 1.3. Схема выполнения программы на языке Java
Другая особенность Java — все стандартные функции, вызываемые в программе,
подключаются к ней только на этапе выполнения, а не включаются в байт-коды. Такой
режим называют динамической компоновкой (dynamic binding) программы. Это тоже
сильно уменьшает объем откомпилированной программы.
При программной реализации JVM интерпретация байт-кодов и динамическая
компоновка значительно замедляют выполнение программ. Поэтому постоянно идет
усовершенствование интерпретаторов JVM в сторону увеличения скорости
интерпретации. Так, разработаны JIT-компиляторы (Just-In-Time), запоминающие уже
интерпретированные участки кода в машинных командах процессора и просто
выполняющие эти участки при повторном обращении, например, в циклах. Это
значительно увеличивает скорость повторяющихся вычислений. Фирма Sun разработала
целую технологию HotSpot и включает ее в свою реализацию JVM.
2.1.2.2. Объектная ориентация
Языки программирования по областям применения можно разделить на две
большие группы: языки общего назначения и специализированные языки.
В
языках
общего
назначения
программа
традиционно
являлась
последовательностью операций (процедур) над данными различных типов, которые
реализуют алгоритм решения задачи. Поэтому языки общего назначения назывались
также процедурно-ориентированными языками. В принципе, на процедурноориентированном языке можно программировать задачи любых предметных областей,
поэтому языки программирования
общего назначения иногда называют
универсальными языками программирования.
Специализированные языки программирования ориентируются на конкретную
предметную область (задачу), поэтому их называют также проблемноориентированными языками программирования. Структура и компоненты программ
на специализированных языках программирования отражают специфику данной
предметной области (например, имитационное моделирование или обработка списков) и
поэтому программировать на этих языках может специалист в данной предметной
области, а не обязательно профессиональный программист.
Файл: 681459470 Создан: 09.07.2007 Модифицирован: 01.05.2016
Автор: Шонин В.А.
- 15 Прикладное программирование в ТС
Лекция 3-01
Появившаяся в начале 80-х годов и впервые реализованная в языке C++ технология
(иногда используют термины методология или парадигма) объектно-ориентированного
программирования заключается в том, что программа адаптирует себя к языку описания
задачи. При объектно-ориентированном подходе программы разрабатываются с точки
зрения вовлеченных и нее объектов программируемой предметной области, их свойств и
поведения. Объектно-ориентированные языки объединяют в себе преимущества
специализированных языков программирования (объекты программы отражают
специфику данной предметной области и поэтому понятны специалисту) и
универсальность языков общего назначения (можно использовать существующие объекты
или создавать объекты для любой предметной области). Преимущества объектноориентированного подхода особенно ярко проявляются при написании больших и
сложных программ.
Язык Java, так же как и языки C++, Object Pascal, Perl, Python и C#, является
объектно-ориентированным языком. Java – не единственный объектноориентированный язык, однако он является одним из немногих языков, которые с самого
начала разрабатывались как объектно-ориентированный (в отличие от C++ и Object
Pascal, где объектная ориентация фактически является надстройкой над процедурными
языками C и Pascal).
2.1.2.3. Многопотоковость
В современных операционных системах (таких, как Unix или Windows) может
одновременно выполняться несколько независимых задач. Такие системы называются
многозадачными операционными системами. С каждой задачей связан один или
несколько процессов, которые могут выполняться параллельно. Если используется один
процессор, параллельность выполнения процессов достигается за счет поочередного
предоставления процессора каждому из выполняемых процессов. Операционная система
обеспечивает защиту каждого выполняемого процесса от воздействия других процессов.
Так, программа в одном из процессов, не может просматривать или изменять данные,
обрабатываемые другой программой, если они не используют для взаимодействия между
собой механизм межпроцессного взаимодействия IPC (InterProcess Communication).
Высокая степень изоляции процессов друг от друга позволяет увеличить устойчивость
работы компьютера – сбой или зависание в одном из процессов не приводит к отказу
всего компьютера.
Платой за устойчивость работы являются большие расходы системных ресурсов на
запуск и поддержание отдельных процессов. Поэтому разработчиками операционных
систем была предложена концепция потоков команд (threads – дословно «нити»),
которую стали называть упрощенными процессами (lightweight processes). Как и обычный
процесс, поток является независимой последовательностью выполняемых команд
процессора, однако, потоки команд не защищены друг от друга средствами операционной
системы. Главное преимущество потоков заключается в том, что их запуск
осуществляется очень быстро.
Java является одним из немногих языков программирования, поддерживающих
режим работы с несколькими потоками. В этом режиме отдельные модули программы
выполняются независимо (асинхронно) друг от друга в разных потоках. Если на
компьютере имеется один процессор, средства Java эмулируют (имитируют) выполнение
каждого потока как бы своим процессором (для случая многопроцессорных компьютеров
каждый из процессоров может выполнять свой поток).
Файл: 681459470 Создан: 09.07.2007 Модифицирован: 01.05.2016
Автор: Шонин В.А.
- 16 Прикладное программирование в ТС
Лекция 3-01
2.1.2.4. Распределенность
Разработчикам языка и средств Java удалось решить многие проблемы
распределенного программирования, или программирования в компьютерной сети,
когда отдельные компоненты приложения выполняются в разных узлах сети.
В состав Java включены высокоуровневые средства доступа к данным по
протоколу HTTP (HyperText Transfer Protocol – протокол гипертекстовой передачи),
используемому для передачи Web-страниц, а также по транспортным протоколам сети
Internet. Удаленный вызов процедур в языке Java реализует технология вызова удаленных
методов RMI (Remote Method Invocation). Служба JNDI (Java Naming and Directory
Interface – интерфейс имен и каталогов Java) позволяет обращаться к объектам сети из
программ, используя при этом символьные имена объектов. Java содержит службу
сообщений – JMS (Java Message Service), для программирования обмена сообщениями в
сети, средства для создания клиентских приложений электронной почты, а
также
средства для создания сетевых приложений на базе архитектуры CORBA (Common Object
Request Broker Architecture – архитектура универсального посредника запросов объекта).
Кроме того, в языке Java имеются два типа программ: апплеты и сервлеты, специально
предназначенных для работы в сети. Для доступа к данным и формирования Web-страниц
можно использовать технологию JSP (Java Server Page – серверные страницы Java) и
компоненты EJB (Enterprise JavaBeans – компоненты Java для предприятия).
2.1.2.5. Безопасность
Поскольку Java является высокоразвитым языком программирования, прикладные
программы могут использовать многие ресурсы компьютера, в том числе и при работе в
сети (в частности, выполнять такие действия как манипулирование файлами,
установление соединений с удаленными системами и порождение внешних процессов).
Из-за этого программы или апплеты Java могут содержать потенциально опасный код,
написанный либо преднамеренно (например, для удаления данных или программ с
жесткого диска), либо непреднамеренно (в результате неумелого программирования).
Поэтому в языке Java предусмотрены средства, обеспечивающие безопасность
выполнения программ. Первоначальная модель безопасности, обеспечиваемая Java,
известная как модель «песочницы», обеспечивало очень жесткие правила выполнения
программ. В соответствии с этими правилами локальная программа имела доступ к
ресурсам компьютера (устройствам ввода-вывода, файловой системе), а программы,
полученные из сети (апплеты) могли получить только ограниченный доступ к ресурсам
внутри «песочницы». Для этого в состав виртуальной машины Java включен диспетчер
безопасности (Security Manager), управляющий доступом программ на языке Java
(локальных или переданных через сеть) к внешним программным и аппаратным ресурсам
компьютера.
В дальнейшем было введено понятие «сертифицированного апплета» (signed
applet), который может иметь доступ к локальным ресурсам, а затем было введено понятие
политики безопасности, реализованной в Java, начиная с JDK 1.2.
Политика безопасности на компьютере определяет набор разрешений доступных
программам от различных источников и может быть сконфигурирован пользователем или
системным администратором. Каждое разрешение определяет доступность определенного
ресурса (локального или удаленного), например, доступ по чтению и записи в
определенный файл, порт или компьютер.
Окружение времени выполнения разбивает программу на отдельные фрагменты
(домены), которым предоставлен одинаковый набор разрешений. Домен может быть
сконфигурирован как «песочница» (в этом случае апплет будет выполняться без доступа к
ресурсам компьютера), либо для него могут быть определены некоторые индивидуальные
правила безопасности (например, доступ к ресурсам компьютера только для чтения).
Файл: 681459470 Создан: 09.07.2007 Модифицирован: 01.05.2016
Автор: Шонин В.А.
- 17 Прикладное программирование в ТС
Лекция 3-01
2.1.3. Платформы Java
В Java существуют несколько основных платформ:
 Java SE (Java Standard Edition) – основная платформа Java, используемая для
создания прикладных программ и клиентских программ для Web-браузеров (апплетов) в
среде ОС Windows, Mac OS X, Linux и Unix.
 Java EE (Java Enterprise Edition) – платформа уровня предприятия, используемая
для создания прикладных программ, а также программ для Web-серверов (сервлетов,
страниц JSP и компонент EJB).
 Java ME (Java Micro Edition) – платформа, используемая в устройствах,
ограниченных по вычислительной мощности и графическим возможностям, в частности в
мобильных устройствах и встраиваемых системах;
 Java Card – платформа, используемая для создания прикладных программ,
работающих на смарт-картах и других устройствах с очень ограниченным объемом
памяти и возможностями обработки;
 JavaFX – платформа создания прикладных программ с графическим
интерфейсом для настольных компьютеров, мобильных и телевизионных устройств с
помощью декларативного языка программирования JavaFX Script.
Компоненты платформ Java и их структуры приведены на рис. 1.2.1.
База приложений
Персональный
профиль
Элементы
TV
Персональный
базовый
профиль
Java EE
Java SE
MIDP
Настольные
элементы
Мобильные
элементы
Основной
профиль
Общие элементы
IMP
JVM
JVM
CLDC
CDC
Java
Card
Средства времени
выполнения
KVM
JVM
Card
VM
JVM
Java ME
JavaFX
Рис. 1.2.1. Состав и структура платформ Java
Разработка платформ Java с 1988 года ведется фирмой Sun, а затем и Oracle, в
соответствии с формальной процедурой, называемой процедурой (или процессом)
сообщества Java – JCP (Java Community Process).
Основными результатами этой процедуры являются нумерованные документы,
которые называются запросами на спецификацию Java – JSR (Java Specification Requests).
Эти документы описывают спецификации, которые предлагается добавить к технологиям
и платформам Java.
Файл: 681459470 Создан: 09.07.2007 Модифицирован: 01.05.2016
Автор: Шонин В.А.
- 18 Прикладное программирование в ТС
Лекция 3-01
Разработка JSR регулируется Исполнительным Комитетом JCP – JCP EC (JCP
Executive Committee) и включает следующие документированные этапы:
 запрос (initiation);
 черновик для сообщества (community draft);
 открытый черновик (public draft);
 поддержка (maintenance).
На первом этапе спецификация предлагается членами сообщества, и, путем
голосования, принимается JCP EC как JSR с присваиванием номера.
На втором этапе JCP EC формирует экспертную группу, которая разрабатывает
первый черновик спецификации. Этот черновик выносится на рассмотрение комитета и
членов сообщества (процесс может проходить несколько итераций согласования).
На третьем этапе JSR выкладывается в Интернет, где любой пользователь может
дать на него отзыв. Экспертная группа использует эти отзывы для доработки
спецификации, после чего спецификация выносится на голосование для окончательного
утверждения. К этому времени для JSR формируется эталонная реализация (reference
implementation) и набор автоматических тестов – TCK (Technology Compatibility Kit).
На четвертом этапе версия спецификации, эталонной реализации и TCK
обновляется по мере поступления запросов на доработку, уточнение и расширение.
Некоторые запросы могут потребовать пересмотра спецификации экспертной группой и
выпуска новой версии, или формирования нового JSR.
В соответствии с основными технологиями Java в настоящее время существуют два
JCP EC:
 JCP EC SE/EE – для платформ Java SE и Java EE, а также JavaFX;
 JCP EC ME – для платформ на устройствах с ограниченными возможностями
(Java ME и Java Card).
2.1.4. Программные средства Java
В отличие от других языков программирования в Java существует три типа
программ:
 приложения (applications);
 апплеты (applets);
 сервлеты (servlets).
Приложения – это обычные программы, по своей структуре похожие на
программы на других объектно-ориентированных языках программирования, которые
могут выполняться как на локальной машине, так и взаимодействовать между собой в
сети. Программы могут выполняться в режиме командной строки, либо запускаться как
графические приложения.
Апплеты – это программы, имеющие специальную структуру и вызываемые в
Web-страницах.
Сервлеты запускаются под управлением серверов и используются для
обеспечения взаимодействия между клиентскими компьютерами, серверами и базами
данных, а также для формирования Web-страниц по запросам пользователей.
Средства разработки программ на языке Java обеспечивают среду написания,
компиляции, компоновки и отладки программ Java. Наиболее распространенной и простой
средой разработки программ на языке Java является набор разработчика Java: одно из
приведенных выше изданий: Java SE, Java EE или Java ME. Эти издания включают в себя
следующие компоненты: компилятор, интерпретатор и JVM, отладчик, базовую
библиотеку классов, примеры программ и апплетов, а также исходные тексты программ
библиотеки Java. Эти средства являются открытыми и бесплатными и их последние
версии можно скачать с Web-сайта компании Sun http://java.sun.com/.
Файл: 681459470 Создан: 09.07.2007 Модифицирован: 01.05.2016
Автор: Шонин В.А.
- 19 Прикладное программирование в ТС
Лекция 3-01
Пакет Java SE использует интерфейс командной строки. Например, для
компиляции вводится команда компиляции, которой в качестве параметра задается имя
файла, содержащего текст программы. Однако по мере роста популярности языка Java
для него стали разрабатываться так называемые интегрированные средства разработки
программ – IDE (Integrated Development Environment), соединяющие в себе функции
редактора, компилятора, интерпретатора, отладчика и среды выполнения. Как правило,
эти средства используют графический пользовательский интерфейс.
Фирма Sun предлагает открытое IDE для разработки приложений с использованием
Java SE и Java EE – NetBeans (последняя версия – 6.1 для Java SE 6 и Java EE 5). Его также
можно скачать с Web-сайта компании Sun. Это IDE предназначено для создания сложных
приложений на языке Java, в том числе, с использованием сетевых средств.
В данной дисциплине при изучении основ языка Java будет использоваться
NetBeans IDE 6.1.
При скачивании программных продуктов следует обратить внимание на языковую
версию программных продуктов: Multilanguage или English. Первая версия включает
возможность использования символов кириллицы в тексте программы и в выводимых
данных, вторая – только латинских букв. По возможности следует скачивать первую
версию (она есть не для всех операционных систем).
Существуют и другие IDE для разработки программ на языке Java. Так, фирма
inteRAD Technology (http://build-it.interadtechnology.com) предлагает
бесплатное IDE для Java – Build-IT CUP. Популярное IDE JBuilder (последняя версия
JBuilder 2007), разработано фирмой Borland, которая является также разработчиком
известных IDE для языка C++: Borland C++ и Builder C++. Бесплатную версию этого
продукта (JBuilder 2005) или последнюю (платную) версию для тестирования сроком на
30 дней можно скачать с Web-сайта распространителя программных продуктов фирмы
Borland – CodeGear: http://www.codegear.com.
Web-браузеры фактически являются операционной системой для апплетов Java.
Все популярные Web-браузеры: Internet Explorer, Firefox, Opera и Safari поддерживают
работу с апплетами Java. Фирма Sun разработала программу Java Plug-in, который
заменяет встроенную виртуальную машину Web-браузера на JVM фирмы Sun (эта JVM
обеспечивает больше возможностей, чем встроенные JVM). Такая возможность имеется
для Internet Explorer и Firefox.
2.1.5. Оформление программы на языке Java
Рекомендации по оформлению программ изложены в документе «Соглашения по
кодированию для языка программирования Java» (Code Conventions for the Java
Programming Language).
Программа на языке Java записывается в текстовом виде и состоит из вводимых
элементов. Программа разбивается на строки. Символами окончания строки являются
либо один из символов CR (Carriage Return – возврат каретки) (код "0D") или LF (Line
Feed – переход на новую строку) (код "0A"), либо последовательность из этих двух
символов. Эти символы служат для текстового редактора указанием вывода следующей за
ними информации с новой строки и обычно не выводятся.
Вводимые элементы могут быть следующих типов: пробельные символы,
комментарии и элементы программы (tokens).
Пробельные символы и комментарии являются разделителями между элементами
программы. Элементы программы могут отделяться друг от друга одним или несколькими
разделителями.
Пробельными символами, помимо пробела (код "20") являются: символ
горизонтальной табуляции (код "09"), символ вертикальной табуляции (код "0B") и
Файл: 681459470 Создан: 09.07.2007 Модифицирован: 01.05.2016
Автор: Шонин В.А.
- 20 Прикладное программирование в ТС
Лекция 3-01
переход на новую страницу (код "0C"), а также символы возврата каретки и перехода на
новую строку.
Способы записи комментариев в Java рассмотрены далее.
Элементами программы являются: ключевые слова, идентификаторы, константы
(литералы), разделители и операции. Символы верхнего и нижнего регистра в ключевых
словах и идентификаторах считаются разными символами.
В спецификации 3.0 определены следующие ключевые слова:
abstract
default
if
protected
throws
assert
do
implements
public
transient
boolean
double
import
return
try
break
else
instanceof
short
void
byte
enum
int
static
volatile
case
extends
interface
strictfp
while
catch
final
long
super
char
finally
native
switch
class
float
new
synchronized
const
for
package
this
continue
goto
private
throw
Ключевые слова const и goto не используются в Java. Они введены лишь для
того, чтобы сгенерировать сообщение об ошибке компиляции при появлении этих
ключевых слов C++ в программе.
Идентификаторами называют имена, присваиваемые различным элементам
программы. Идентификаторы в языке Java строятся из символов стандарта Unicode.
Каждый символ по стандарту Unicode кодируется 16 битами (2 байта), в отличие от
стандарта ASCII, использующего 8-битовую кодировку (1 байт).
Согласно спецификации Java, идентификаторы должны состоять из букв и цифр
(без пробелов), причем первым символом не должна быть цифра. Идентификаторы не
должны совпадать с ключевыми словами, булевскими константами true и false, а
также переменной null. Буква может быть любым буквенным символом Unicode (в том
числе и буквой кириллицы – только для версии Multilanguage). Следует однако отметить,
что буква K латинского алфавита и буква К кириллицы считаются разными буквами.
Идентификатор, согласно спецификации, может иметь произвольную длину.
Кроме того, для совместимости с ранними версиями Java буквами считаются
символ подчеркивания "_" и символ доллара "$".
Примеры правильных идентификаторов Java:
A1 myMethod GREEN_COLOR переключатель
Константы представляют значения числовых типов и символьного типа, а также
типа String (строковые константы). Значение null также является константой.
Разделителями в Java являются следующие 9 символов:
 ( – открывающая круглая скобка;
 ) – закрывающая круглая скобка;
 { – открывающая фигурная скобка;
 } – закрывающая фигурная скобка;
 [ – открывающая квадратная скобка;
 ] – открывающая квадратная скобка;
 ; – точка с запятой;
 , – запятая;
 . – точка.
Файл: 681459470 Создан: 09.07.2007 Модифицирован: 01.05.2016
Автор: Шонин В.А.
- 21 Прикладное программирование в ТС
Лекция 3-01
Операции Java – это символы унарных и бинарных операций (арифметических,
логических, операций отношения и присваивания), символы составных операций (типа
"+="), а также символы "?" и ":" условного оператора.
Последовательность элементов программы образует предложение или оператор
языка Java. В одной строке может размещаться несколько операторов. Оператор может
занимать несколько строк, причем перенос на новую строку можно делать в том месте
оператора, где находится пробельный символ или символ-разделитель (до или после этого
символа). Признаком окончания оператора является символ ";".
Операторы Java, как и операторы языка C, могут образовывать блоки. Операторы
блока заключаются в символы "{" и "}". Символ ";" после завершения блока (символа
"}") ставить не надо.
Комментарии в языке Java можно оформлять одним из следующих способов:
1. /* текст */
Весь текст, заключенный между этими сочетаниями символов, будет
проигнорирован. Такой комментарий может занимать несколько строк.
2. // текст
Весь текст, следующий после символов "//" до конца строки, игнорируется.
В Java существует еще один тип комментариев, используемый для автоматического
документирования программы – комментарии Javadoc (этот тип комментариев будет
рассмотрен позднее).
Файл: 681459470 Создан: 09.07.2007 Модифицирован: 01.05.2016
Автор: Шонин В.А.
Скачать