Владимир Цишевский - Java как центр архипелага

Тут можно читать онлайн Владимир Цишевский - Java как центр архипелага - бесплатно полную версию книги (целиком) без сокращений. Жанр: comp-programming, год 1996. Здесь Вы можете читать полную версию (весь текст) онлайн без регистрации и SMS на сайте лучшей интернет библиотеки ЛибКинг или прочесть краткое содержание (суть), предисловие и аннотацию. Так же сможете купить и скачать торрент в электронном формате fb2, найти и слушать аудиокнигу на русском языке или узнать сколько частей в серии и всего страниц в публикации. Читателям доступно смотреть обложку, картинки, описание и отзывы (комментарии) о произведении.

Владимир Цишевский - Java как центр архипелага краткое содержание

Java как центр архипелага - описание и краткое содержание, автор Владимир Цишевский, читайте бесплатно онлайн на сайте электронной библиотеки LibKing.Ru
Статья опубликована в журнале Jet Info, №9, 1996 г.

Java как центр архипелага - читать онлайн бесплатно полную версию (весь текст целиком)

Java как центр архипелага - читать книгу онлайн бесплатно, автор Владимир Цишевский
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

import java.util.HashTable;

import java.util.*;

Первая инструкция import позволяет обращаться к классам пакета

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

util.Vector

util.HashTable

. . .

Вторая инструкция импортирует лишь класс HashTable, позволяя в

дальнейшем обращаться к этому классу по короткому имени, без

префикса util.

Третья инструкция import позволяет обращаться по коротким име-

нам ко всем классам пакета util.

4.1.4. Управляющие конструкции

Управляющие конструкции языка Java вполне традиционны, за иск-

лючением средств выхода из вложенных блоков (в частности, из

вложенных циклов). Пример.

test:

for (int i = 0; i < 10; i++) {

for (int j = 0; j < 10; j++) {

if (i > 3) {

break test;

}

}

}

Для передачи управления можно применять как конструкцию break,

так и continue (переход к следующей итерации цикла).

Инструкция goto в языке Java отсутствует.

4.1.5. Исключительные ситуации

Для обработки исключительных ситуаций, возникающих во время вы-

полнения программы, в языке Java используется конструкция try/

catch/finally. Блок try содержит инструкции, выполнение может

привести к возникновению исключительных ситуаций. Следующие за

ним один или несколько блоков catch предназначены для обработки

исключительных ситуаций. Наконец, блок finally содержит инст-

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

исключительной ситуации в блоке try. При выходе из try-части

посредством инструкций передачи управления (break, return и

т.п.) блок finally также будет выполнен.

Для передачи информации об исключительной ситуации используются

об®екты классов - наследников класса Throwable. Например, класс

ArrayIndexOutOfBoundsException отвечает за контроль выхода ин-

дексов за границы массивов, класс OutOfMemoryException - за ре-

акцию на исчерпание свободной памяти, класс ClassCastException

- за ошибки при преобразовании типов, класс

InterruptedException - за обработку прерывания текущего потока

и т.д. Компонентой всех этих классов является поле типа String,

в которое помещается текст сообщения об ошибке. Метод

getMessage возвращает этот текст.

В подобных об®ектах может содержаться и дополнительная информа-

ция. Например, об®екты класса InterruptedIOException содержат

поле, в которое заносится число байт, переданных до возникнове-

ния исключительной ситуации.

Следующий фрагмент программы распечатывает сообщения из массива

messages. При этом мы не пытаемся выяснить размер этого масси-

ва, а просто полагаемся на механизм обработки исключительных

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

стиле).

try {

for (int i = 0; i < 100; i++) {

System.out.println (messages[i]);

}

}

catch (ArrayOutOfBoundException e) {

System.out.println ("No more messages");

}

catch (Exception e) {

System.out.println ("Unexpected exception");

System.out.println (e.getMessage());

}

finally {

System.out.println ("Work done");

}

Искобчительные ситуации могут возбуждаться программно при помо-

щи инструкций вида

throw new MyException ("Something's wrong");

Спецификации языка Java подразделяют исключительные ситуации на

две категории. К первой категории (класс Error) относятся ситу-

ации, на которые программа не обязана реагировать (это заведомо

сделает Java-машина). Ко второй категории (класс Exception) от-

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

тельно. Если при выполнении метода может возникать исключитель-

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

помощью конструкции try/catch/finally, либо в его определении

должна фигурировать конструкция

throws Exception1, Exception2, ...

Пример.

class Foo extends Object {

. . .

public void readFromFile (String fn) throws InvalidFormatException {

FileInputStream fis;

try {

fis = new FileInputStream (fn);

// Читаем данные из файла.

. . .

// Если файл имеет неправильный формат,

// вожбуждаем исключительную ситуацию:

throw new InvalidFormatException ("Wrong format");

. . .

}

catch (FileNotFoundException e) {

// Предпринимаем соответствующие действия

}

finaly {

if (fis != null )

fis.close(); // всегда закрываем файл, если он был открыт

}

}

. . .

}

В этом примере в методе readFromFile могут возникнуть две искл-

чительные ситуации. Первая связана с тем, что нужный файл не-

доступен. Эта ситуация обработывается внутри метода

readFromFile. Вторая исключительная ситуация может вознкнуть,

если файл имеет неправильный формат. Эта ситуация передается

для обработки наверх.

4.1.6. Механизм потоков

Механизм потоков - обязательная черта современных операционных

сред. За счет потоков обеспечивается масштабируемость программ-

ных систем, оптимальное использование аппаратных ресурсов, вы-

сокая скорость отклика на запросы пользователей. Поэтому нет

ничего удивительного в том, что в языке Java механизм потоков

представлен с самого начала и в полном об®еме.

В языке Java потоки представлены посредством класса Thread, ин-

терфейса ъunnable, спецификатора метода synchronized и методов

класса Object wait и notify.

4.1.6.1. Класс Thread и интерфейс ъunnable

Поток (thread) представляет собой отдельный поток управления в

пределах процесса. Таким образом, у каждого потока есть начало,

последовательность действий, текущее состояние и конец.

Поток запускается с помощью вызова метода start() класса

Thread. Последовательность действий, выполняемых в рамках пото-

ка, задается в методе run(). Подчеркнем, что метод run() ис-

пользуется только для задания помледовательности действий; явно

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

Поток заканчивается либо при завершении выполнения метода

run(), либо с помощью явных вызовов методов класса Thread

stop() или destroy(). Возобновить работу завершенного потока

невозможно.

Для временной приостановки работы потока с последующим возоб-

новлением служат методы suspend(), sleep() и yeild().

Обычно поток, приостановленный с помощью метода suspend, возоб-

новляет работу посредством метода resume().

Вызов метода sleep() приводит к приостановке потока на заданное

число миллисекунд.

Вызов метода yeild() означает добровольную уступку процессора

другому потоку; первоначальный поток остается готовым к выпол-

нению.

Java-потоки обладают приоритетами. В спецификациях оговаривает-

ся, что Java-машина реализует вытесняющую многопотоковость. Это

означает, что поток с большим приоритетом может прервать выпол-

нение менее приоритетного потока. Однако, спецификации не тре-

буют наличия разделения времени. Это значит, что для передачи

управления потоку с тем же приоритетом, вообще говоря, требуют-

ся явные действия со стороны первоначального потока - вызов ме-

тодов suspend(), sleep() или yeild().

На рис. 10 представлена диаграмма состояний потоков.

Рис. 10. Диаграмма состояний потоков.

Следующий пример содержит фрагмент одного из многочисленных ва-

Читать дальше
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать


Владимир Цишевский читать все книги автора по порядку

Владимир Цишевский - все книги автора в одном месте читать по порядку полные версии на сайте онлайн библиотеки LibKing.




Java как центр архипелага отзывы


Отзывы читателей о книге Java как центр архипелага, автор: Владимир Цишевский. Читайте комментарии и мнения людей о произведении.


Понравилась книга? Поделитесь впечатлениями - оставьте Ваш отзыв или расскажите друзьям

Напишите свой комментарий
x