Конспект лекций по курсу Выбранные вопросы информатики (часть 1) для специальности

Вид материалаКонспект

Содержание


Classpath –
Class path –
Адаптеры событий
Подобный материал:
1   ...   4   5   6   7   8   9   10   11   12

! ! – Сокращенная команда, которая заменяется текстом последней введенной команды. За ней может следовать дополнительный текст, добавляемый к предшествовавшей команде.

catch [ класс_исключения] – Прерывает выполнение программы, если сгенерировано указанное исключение. Когда исключение не указано, выводится текущий список перехваченных исключений. Для отмены прерывания используйте команду ignore.

classes – Выводит список всех загруженных классов.

clear [ класс : строка ] – Удаляет точку останова, установленную в указанной строке данного класса. Команды clear и stop без аргументов выводят список текущих точек останова вместе с номерами строк, в которых они заданы.

cont – Возобновляет выполнение программы и используется при остановке текущего потока выполнения в точке останова.

down [ п ] – Перемещается на n кадров вниз в стеке вызовов текущего потока. Если n не указано, перемещается вниз на один кадр.

dump id(s) – Выводит значения всех переменных указанного объекта (объектов). Если задано имя класса, команда dump отображает все (статические) методы и переменные класса, а также имя суперкласса и список реализуемых интерфейсов. Объекты и классы можно задать по имени или по их восьмизначному шестнадцатеричному ID-номеру, а потоки — по сокращенному имени t@номер_потока.

exit (или quit) – Выход из jdb.

gc – Запускает сборщик мусора для удаления неиспользуемых объектов.

help (или ?) – Выводит список всех директив jdb.

ignore класс_исключения – Генерирование указанного исключения не приводит к прерыванию выполнения программы. Эта команда отключает команду catch.

list [ номер _строки ] – Выводит указанную строку исходного текста и несколько строк, стоящих перед ней и позади нее. Если номер строки не указан, использует номер строки текущего кадра стека для текущего потока. При этом выводятся строки из файла с исходным текстом для текущего кадра стека текущего потока. Команда use сообщает jdb, где искать файл с исходным текстом.

load имя_класса – Загружает указанный класс в jdb.

locals – Выводит список локальных переменных для текущего кадра стека. Код на Java должен компилироваться с параметром -д, чтобы включать информацию о локальных переменных.

memory – Выводит суммарный объем памяти, которую занимает отлаживаемая программа.

methods класс – Выводит список всех методов указанного класса. Для получения списка переменных экземпляра, объекта или класса (статического) используется команда dump.

print id(s) – Выводит значение указанного аргумента или аргументов. Каждый аргумент может представлять собой класс, объект, переменную или локальную переменную и может быть задан посредством их имени или шестнадцатеричного ГО-номера. Кроме того, существует возможность ссылаться на потоки при помощи специального синтаксиса t@номер_потока. Команда print отображает значение объекта, вызывая его метод toString ().

resume [ поток(и)] – Возобновляет выполнение указанного потока (потоков). Если поток не указан, возобновляется выполнение всех прерванных потоков (см. также suspend).

run [ класс ] [ аргументы ] – Выполняет метод main () данного класса, передавая ему указанные аргументы. Если класс или аргументы не заданы, используются класс и аргументы из командной строки jdb.

step – Выполняет текущую строку текущего потока и снова останавливает выполнение.

stop [at класс : строка] – stop [in класс : метод] – Устанавливают точку останова в указанной строке класса или в начале указанного метода класса. Выполнение программы останавливается при достижении этой строки или при вызове данного метода. Если команда stop выполняется без аргументов, то выводится текущий список точек останова.

suspend [ поток(и)] – Приостанавливает указанный поток или потоки. Если поток не указан, останавливает все выполняющиеся потоки. Для их повторного запуска используется команда resume.

thread поток – Устанавливает указанный поток выполнения в качестве текущего. Этот поток неявно используется несколькими другими командами./'/”. Поток может быть задан по имени или номеру.

threadgroup имя – Устанавливает указанную группу потоков в качестве текущей.

threadgroups – Выводит список всех групп потоков в отлаживаемой сеансе работы интерпретатора Java.

threads [ группа _потоков ] – Выводит список всех потоков указанной группы. Если группа не задана, выводятся потоки текущей группы (заданной с помощью параметра группа_потоков).

up [ п] – Перемещается на п кадров вверх по стеку вызовов текущего потока. Если п не указано, перемещается вверх только на один кадр.

use [ путь_к_исходному_файлу ] – Задает путь, используемый jdb для поиска файлов с исходными текстами отлаживаемых классов. Если имя не указано, отображает текущее значение.

where[ поток ][ all ] – Отображает стек вызовов указанного потока. Если поток не указан, отображает стек вызовов текущего потока. Когда указана опция all, отображаются стеки вызовов всех потоков.

Переменные среды

CLASSPATH – Указывает упорядоченный список (с двоеточиями в качестве разделительных знаков в UNIX, с точками с запятой — в Windows) каталогов и ZIP-файлов, в которых jdb должна искать определения классов. Если путь задан с помощью этой переменной, то jdb всегда неявно присоединяет местоположение системных классов к его концу. Когда данная переменная не задана, путь по умолчанию указывает на текущий каталог и на каталог системных классов. Эта переменная переопределяется параметром -classpath.

Смотри также – java

native2ascii –

программа преобразования исходных текстов Java в ASCII-текст

Доступность

JDK версии 1.1 и более поздних версий.

Синтаксис вызова

native2ascii [ параметры ] [ входной файл [ выходной файл ]]

Описание

Программа javac может обрабатывать только файлы, в которых используется кодировка символов ASCII и кодировка Unicode \uxxxx. Программа native2ascii осуществляет чтение файла с исходным текстом на Java, закодированным с использованием местной кодировки символов, и преобразование этого текста в кодировку ASCII плюс кодировку Unicode, необходимую для javac.

Параметры входной_файл и выходной_файл являются необязательными. Если они не заданы, используются стандартные устройства ввода-вывода, что позволяет применять native2ascii для работы с каналами (pipes).

Параметры

-encoding имя_кодировки – Задает кодировку, которая используется в исходном файле. Если параметр не задан, имя соответствующей кодировки извлекается из системного свойства file.encoding.

-reverse – Указывает на то, что должно осуществляться обратное преобразование — символов, закодированных в виде \ихххх, в символы в местной кодировке.

Смотри также

j ava.io.InputStreamReader, java.io.OutputStreamWriter

serialver — генератор номера версии класса

Доступность

JDK версии 1.1 и более поздних версий.

Синтаксис вызова

serialver [-show] имя класса...

Описание

Программа serialver выводит номер версии или уникальный идентификатор для сериализации указанного класса или классов. Если в классе объявлена константа serialVersionUID типа long, то выводится ее значение, в противном случае уникальный номер версии для API, определяемого в классе, вычисляется с помощью безопасного алгоритма шифрования SHA (Secure Hash Algorithm). Эта программа применяется, в первую очередь, для вычисления исходного уникального номера версии класса, который затем присваивается объявляемой в данном классе константе. Результатом работы программы serialver является строка правильного текста на Java, которую можно затем вставить в определение класса.

Параметры

-show – Если параметр задан, serialver выводит простой графический интерфейс, который позволяет пользователю вводить каждый раз по одному имени класса и получать для него уникальный идентификатор для сериализации. При задании параметра -show имя класса в командной строке можно не указывать.

Переменные среды

CLASS PATH – Программа serialver написана на Java, и поэтому она чувствительна к значению переменной среды class path точно так же, как и интерпретатор Java. Поиск указанных классов проводится относительно заданного пути для классов.

Смотри также

java.io.ObjectStreamClass


Приложение 2

Новое в Java 1.1

Скоро надо будет готовить приложение по Java 1.2 (срок выхода – декабрь 1998 года). А пока новшествами Java 1.1 являются :

Встроенные классы

Изменения, внесенные в сам язык и позволяющие включать классы друг в друга и в блоки программы.

Java Bean-объект

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

Многоязыковая поддержка

Множество новых особенностей, позволяющих писать программы, которые работают в любой точке земного шара.

Новая модель обработки событий

Новая модель обработки событий в графических пользовательских интерфейсах, предназначенная для того, чтобы облегчить построение таких интерфейсов.

Другие новые особенности A WT

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

Апплеты

Применение JAR-файлов позволяет сгруппировать все файлы апплета в единый архив. Цифровые подписи открывают возможность запуска апплетов, пользующихся полным доверием пользователя, в условиях минимальных ограничений, связанных с безопасностью.

Сериализация объектов

Теперь объекты можно легко сериализовать для передачи по сети или записи на диск для постоянного хранения.

Отражение

Программы на Java могут теперь отражаться (reflection) на самих себя или на другой класс с целью определения методов и переменных, заданных в этом классе, аргументов, передаваемых методам, и т.д. Reflection API позволяет также вызывать методы по имени.

Безопасность

В Java 1.1 включены новые пакеты, которые обеспечивают поддержку цифровых подписей, обработку сообщений, обработку ключей и списков управления доступом.

Java Database Connectivity (JDBC)

Новый пакет, позволяющий Java-программам посылать SQL-запросы серверам баз данных. В его состав входит "мост", который обеспечивает взаимодействие с существующими серверами баз данных ODBC.

Удаленный вызов методов

Интерфейс для поддержки распределенных приложений на Java, в которых программа, работающая на одном компьютере, может вызывать методы Java-объектов, хранящихся на другом компьютере.

Java 1.1 : пакет за пакетом

Пакеты и классы в библиотеке классов Java взаимосвязаны и взаимозависимы. Многие из новых особенностей Java 1.1 базируются на классах, принадлежащих к нескольким различным пакетам Java API. Ниже описывается каждый из 23 пакетов, образующих ядро Java 1.1 API. Здесь представлены новые пакеты, а также рассмотрены изменения, внесенные в имеющиеся пакеты.

Java.applet

Кроме возможности создавать JAR-файлы и апплеты с цифровой подписью и вводить новые атрибуты в тег , codebase=. в пакет java.applet никаких других существенных изменений внесено не было.

java.awt

В пакете java.awt содержатся новые классы и интерфейсы, предназначенные для поддержки вывода на печать, контекстных меню и клавиш ускоренного вызова меню, а также для обеспечения улучшенной поддержки размещения элементов пользовательского интерфейса на экране, работы с курсорами, полосами прокрутки, цветами и отсечением изображений. В нескольких классах реализована поддержка новой модели обработки событий пакета AWT, хотя большая часть работы с событиями сконцентрирована в одном из нескольких новых пакетов, входящих в пакет java.awt.

java.awt.datatransfer

Классы и интерфейсы данного пакета образуют фундамент для обмена информацией между приложениями (а также внутри приложения). В этом пакете также содержатся классы, поддерживающие модель передачи информации путем операций копирования и вставки через буфер обмена (clipboard). Можно предполагать, что в будущем пакет будет расширен таким образом, чтобы обеспечить поддержку механизма обмена информацией посредством технологии drag-and-drop. Один из основополагающих механизмов обмена информацией, поддерживаемых данным пакетом, базируется на использовании API сериализации объектов (Object Serialization API) пакета java.io.

java.awt.event

В данном пакете определены классы и интерфейсы новой модели обработки событий пакета AWT. Классы и интерфейсы этого пакета можно разделить на три категории:
  • Классы событий — классы, которые действительно описывают события.
  • Слушатели событий (listeners) — интерфейсы, определяющие методы, которые должны быть реализованы объектами, заинтересованными в получении уведомлений о событиях определенного типа.
  • Адаптеры событий (adaptors) — тривиальные безоператорные реализации интерфейсов слушателей событий, которые хорошо приспособлены для создания подклассов.

Все события и слушатели событий, определенные в этом пакете, представляют собой расширения класса EventObject или интерфейса Event-Listener, определенные в пакете java.util.

j ava.awt.image

В этом пакете содержатся два новых класса фильтров изображений, в которых используется улучшенное масштабирование изображений. Также внесены изменения в классы MemoryImageSource и PixelGrabber.

java.awt.peer

Изменения, внесенные в этот пакет, в основном отражают изменения в java.awt. Например, к ним относятся новые интерфейсы, которые описывают зависящие от платформы контекстные меню и полосы прокрутки.

j ava.beans

В этом пакете содержится широко разрекламированный JavaBeans API, предназначенный для создания и использования встраиваемых программных компонентов многократного использования. Классы и интерфейсы данного пакета можно применять на трех различных уровнях:
  • Для создания средств построения приложений, которые программист (и даже не программист) может использовать при создании приложений из отдельных Bean-объектов.
  • Для разработки Bean-объектов, которые можно применять в упомянутых выше средствах построения приложений.
  • Для разработки приложений (без использования упомянутых выше средств построения), в которых применяются Bean-объекты.

Большинство классов и интерфейсов данного пакета предназначено для разработчиков приложений или более сложных Bean-объектов. Программистам, которые только используют Bean-объекты или разрабатывают простые Bean-объекты, не обязательно изучать большинство особенностей данного пакета. Работа средств построения приложений, применяющих Bean-объекты, базируется на Reflection API, определенном в пакете java.lang.reflect, а во многих Bean-объектах используются преимущества API сериализации объектов (Object Serialization API), определенного в пакете java.io. В JavaBeans API применяется та же модель обработки событий, что и в Java 1.1 AWT, и классы и интерфейсы данного пакета, обеспечивающие обработку событий, являются расширениями соответствующего класса и интерфейса, определенных в пакете java.util.

java.io

Пакет java.io — самый большой пакет ядра Java на сегодняшний день. Это случилось потому, что в Java 1.1 добавлены следующие компоненты:
  • Полный набор новых классов потока символов в дополнение к большинству существующих классов ввода-вывода через поток байтов. Эти новые потоки чтения-записи обеспечивают высокую эффективность и многоязыковую поддержку ввода-вывода текстовой информации.
  • Новые классы и интерфейсы для поддержки сериализации объектов.
  • Ряд новых типов семейства IOException.

java.lang

В этом пакете содержится ряд новых семейств типа Exception и Error, а также новые классы Byte, short и Void, с добавлением которых всем простым типам данных Java (включая тип void) соответствуют определенные типы объектов. Это обстоятельство играет большую роль для пакета j ava. lang. reflect, где определяется новый Reflection API. К тому же, существенные изменения, направленные на поддержку работы Reflection API, внесены и в класс Class. В классах Class HClassLoader содержатся методы, обеспечивающие нахождение ресурсов, связанных с данным классом, таких как изображения, аудиофайлы, файлы свойств и т.д. Ресурсы играют важную роль в обеспечении многоязыковой поддержки в Java 1.1.

java.lang.reflect

Этот новый пакет позволяет программе на Java проверять структуру классов Java и отражать ее на собственную структуру. В java.lang.reflect содержатся классы, которые описывают переменные, методы и конструкторы классов и позволяют программе получить исчерпывающую информацию о любом объекте, массиве, методе, конструкторе или переменной. Пакет java.Beans в огромной степени базируется именно на этом пакете.

Java.math

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

java.net

Изменения, внесенные в пакет java.net, реализованы на достаточно низком уровне. К ним относятся: широковещательные сокеты, опции для сокетов в стиле UNIX, а также исключения новых типов, которые обеспечивают большую глубину детализации при обработке сетевых исключений.

java.rmi – В этом пакете определены основополагающие классы и интерфейсы, которые используются для удаленного вызова методов. Большинство классов данного пакета представляют собой типы исключений. Подпакеты пакета java.rmi обеспечивают дополнительные, более специфичные функции. В тех случаях, когда удаленным методам в качестве аргументов необходимо передавать объекты, удаленный вызов метода базируется на сериализации объектов, обеспечиваемой пакетом java.io.

java.rmi.dgc

В этом небольшом пакете определены классы и интерфейсы, которые необходимы для реализации распределенного сбора мусора (DGC — Distributed Garbage Collection).

java.rmi.registry

Это другой небольшой пакет, в котором определены классы и интерфейсы, необходимые для предоставления клиенту Java возможности осуществлять поиск удаленных объектов по имени или возможности объявления сервером Java услуг, которые он может предоставить пользователю.

java.rmi.server

Этот пакет является самым большим среди пакетов удаленного вызова методов и представляет собой сердцевину RMI. В нем определены классы и интерфейсы, позволяющие Java-программе создавать объекты, которые могут использоваться удаленно другими Java-программами.

java.security

В этом пакете содержатся классы и интерфейсы, являющиеся фундаментальными абстракциями элементов криптографии: открытых и закрытых ключей, сертификатов, подтверждений о приеме сообщений и цифровых подписей. В данном пакете отсутствуют реализации таких абстракций. По своему замыслу Java Security API является независящим от реализации. В Java 1.1 отсутствуют реализации по умолчанию, но наряду с этим пакетом можно использовать реализации, осуществляемые продавцом конкретного программного продукта. Базовая реализация механизма безопасности основывается на использовании класса Biglnteger, который определен в пакете java .math.

java.security.acl

В этом пакете определены интерфейсы высокого уровня и некоторые исключения, предназначенные для работы со списками управления доступом (ACL — access control list).

java.security.interfaces

В этом пакете определено несколько интерфейсов, которые необходимы для работы схемы безопасности Java Security API, независящей от реализации.

java.sql – В этом пакете содержится Java Database Connectivity (JDBC) API. Находящиеся здесь классы и интерфейсы позволяют программам на Java посылать SQL-запросы базам данных и получать на них ответы.

java.text

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

java.util

Как следует из названия данного пакета, в java.util содержатся вспомогательные классы. В этот пакет в Java 1.1 добавлены новые классы для поддержки моделей обработки событий пакетов AWT и Java Beans, для определения местности (locale) и групп ресурсов (resource bundles), используемых для обеспечения многоязыковой поддержки, а также классы для работы с датой, временем и временными поясами.

java.util.zip

В этом пакете реализованы классы для расчета контрольных сумм потоков данных, а также для сжатия и архивирования потоков данных с использованием библиотеки сжатия ZLIB и форматов файлов ZIP и GZIP.