Java как центр архипелага - [9]

Шрифт
Интервал

public void destroy (); этот метод предназначен для освобожденя

          ресурсов; аналог деструктора, но не вызывается автоматически; всегда

          вызывает stop(); всегда вызывается при выходе из навигатора и при

          перезагрузке аплета.

Простейший аплет выглядит так:

1     import java.awt.Graphics;

2     import java.applet.Applet;

3     class SimpleApplet extends Applet {

4       public void paint (Graphics g) {

5         g.drawString ("Hello world!", 10, 10);

6       }

7     }

Метод public void paint (Graphics g) (строки  4-6)  определяет,

как  аплет  перерисовывает себя в тот момент, когда оконный ме-

неджер посылает WWW-навигатору запрос на перерисовку.

Включение аплета в WWW-страницу производится следующим образом.

В языке HTML 2.0 предусмотрены специальные конструкции

и . Первая из них задает имя загружаемого класса и  раз-

меры  области в окне навигатора, выделяемой аплету. Конструкция

служит для передачи информации с WWW-страницы в ту сре-

ду, в которой будет выполняться аплет.

Ниже приведен простой пример вкллючения аплета в WWW-страницу.

Если вы видите этот текст, то ваш навигатор не поддерживает Java

Поскольку WWW-навигаторы игнорируют неизвестные конструкции,  в

навигаторе, не поддерживающем Java, будет виден текст

--------------------------------------------------------------------------

Если вы видите этот текст, то ваш навигатор не поддерживает Java

--------------------------------------------------------------------------

Опросить значения, передаваемые с помощью конструкции , можно

следующим образом:

public void init () {

  String fontname = getParameter ("name");

  String fontSizestring = getParameter ("size");

  int theSize = Int.parseInt (fontSizeString);

  . . .

}

          4.2.2. Java-машина

Java-компилятор  переводит  транслирует  исходные  тексты Java-

программ в коды Java-машины. Вообще говоря, Java-машина являет-

ся виртуальной в том смысле, что она не существует в  виде  ре-

альных микросхем и других устройств, а представляет собой прог-

раммный  эмулятор, выполняющийся на какой-либо традиционной ап-

паратной платформе. Вероятно, уже  в  ближайшее  время  следует

ожидать появления и все более широкого распространения и прямых

аппаратных реализаций Java-машины.

Идея языковых процессоров, разумеется, не нова. Известны попыт-

ки  внедрить  так  называемый P-код в качестве стандарта на ре-

зультат работы Паскаль-компиляторов; в свое время много  писали

о языке и машине Форт; была выполнена аппаратная реализация ре-

фал-машины, и список этот можно продолжать и продолжать.

В  контексте проекта Java спецификация виртуальной машины явля-

ется частью комплекса мер, направленных на стандартизацию Java-

среды и на обеспечение ее независимости от  аппаратно-программ-

ной  платформы.  Кроме того, следует учитывать ту специфическую

среду, в которой должны готовиться и  работать  Java-программы.

Если  Web-страница содержит Java-аплеты, эти аплеты будут пере-

даваться по сети. Значит, весьма желательно, чтобы Java-код был

как можно более компактным; в противном случае  время  загрузки

страницы рискует стать раздражающе большим. Соответственно, ар-

хитектура  и  система  команд Java-машины проектировались таким

образом, чтобы всячески способствовать компактификации кода.  С

другой стороны, формат команд Java-машины довольно прост (обыч-

но  команды  не  имеют операндов и занимают один байт), поэтому

возможна ее (машины)  эффективная  эмуляция.  По  этой  причине

программы,  подготовленные для выполнения на Java-машине, часто

называют байт-кодами.

Мы опишем архитектуру Java-машины довольно кратко.  Последующее

изложение опирается на версию спецификаций 1.0.

            4.2.2.1. Типы данных, поддерживаемые Java-машиной

Java-машина поддерживает следующие стандартные типы данных:

- byte - однобайтные целые цисла в двоичном дополнительном коде;

- short - двухбайтные целые числа;

- int - четырехбайтные целые числа;

- long - восьмибайтные целые числа;

- float - четырехбайтные вещественные числа в формате IEEE-754;

- double - восьмибайтные вещественные числа;

- char - двухбайтные беззнаковые символы в кодировке Unicode.

Поскольку  Java-компилятор в состоянии проверить типы данных во

время трансляции, при выполнении нет нужды ассоциировать допол-

нительную информацию со значениями  стандартных  типов.  Вместо

этого  генерируются  команды,  рассчитанные на обработку данных

определенных типов. Например, для сложения  целых  чисел  будет

сгенерирована  команда  iadd, а для сложения вещественных чисел

двойной точности - команда dadd.

Значения типа boolean представляются однобайтными целыми числа-

ми и обрабатываются посредством соответствующих команд.

Имеется еще два стандартных типа данных:

- object - четырехбайтная ссылка на об®ект (массивы  трактуются

как об®екты);

- returnAddress - четырехбайтный адрес возврата из метода.

Спецификации  Java-машины не описывают внутренней структуры об-

®ектов. В реализации Sun Microsystems значение типа object ука-


Рекомендуем почитать
Изучаем Java EE 7

Java Enterprise Edition (Java EE) остается одной из ведущих технологий и платформ на основе Java. Данная книга представляет собой логичное пошаговое руководство, в котором подробно описаны многие спецификации и эталонные реализации Java EE 7. Работа с ними продемонстрирована на практических примерах. В этом фундаментальном издании также используется новейшая версия инструмента GlassFish, предназначенного для развертывания и администрирования примеров кода. Книга написана ведущим специалистом по обработке запросов на спецификацию Java EE, членом наблюдательного совета организации Java Community Process (JCP)


Pro Git

Разработчику часто требуется много сторонних инструментов, чтобы создавать и поддерживать проект. Система Git — один из таких инструментов и используется для контроля промежуточных версий вашего приложения, позволяя вам исправлять ошибки, откатывать к старой версии, разрабатывать проект в команде и сливать его потом. В книге вы узнаете об основах работы с Git: установка, ключевые команды, gitHub и многое другое.В книге рассматриваются следующие темы:основы Git;ветвление в Git;Git на сервере;распределённый Git;GitHub;инструменты Git;настройка Git;Git и другие системы контроля версий.


Java 7

Рассмотрено все необходимое для разработки, компиляции, отладки и запуска приложений Java. Изложены практические приемы использования как традиционных, так и новейших конструкций объектно-ориентированного языка Java, графической библиотеки классов Swing, расширенной библиотеки Java 2D, работа со звуком, печать, способы русификации программ. Приведено полное описание нововведений Java SE 7: двоичная запись чисел, строковые варианты разветвлений, "ромбовидный оператор", NIO2, новые средства многопоточности и др.


Фундаментальные алгоритмы и структуры данных в Delphi

Книга "Фундаментальные алгоритмы и структуры данных в Delphi" представляет собой уникальное учебное и справочное пособие по наиболее распространенным алгоритмам манипулирования данными, которые зарекомендовали себя как надежные и проверенные многими поколениями программистов. По данным журнала "Delphi Informant" за 2002 год, эта книга была признана сообществом разработчиков прикладных приложений на Delphi как «самая лучшая книга по практическому применению всех версий Delphi».В книге подробно рассматриваются базовые понятия алгоритмов и основополагающие структуры данных, алгоритмы сортировки, поиска, хеширования, синтаксического разбора, сжатия данных, а также многие другие темы, тесно связанные с прикладным программированием.


Питон — модули, пакеты, классы, экземпляры

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


Как пасти котов. Наставление для программистов, руководящих другими программистами

«Как пасти котов» – это книга о лидерстве и руководстве, о том, как первое совмещать со вторым. Это, если хотите, словарь трудных случаев управления IT-проектами. Программист подобен кошке, которая гуляет сама по себе. Так уж исторически сложилось. Именно поэтому так непросто быть руководителем команды разработчиков. Даже если вы еще месяц назад были блестящим и дисциплинированным программистом и вдруг оказались в роли менеджера, вряд ли вы знаете, с чего надо начать, какой выбрать стиль руководства, как нанимать и увольнять сотрудников, проводить совещания, добиваться своевременного выполнения задач.