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 ука-


Рекомендуем почитать
Программное обеспечение и его разработка

Автор книги — американский специалист по программированию, один из руководителей фирмы IBM, в своей книге делает попытку изложить общие проблемы создания программного обеспечения, его сопровождения и использования. Особенно подробно рассматриваются все фазы разработки программ разных типов. Изложение ясное, удачно иллюстрировано примерами.Для программистов разной квалификации и пользователей ЭВМ.fb2: ВНИМАНИЕ. В тексте присутствуют таблицы. Рекомендуется читать файл с помощью программы, поддерживающей их отображение.


Энциклопедия разработчика модулей ядра Linux

Linux Kernel Module Programming Guide свободная книга; Вы можете воспроизводить и/или изменять ее в соответствии с версией 2 (или, в вашем случае, любой более поздней версией) GNU General Public License, опубликованной Free Software Foundation. Версия 2 поставляется с этим документом в Приложении E.Эта книга распространяется в надежде, что будет полезна, но без какой-либо гарантии; даже без подразумеваемой гарантии высокого спроса или пригодности какой-либо для специфической цели.Автор поощряет широкое распространение этой книги для персонального или коммерческого использования, если вышеупомянутое примечание относительно авторского права остается неповрежденным, и распространитель твердо придерживается условий GNU General Public License (см.


Применение Windows API

В книге рассказывается история главного героя, который сталкивается с различными проблемами и препятствиями на протяжении всего своего путешествия. По пути он встречает множество второстепенных персонажей, которые играют важные роли в истории. Благодаря опыту главного героя книга исследует такие темы, как любовь, потеря, надежда и стойкость. По мере того, как главный герой преодолевает свои трудности, он усваивает ценные уроки жизни и растет как личность.


Управление исходными текстами. Часть 1. Краткое руководство по CVS

В книге рассказывается история главного героя, который сталкивается с различными проблемами и препятствиями на протяжении всего своего путешествия. По пути он встречает множество второстепенных персонажей, которые играют важные роли в истории. Благодаря опыту главного героя книга исследует такие темы, как любовь, потеря, надежда и стойкость. По мере того, как главный герой преодолевает свои трудности, он усваивает ценные уроки жизни и растет как личность.


Обработка событий в С++

В книге рассказывается история главного героя, который сталкивается с различными проблемами и препятствиями на протяжении всего своего путешествия. По пути он встречает множество второстепенных персонажей, которые играют важные роли в истории. Благодаря опыту главного героя книга исследует такие темы, как любовь, потеря, надежда и стойкость. По мере того, как главный герой преодолевает свои трудности, он усваивает ценные уроки жизни и растет как личность.


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

В книге рассказывается история главного героя, который сталкивается с различными проблемами и препятствиями на протяжении всего своего путешествия. По пути он встречает множество второстепенных персонажей, которые играют важные роли в истории. Благодаря опыту главного героя книга исследует такие темы, как любовь, потеря, надежда и стойкость. По мере того, как главный герой преодолевает свои трудности, он усваивает ценные уроки жизни и растет как личность.