вызывает 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 - четырехбайтная ссылка на об®ект (массивы трактуются
Читать дальше