На главную | Содержание | Назад | Вперёд
Наши друзья

 

 

Язык программирования Java

В настоящее время наиболее быстро развивающейся технологией в Internet СЩ ается Java. Java - это объектно-ориентированный платформно-независимЩ зык программирования. Он разработан дочерней компанией Sun Microsystems -avaSoft. Несмотря на то что Java - это полнофункциональный язык програм-:ирования, специалисты используют его только для создания относительно не-ольших программ, называемых апплетами, которые могут выполняться в /eb-броузере. Наравне с апплетами Java существуют и приложения Java — полно-дсштабные программы, которые могут выполняться и без броузера. Кроме того, ни могут поддерживать устойчивые объекты (читать и записывать в файл) на диске или сервера.
этой главе я собираюсь дать вам только базовые сведения о новых понятиях, десь не будет сказано ни слова о программировании на Java. Для того чтобы онять связанные с Java проблемы безопасности, не нужно быть программи-том. Несмотря на то что в этом языке программирования реализованы внутренние редства защиты от создания апплетов, способных нанести вред системе, в нем ыли и остаются некоторые нерешенные проблемы. Прочитав главу, вы позна-:омитесь со следующими понятиями:
* Броузер, поддерживающий Java, содержит в себе программу, называемую виртуальной машиной Java.
» Java — это специфический язык программирования. Программы Java сна­чала компилируются (с помощью компилятора) в так называемый виртуаль­ный код, а не преобразуются к виду, понятному машине (как это делается
во всех остальных языках программирования).
»   По структуре Java очень напоминает язык программирования C++.
» Java работают внутри надежного механизма защиты, называемого
коробкой.
» Коробка Java позволяет защитить пользователя от апплетов, способных нанести вред системе.
» Апплеты Java могут принести много хлопот, однако их действие не так уж разрушительно.
»   Java может выполнять программы типа клиент-сервер и без помощи Web-броузера и коробки.
» Программисты могут создавать цифровые подписи программ Java. Цифровая подпись — это уникальное численное значение, которое броузер отобража­ет в форме сертификата. Эти подписи помещаются в заголовке программы.
Благодаря цифровой подписи можно идентифицировать создателя программы


и проверить, не изменил ли кто-либо ее текст. Программы с цифровыми подписями также называются надежными апплетами.
*  Программисты могут легко управлять объектами Java и создавать аппле-ты, способные навредить системе пользователя.
Язык  ПРОГРАММИРОВАНИЯ JAVA
После создания программы программист компилирует ее с помощью специфи­ческого для каждого языка программирования компилятора. В результате дол­жен получиться код, понятный машине. Машинный код — это двоичная инфор­мация (состоящая из нулей и единиц), которая понятна компьютеру. Во время компиляции компилятор преобразует исходный текст программы (набор опера­торов С или C++) в понятный машине набор нулей и единиц. К сожалению (а может быть, к счастью), в мире существует несколько типов компьютеров: ПК, построенные на процессорах Intel; Macintosh, построенные на процессорах ком­пании Motorola и т. д. Все они работают с различными наборами команд (по­следовательностями нулей и единиц). Например, программы, написанные для работы на ПК под управлением Windows, не могут быть выполнены под управ­лением Unix. И наоборот: программа, написанная для Unix-машины, не может быть выполнена на ПК. Поэтому программисты вынуждены переписывать и ком­пилировать свои программы для каждой машины по отдельности. Более того, они должны переделывать программы для каждой операционной системы.
Щ Web-броузера. Благодаря этому они могут выполняться на раз-Щ личных системах. Однако вы должны четко уяснить, почему нельзя обойтись без броузера. Как известно, все компьютеры понимают только язык нулей и единиц. При создании исход­ного текста программы программист указывает машине, какие операции она должна выполнить. После этого исходный текст компилируется с помощью специальной программы, называемой компилятором. В результате должен получиться понятный машине набор нулей и единиц. Однако этот набор-специфичен для каждого типа машин. Другими словами, он зависит от того, на каком процессоре будет выполняться программа. Но компилятор Java работает совсем по-другому. В результате его работы получается так называ­емый виртуальный код (bytecode), который не зависит от типа процессора, а, скорее, похож на некий промежуточный вариант между исходным текстом программы и набором нулей и единиц. схематично показан процесс компиляции программы в виртуальный код.
После создания виртуального кода нужно с помощью НТМЬдобавить к Web-стра­нице ссылку на созданный апплет. Для этого используется специальный тег <APPLET>. Если кто-либо посетит такую страницу, то его Web-броузер счи­тает этот тег и (если броузер поддерживает Java) загрузит его на машину
В этом случае специфический для этой платформы компьютеров броузер пре­образует текст апплета в набор нулей и единиц, понятных Motorola. Если же пользователь под управлением Windows, то его
■$ броузер преобразует текст апплета в набор нулей и единиц, понятных про­цессору Intel. Преимущество виртуального кода заключается в том, что со­здателю апплета не нужно ломать голову на какой платформе будет выполняться программа. Более того, он точно знает, что его программа сможет выполняться на любой машине.
Как и любой язык программирования, Java не лишен некоторых компро­миссных решений. В частности, компактность виртуального кода
. ценой существенного замедления работы программы. Дело в том, что вир­туальная машина Java является транслятором (а не компилятором). Именно
| поэтому программы Java не могут выполняться так же быстро, как их экви­валенты, написанные для определенных типов процессоров. Чтобы лучше понять эти вещи, приведем следующее сравнение. Допустим, вы программу на Java, а затем написали программу на C++,
. точно такие же действия. Скомпилировав обе программы, вы к своему изум-обнаружите,       программа на Java выполняется в раз леннее, чем ее эквивалент на C++.
Компания Sun Microsystems создала Java для разработки программ для програм­мируемых бытовых приборов, Например, таким прибором может быть кофевар­ка, которую можно запрограммировать так, чтобы она приступила к приготов­лению кофе в определенное время, а также задать крепость напитка. Первый вариант языка назывался Oak (дуб).
В начале 90-х годов компания пришла к выводу, что рынок программируемых бытовых приборов не принесет доходов, которые помогут окупить средства, за­траченные на создание Oak. Разработка была приостановлена, и дело чуть-чуть не заглохло, однако несколько приверженцев новорожденного языка програм­мирования создали замечательную презентацию, демонстрирующую его скры­тые возможности. Эта презентация состояла из нескольких апплетов, разбро­санных по Web, и работала на различных типах персональных компьютерах. Для ее выполнения требовался лишь Web-броузер, без которого, как мы знаем, нельзя представить нормальную работу в Internet. Именно эта презентация изменила' мнение исполнительных директоров компании. Всем стало очевидно, что имен­но этот язык программирования может существенно повлиять на развитие Internet. Новому проекту было присвоено название Java — оно показалось более привле­кательным, чем предыдущий вариант.
По своей структуре Java очень напоминает язык программирования C++. Одна­ко между этими языками есть и некоторые различия:
• Основным элементом языков программирования С\С++ являются указа­тели. С их помощью программист может напрямую обратиться к памяти машины. Однако каждая система реализует свой метод обращения к па­мяти, что сильно усложняет реализацию указателей. Так как по замыслу Sun программы Java должны выполняться на всех типах компьютеров, то решили вообще отказаться от использования указателей. Более того, это существенно повысило безопасность языка. Но об этом вы узнаете позже.
• В Java реализовано встроенное управление потоками. Поток — это тип взаимодействия программ с операционной системой. Управление потоками позволяет программисту контролировать процесс выполнения программы.
• Компилятор Java компилирует программы в структуру, называемую вир­туальным кодом. После этого виртуальный код помещается в файл, назы­ваемый классом. Расположенная в Web-броузере виртуальная машина Java
транслирует виртуальный код апплета в машинный код. В отличие от
Java программы С\С++ сразу компилируются в машинный код.
• Как уже говорилось, программы Java выполняются только после того, как
виртуальная машина Java преобразует их в машинный код. Виртуальная
машина Java располагается поверх операционной системы (обычно она рас­полагается внутри Web-броузера). Когда броузер встречает в HTML-файле тег <APPLET>, он загружает с сервера указанные в теге файлы классов. После этого виртуальная машина Java проверяет, не нарушает ли апплет правил безопасности Java. Завершив проверку, она транслирует апплет в машинный код. показана модель взаимоотношений
как загрузить
После прочтения предыдущих разделов вы наверняка захоти­те поближе познакомится с Java. В настоящее время суще- ■ ствует несколько компиляторов Java, включая Java Cafe® от компании Symantec и Visual J++® от компании Microsoft. Если же вы не собираетесь создавать программы, а просто хотите побольше узнать о Java (и, соответственно, не желаете покупать какой-либо профессиональный пакет), то вам, скорее всего, подойдет пакет разработ­чика Java (JDK- Java Developer's Kit). Компания JavaSoft разместила на своем Web-сайте наиболее свежие бесплатные версии Java. В состав JDK входят все необходимые компоненты для выполнения программ Java. Одна­ко для создания программ вам понадобится свой собственный редактор. Кроме того, в JDK очень слабо развиты средства контекстной помощи. Для полу-учения более подробной информации о программировании на Java я реко­мендую ознакомиться с книгой Марка Чена, Стивена Гриффиса и Энтони Изи «1001 совет по программированию на Java» (опубликована на русском языке издательством «Попурри», 1997 г.). Чтобы загрузить JDK, посетите Web-сайт компании JavaSoft, расположенный по адресу http://java.sun.com/ nav/download/index.html'(4).

 

На главную | Содержание | Назад | Вперёд
 
Яндекс.Метрика