Обзор пакетов и важных классов Java SE Андрей Дмитриев andrei-dmitriev@yandex.ru 2009.

Презентация:



Advertisements
Похожие презентации
База данных (БД) – Совокупность определённым образом организованной информации на определённую тему (в рамках определённой предметной деятельности); Организованная.
Advertisements

Классы Math, system, Data на языке Java Назарова К
Презентация к уроку по информатике и икт (9 класс) на тему: Презентация на тему "Основы Visual Basic"
1. ЧТО ТАКОЕ ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ? НАБОР ПРОГРАММ В ПАМЯТИ КОМПЬЮТЕРА 2. ИЗ КАКИХ ЧАСТЕЙ СОСТОИТ ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ? КРОССОВЫЕ ТЕСТОВЫЕ СИСТЕМНЫЕ.
Типы данных Инна Исаева. Переменные Переменная - это как ящик, в котором можно хранить данные. Каждая переменная имеет своё имя, она служит для хранения.
Урок 3. Формы представления данных (таблицы, формы, запросы, отчеты)
Переменные, величины Переменные, величины Типы, имена переменных Типы, имена переменных Хранение величин Хранение величин Переменные, величины Переменные,
Самостоятельная работа тема – MICROSOFT EXCEL. План Что такое Microsoft Excel? Что такое Microsoft Excel? Запуск и завершение программы Запуск и завершение.
Работу выполнили ученицы 9 «Б» класса Гордеева Татьяна и Шебаршова Рита.
Базы данных База данных – это информационная модель, позволяющая в упорядоченном виде хранить данные о группе объектов, обладающих одинаковым набором.
Для вычислений в таблице с помощью встроенных функций Excel 2007 рекомендуется использовать мастер функций. Диалоговое окно мастера функций доступно при.
Освоение среды текстового процессора Word Форматирование текстового документа Форматирование текстового документа.
Тип, имя и значение переменной. VBasic 11 августа 2015 г.
Базы данных. База данных (БД) - это информационная модель, позволяющая в упорядоченном виде хранить данные о группе объектов, обладающих одинаковым набором.
ТЕКСТОВЫЙ РЕДАКТОР. Тест.. 1. Текстовый редактор - программа, предназначенная для А. создания, редактирования и форматирования текстовой информации; Б.
Работа с файлами Сазонов Д.О. ПМиЭММ Часть 2. Тема занятия: Работа с файлами через потоки Для реализации файлового ввода/вывода, необходимо включить в.
Тема 5. Основы современной технологии программирования Программирование в средах современных информационных систем. Интегрированные системы разработки.
©Павловская Т.А. (СПбГУ ИТМО) Курс «С#. Программирование на языке высокого уровня» Павловская Т.А.
Интерфейс текстового процессора Microsoft Word. С помощью ленты можно быстро находить необходимые команды (элементы управления: кнопки, раскрывающиеся.
САОД кафедра ОСУ 1 Основные абстрактные типы данных Схема процесса создания программ для решения прикладных задач ВУ.
Транксрипт:

Обзор пакетов и важных классов Java SE Андрей Дмитриев

Программа Состав платформы Java SE Часто используемые классы

Программный интерфейс Java SE

Состав пакетов и компонентов java.lang Содержит классы-оболочки, утилиты и другие важные классы; импортируется по умолчанию javax.swing Создание графического интерфейса Math Класс для работы с числами высокой точности, тригонометрическими функциями и т.д. Collections Реализации коллекций объектов java.util Вспомогательные классы Concurrency Поддержка многопоточности в языке Java java.net Сетевое взаимодействие и протоколы java.io Поддержка потокового ввода и вывода данных

Состав пакетов и компонентов (cont.) XMLРабота с XML файлами Security Поддержка безопасности JNIВзаимодействие с С/С++ кодом Serialization Сохранение состояния объекта в постоянное хранилище Logging Журналирование JARУпаковщик приложений Reflection Механизм доступа к любым объектам и классам в Java Reference Возможность дополнительного контроля над указателями

Состав пакетов и компонентов (cont.) JDBCДоступ к базам данных RMIРаспределенные приложения Scripting Взаимодействие с языками сценариев (JavaScript) Sound Звуковые эффекты InputMethod Поддержка вариантов клавиатурного ввода DnDПоддержка «перетаскивания» графических объектов (DragNDrop) Printing Принтерная печать Accessibility Для людей с ограниченными физ. возможностями

Обзор важных классов JDK Многопоточность Классы библиотеки JDK Изображения Графический дизайн Хранилища данных Коллекции Время Математические функции Файловая система Ввод/вывод Текст Рефлексия 2D-графика Сеть

Работа с текстом Stringjava.lang Хранит строки-константы неизменной длины и содержания. Это ускоряет обработку строк и позволяет экономить память, разделяя строку между объектами, использующими ее StringBufferjava.lang Длину строк, хранящихся в объектах класса StringBuffer, можно менять, вставляя и добавляя строки и символы, удаляя подстроки или соединяя несколько строк в одну StringBuilderjava.lang Обладает функциональностью класса StringBuffer, но не гарантирует синхронизацию потоков. В целом работает быстрее StringTokenizerjava.text Осуществляет синтаксический разбор строки

Класс java.lang.StringBuffer StringBuffer(String s) length() append(String s) charAt(int i), setCharAt(int i, char c) insert(*) reverse() substring(int start, int end) Рекомендовано использовать класс StringBuilder при работе со строкой на одном потоке исполнения

Работа с потоками ввода/вывода ObjectlnputStream ObjectOutputStream java.io Создают байтовые потоки из объектов Java StringReader StringWriter java.io Создают символьные потоки, связанные со строкой PipedlnputStream PipedOutputStream java.io Создают каналы обмена информацией между потоками BufferedReader BufferedWriter java.io Выполняют буферизованный ввод/вывод DatalnputStream DataOutputStream java.io Преобразуют поток байтов, образующих восемь простых типов Java, в эти самые типы PrintWriter PrintStream java.io Связаны с выводом на строчные устройства экран дисплея, принтер

Работа с файловой системой Filejava.io Cодержит около сорока методов, позволяющих узнать различные свойства файла или каталога FileInputStream FileOutputstream java.io Создают байтовые потоки для файлового ввода/вывода. Удобно для бинарных файлов, хранящих байт-коды, архивы, изображения, звук FileReader FileWriter java.io Организуют преобразование потока: со стороны программы потоки символьные, со стороны файла байтовые RandomAccessFilejava.io Полезен если нужно интенсивно работать с файлом, записывая в него данные разных типов Java, изменяя их, отыскивая и читая нужную информацию

Работа со временем Localejava.util Совокупность форматов даты и времени для данной местности (локаль) Datejava.util Содержит методы работы с датами и показаниями времени. Устаревший Calendarjava.utilВ нем собраны общие свойства календарей: юлианского, григорианского, лунного. Экземпляры создаются четырьмя статическими методами по заданной локали и/или часовому поясу DateFormatjava.text Предлагает четыре стиля представления даты и времени

Класс java.util.Timer Timer(String name, boolean isDaemon) Создает таймер, прикрепленный к потоку с заданным именем. Также указывается, является ли данный поток демоном schedule(TimerTask tt, Date when, long period), … Назначает задание на исполнение в указанное время cancel() Выключает таймер, отменяя все назначенные задания purge()Убирает все отмененные задания из очереди таймера

Использование отложенного задания (1/3) class RemindTask extends TimerTask { public void run ( ) { System.out.println ( "Time's up!" ) ; //остановить поток таймера timer.cancel ( ) ; } Создаем свой собственный таймер, наследующий от Timer.

Использование отложенного задания (2/3) public class Reminder { Timer timer; public Reminder ( int seconds ) { timer = new Timer ( ) ; timer.schedule (new RemindTask(), seconds*1000 ) ; } } Выводит предупреждение на консоль через указанное в конструкторе число миллисекунд:

Использование отложенного задания (3/3) public static void main (String a[]){ new Reminder(5); } Запускаем напоминалку на исполнение.

Класс java.util.Date Date(int year,int month,int date,int hrs,int min,int sec), … before(Date d) after(Date d) compareTo(Date d) Рекомендовано использовать класс Calendar

Сравнение дат //позволяет проводить преобразование из дат в строки и обратно SimpleDateFormat sdf = new SimpleDateFormat ( "MM/dd/yyyy" ) ; java.util.Date aDate = sdf.format ( sdf.parse ( "07/08/2007" )) ; //new Date() – текущая дата if (!aDate.after(sdf.format(new Date()))){ return false; } Используем класс SimpleDateFormat, расширяющий DateFormat для сравнения 2 дат

Класс java.util.Calendar set(int y, int m, int d, int h, int m, int s) add(int field, int amount) roll(int field, int amount) before(Object date) after(Object date) getTime() getTimeZone() getInstance(TimeZone tz, Locale locale) setFirstDayOfWeek(int day) getFirstDayOfWeek()

Использование календаря Calendar calendar = GregorianCalendar.getInstance(); System.out.println(calendar.getTime()); //вычисление даты, наступающей через 10 дней System.out.println(Plus 10 days is + calendar.add(Calendar.Date,10));

Использование календаря (cont.) // создание объекта Calendar cal = Calendar.getInstance(); // текущий день в году int today = cal.get ( Calendar.DAY_OF_YEAR); // смена даты на вчерашний день cal.add ( Calendar.DAY_OF_YEAR, -1 ) ; // вычисление номера вчерашнего дня int yesterday = cal.get ( Calendar.DAY_OF_YEAR ) ; // перевод времени на неделю назад cal.add ( Calendar.DAY_OF_YEAR, -6 ) ; //номер текущего дня в году int dayNumber = cal.get (Calendar.DAY_OF_YEAR); //максимальное количество дней в месяце cal.getActualMaximum(Calendar.DAY_OF_MONTH) ) ;

Коллекции Интерфейс List java.util Описывает методы работы с упорядоченными коллекциями. Элементы такой коллекции пронумерованы, начиная от нуля, к ним можно обратиться по индексу Интерфейс Set java.util Описывает неупорядоченную коллекцию, не содержащую повторяющихся элементов (множество) Интерфейс Map java.util Описывает коллекцию, состоящую из пар "ключ значение" Интерфейс Comparator java.util Описывает два метода сравнения: int compare (Object obji, object obj2 ) boolean equals (Object obj) Интерфейс Iterator java.util Указатель на элемент коллекции. Collectionsjava.util Помогает в обработке коллекций. Часто это сортировка элементов и поиск нужного элемента

Многопоточность Интерфейс Runnabie java.lang Описывает только один метод run(). Новый поток будет выполнять то, что записано в этом методе Threadjava.lang Позволяет создавать потоки и управлять ими. После создания объекта этого класса одним из его конструкторов новый поток запускается методом start () Executors Queues Timings Synchronizers Collections java.util. concurrent Пакет вспомогательных классов, предназначенных для использования в многопоточном программировании

Рефлексия Интерфейс Type java.lang.reflect Представляет информацию о типе в языке Java Интерфейс ParameterizedT ype java.lang.reflect Представляет информацию о параметризованном типе в языке Java Fieldjava.lang.reflect Класс для доступа к полю класса или объекта Methodjava.lang.reflect Класс для доступа к методу класса или объекта Modifierjava.lang.reflect Представляет информацию о модификаторах в языке Java

Работа с изображениями Imagejava.awt Представляет собой изображение в Java - прямоугольный массив пикселов MediaTrackerjava.awt Предоставляет асинхронный интерфейс для загрузки графических файлов. Может следить за загрузкой нескольких зарегистрированных в нем изображений ImageProducer, ImageConsumer java.awt. image Модель обработки «поставщик- потребитель» ImageFilterjava.awt. image Для преобразования изображений данный класс следует расширить, переопределив метод setPixels() BufferedImagejava.awt. image Вместо класса Image в Java 2D употребляется его расширение класс BufferedImage

Преобразование изображений AffineTransform Op java.awt.image Выполняет аффинное преобразование изображения: сдвиг, поворот, отражение, сжатие или растяжение по осям RescaleOpjava.awt.image Изменяет интенсивность изображения LookupOpjava.awt.image Изменяет отдельные составляющие цвета изображения BandCombineOpjava.awt.image Меняет составляющие цвета в Raster СolorConvertOpjava.awt.image Изменяет цветовую модель изображения ConvolveOpjava.awt.image Выполняет свертку, позволяющую изменить контраст и/или яркость изображения, создать эффект "размытости" и другие эффекты

Работа с 2D графикой Graphics/ Graphics2D java.awt Управляет графическим контекстом компонента. В контексте размещается область рисования и вывода текста и изображений Colorjava.awt Основу класса составляют семь конструкторов цвета. Позволяют создать цвет в RGB, HSB и других цветовых моделях Polygonjava.awt Предназначен для работы с многоугольниками Fontjava.awt Хранит начертания (glyphs) символов, образующие шрифт BasicStrokejava.awt Конструкторы класса BasicStroke определяют характеристики пера TextAttributejava.awt.font Атрибуты шрифта задаются как статические константы класса

Графический интерфейс приложения: окна и контейнеры JFramejavax.swing Главное окно JOptionPanejavax.swing Стандартный диалог JDialogjavax.swing Диалоговое окно JPaneljavax.swing Панель JTabbedPaneljavax.swing Панель со вкладками JToolBarjavax.swing Панель инструментов

Графический интерфейс приложения: элементы управления JLabeljavax.swing Надпись JButtonjavax.swing Кнопка JRadioButton, JCheckBox javax.swing Кнопки выбора JTextFieldjavax.swing Текстовое поле JTablejavax.swing Таблица JTreejavax.swing Дерево JListjavax.swing Список JComboBoxjavax.swing Выпадающий список

Работа с математатическим пакетом Randomjava.util Создает генератор псевдослучайных чисел Mathjava.lang Вспомогательный класс, включающий в себя методы для выполнения математических, тригонометрических и др. операций BigDecimaljava.math Класс для работы с длинными числами с плавающей точкой BigIntegerjava.math Класс для работы с длинными целыми числами MathContextjava.math Класс для настройки параметров вычислений (округление, число знаков и др.)

Некоторые методы класса java.lang.Math abs(int i), … sin(double d) cos(double d) log(double d),… max(int i1, int i2) min(int i1, int i2) random() round(double d) …

Работа с сетью URLjava.net Класс для работы с URL (Uniform Resource Locator) InetAddressjava.net Объединяет IP-адрес и доменное имя в один класс URLConnectio n (подкласс - HttpURLConnection) java.net Позволяет создать соединение с хостом (получить и передать информацию, узнать ее тип и т.п.) Socketjava.net Позволяет соединить клиент и сервер, работающих по одному протоколу com.sun.net.ht tpserver Предоставляет API для создания HTTP сервера

Работа с хранилищами данных: SQL Интерфейс Connection java.sql Связь (сессия) с определенной базой данных Интерфейс ResultSet java.sql Набор значений представляющий собой результат запроса к базе данных Интерфейс Statement java.sql Объект, используемый для выполнения SQL запроса и получения результата DriverManagerjava.sql Основной сервис для управления драйверами JDBC SQLPermissionjava.sql Класс-разрешение на выполнение определенных действий Typesjava.sql Класс для связывания основных типов данных SQL с типами данных в Java

Работа с источниками/хранилищами данных: XML Marshallerjavax.xml.bind Отвечает за сериализацию дерева объектов Java в XML формат Unmarshallerjavax.xml.bind Управляет десериализацией XML документа в дерево объектов Java (можно добавить валидацию) DatatypeConverterjavax.xml.bind Связывание типов данных в XML схеме и типов Java JAXBContextjavax.xml.bind Через него проводятся все обращения к программному интерфейсу JAXB XMLEventFactoryjavax.xml.streamС его помощью создаются сущности событий XML XMLInputFactory, XMLOutputFactory javax.xml.stream Абстрактные классы; используются при создании XML потоков

Класс java.lang.Object public String toString() Строковое представление объекта public boolean equals(Object o) Метод сравнения объектов public int hashCode() Метод, возвращающий уникальное для каждого объекта числовое значение public final void wait() throws InterruptedException Метод, блокирующий поток до наступления некоторых событий public final void wait(long timeout) throws InterruptedException Метод, блокирующий поток до наступления некоторых событий или до истечения заданного интервала времени public final void notify() Метод, снимающий блокировку с ожидающего потока public final void notifyAll() Метод, снимающий блокировку со всех ожидающих данного ресурса потоков public final Class getClass() Возвращает текущий класс данного объекта

Классы-оболочки Wrappers – это классы, находящиеся в пакете java.lang, включающие в себя соответствующее поле примитивного типа Каждый из следующих классов предоставляет интерфейс к значению определенного типа: Класс Тип Integerint Longlong Floatfloat Doubledouble Booleanboolean Characterchar Shortshort Bytebyte

API классов-оболочек на примере (java.lang.Integer) MAX_VALUE, MIN_VALUE Максимально и минимальное допустимые значения public static Integer valueOf(int i) Метод-фабрика для создания класса из примитивного значения public static int parseInt(String s) Метод для преобразования строки в примитивный тип public static Integer valueOf(String s) throws NumberFormatException Метод-фабрика для создания класса из строки public int intValue() Возврат примитивного значения данного класса

API классов-оболочек на примере (java.lang.Integer) (cont.) public static Integer getInteger(String propertyName) Считывание системного свойства, задаваемого строкой и преобразование в целое число public static int signum(int i) Знак переданного числа public long longValue() Возврат примитивного значения данного класса в виде long public static String toBinaryString(int i) Создание битового представления (в виде строки) переданного числа public static String toHexString(int i) Создание шестнадцатиричного представления (в виде строки) переданного числа

Константы классов Float и Double MAX_VALUE, MIN_VALUE Максимально и минимальное допустимые значения NEGATIVE_INFINITY Отрицательная бесконечность NAN Не является числом

Класс java.lang.Boolean TRUE, FALSE Константы истина и ложь getBoolean(String prop) Возвращает истину лишь в том случае если переданный аргумент является системным свойством и равен «true» booleanValue() Возвращает значение объекта Boolean в виде примитивного типа parseBoolean(String s) Пытается привести переданную строку к логическому типу данных valueOf(String s) Возвращает сущность класса Boolean, значение которого соответствует переданной строке valueOf(boolean b) Возвращает сущность класса Boolean, значение которого соответствует переданному значению логической переменной

Класс java.lang.Character MIN_VALUE, MAX_VALUE Границы области значений типа isDefined( char ch ) Проверяет, определен ли данный символ в кодировке Unicode digit(char c, int radix) Возвращает численное значение символа в указанной кодировке getType(char c) Возвращает значение, характеризующее группу, к которой принадлежит данный символ isLetter(char c) Проверяет, является ли символ буквой valueOf(char c) Возвращает сущность класса Character, значение которого соответствует переданному символу isUpperCase(char c) Определяет, является ли символ заглавным

Класс java.lang.System System.setOut, System.setIn, System.setErr Перенаправление потоков вывода, ввода, и вывода ошибок arraycopy(Object, int, Object, int, int) Копирование массива currentTimeMillis() Текущее время в миллисекундах static String getProperty(String name) Возвращает системное свойство по его имени setProperty(*) Устанавливает системное свойство getSecurityManger() Возвращает менеджер безопасности, если установлен setSecurityManger(*) Устанавливает менеджер безопасности static string getEnv(String name) Возвращает свойство окружения по его имени gc() Запрашивает сборку мусора loadLibrary() Загружает системную библиотеку

Класс java.lang.Runtime getRuntime() Возвращает текущий класс среды исполнения exit(int code) Выход виртуальной машины load(String libFileName) Загружает системную библиотеку по имени файла loadLibrary(String lib) Загружает системную библиотеку по имени библиотеки addShutdownHook(), removeShutdownHook() Установка действий по завершению работы JVM, снятие действий по завершению работы JVM exec(String command) Выполнение системной команды runFinalization() Запрос на финализацию всех доступных объектов freeMemory(), maxMemory() Количество свободной памяти внутри JVM, количество максимально доступной для JVM availableProcessors() Количество процессоров

Системные свойства Методы, предназначенные для работы с системными свойствами: getProperty(String name) getProperties() Примеры системных свойств: java.class.path java.runtime.name user.dir java.version sun.boot.class.path и др.

Переменные окружения Метод, предназначенный для чтения переменных окружения: static String getenv(String name) Примеры переменных окружения : HOMEDRIVE=C: PROCESSOR_REVISION=0801 USERDOMAIN=CMSDOMAIN PATH=C:\DOCUME… и др.

Правда ли что… Классы-оболочки нужны для того, чтобы соответствующие примитивные типы можно было бы трактовать как объекты? Класс System предоставляет возможность отследить расход системной памяти? Средствами Java можно перенаправлять консольный вывод? В качестве монитора можно использовать любой экземпляр класса Object?

Ссылки Раздел Java SE: Обзор состава платформы Java SE: ndex.html Java Tutorial: Java API: Форум:

Q&A

Обзор пакетов и важных классов Java SE Спасибо! Андрей Дмитриев