Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

СТП / lec / java2014-lec-01

.pdf
Скачиваний:
7
Добавлен:
03.03.2016
Размер:
930.07 Кб
Скачать

Верификатор байткода

Обеспечивает:

1.Проверку загружаемого кода на соответствие требованиям текущей JVM.

2.Код не нарушает целостности системы.

3.Операнды не вызывают переполнение или недополнение (выход за нижнюю границу).

4.Корректность типов параметров в пределах текущей JVM.

21

Управление памятью с помощью сборки мусора

Часто противопоставляется ручному управлению памятью

Упрощает процесс программирования

Предотвращает утечки памяти

но утечки могут происходить при невнимательном программировании, поэтому лучше их избегать

Позволяет оптимизировать размещение объектов

Система с реализованной сборкой мусора как правило менее производительна и более требовательна к ресурсам

22

Сборщик мусора JVM

Определяет объекты, которые в будущем не будут использоваться

Освобождает память, занятую такими объектами

Все время находится в рабочем состоянии

Не предполагается никакого конкретного алгоритма работы

Реализация может значительно отличаться в разных

JVM

Влиять на работу сборщика мусора можно лишь косвенно:

Рекомендуя выполнять те или иные действия

Изменяя параметры запуска

23

Виды сборки мусора

Отслеживающий метод – обход графа и определение достижимости объекта

Использование поколений:

При срабатывании сборщика мусора к значению неудаленного объекта прибавляется единица – сколько сборок мусора он пережил

Объекты с одинаковыми такими значениями образуют поколение

Сборщик мусора с большей вероятностью удаляет экземпляры только некоторых поколений

24

Поддерживаемые типы данных (этап компиляции)

byte

1-байтовое со знаком, представленное в ДОК

 

 

short

2-байтовое со знаком, представленное в ДОК

 

 

int

4-байтовое со знаком, представленное в ДОК

 

 

long

8-байтовое со знаком, представленное в ДОК

 

 

float

вещественное число ОТ стандарта IEEE 754, занимающее 4 байта

 

 

double

вещественное число ДТ стандарта IEEE 754, занимающее 8 байт

 

 

char

символ Unicode, занимающий 2 байта

 

 

object

ссылка на объект, занимающая 4 байта

 

 

returnAddress

4 байта, используемые с инструкциями jsr/ret/jsr_w/ret_w

 

 

Реализация логического типа неспецифицирована

25

Поддерживаемые типы данных (этап выполнения)

Actual Type

Computational Type

boolean

int

byte

int

char

int

short

int

int

int

float

float

reference

reference

returnAddress

returnAddress

long

long

double

double

26

Основные ограничения JVM

Длина кода метода ограничена 65535 байтами

Число слов аргументов в вызове метода ограничено 255

Кол-во операций VM = 256 (можно провести аналогию с RISC-компьютером)

Класс может быть выгружен, если его загрузчик стал недоступен

Системные классы не могут быть выгружены ввиду того, что загрузчик системных классов доступен всегда во время работы JVM

27

Прерывание работы JVM

JVM прекращает свою работу если выполнено одно из условий:

Все потоки, не являющиеся демонами, завершены (даже если метод main() уже завершился, но еще выполняются порожденные им потоки - система будет ждать их завершения)

Один из потоков вызвал метод exit() и данная операция была разрешена менеджером безопасности

Пример простого Java-приложения

29

Компиляция и выполнение приложения TestGreeting

Компиляция TestGreeting.java:

javac TestGreeting.java

При этом Greeting.java будет скомпилирован автоматически.

Запуск приложения:

java TestGreeting

30

Соседние файлы в папке lec