Скачать презентацию
Идет загрузка презентации. Пожалуйста, подождите
Презентация была опубликована 8 лет назад пользователемЛариса Скрипицина
1 Обзор пакетов и важных классов Java SE Андрей Дмитриев
2 Программа Состав платформы Java SE Часто используемые классы
3 Программный интерфейс Java SE
4 Состав пакетов и компонентов java.lang Содержит классы-оболочки, утилиты и другие важные классы; импортируется по умолчанию javax.swing Создание графического интерфейса Math Класс для работы с числами высокой точности, тригонометрическими функциями и т.д. Collections Реализации коллекций объектов java.util Вспомогательные классы Concurrency Поддержка многопоточности в языке Java java.net Сетевое взаимодействие и протоколы java.io Поддержка потокового ввода и вывода данных
5 Состав пакетов и компонентов (cont.) XMLРабота с XML файлами Security Поддержка безопасности JNIВзаимодействие с С/С++ кодом Serialization Сохранение состояния объекта в постоянное хранилище Logging Журналирование JARУпаковщик приложений Reflection Механизм доступа к любым объектам и классам в Java Reference Возможность дополнительного контроля над указателями
6 Состав пакетов и компонентов (cont.) JDBCДоступ к базам данных RMIРаспределенные приложения Scripting Взаимодействие с языками сценариев (JavaScript) Sound Звуковые эффекты InputMethod Поддержка вариантов клавиатурного ввода DnDПоддержка «перетаскивания» графических объектов (DragNDrop) Printing Принтерная печать Accessibility Для людей с ограниченными физ. возможностями
7 Обзор важных классов JDK Многопоточность Классы библиотеки JDK Изображения Графический дизайн Хранилища данных Коллекции Время Математические функции Файловая система Ввод/вывод Текст Рефлексия 2D-графика Сеть
8 Работа с текстом Stringjava.lang Хранит строки-константы неизменной длины и содержания. Это ускоряет обработку строк и позволяет экономить память, разделяя строку между объектами, использующими ее StringBufferjava.lang Длину строк, хранящихся в объектах класса StringBuffer, можно менять, вставляя и добавляя строки и символы, удаляя подстроки или соединяя несколько строк в одну StringBuilderjava.lang Обладает функциональностью класса StringBuffer, но не гарантирует синхронизацию потоков. В целом работает быстрее StringTokenizerjava.text Осуществляет синтаксический разбор строки
9 Класс 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 при работе со строкой на одном потоке исполнения
10 Работа с потоками ввода/вывода 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 Связаны с выводом на строчные устройства экран дисплея, принтер
11 Работа с файловой системой Filejava.io Cодержит около сорока методов, позволяющих узнать различные свойства файла или каталога FileInputStream FileOutputstream java.io Создают байтовые потоки для файлового ввода/вывода. Удобно для бинарных файлов, хранящих байт-коды, архивы, изображения, звук FileReader FileWriter java.io Организуют преобразование потока: со стороны программы потоки символьные, со стороны файла байтовые RandomAccessFilejava.io Полезен если нужно интенсивно работать с файлом, записывая в него данные разных типов Java, изменяя их, отыскивая и читая нужную информацию
12 Работа со временем Localejava.util Совокупность форматов даты и времени для данной местности (локаль) Datejava.util Содержит методы работы с датами и показаниями времени. Устаревший Calendarjava.utilВ нем собраны общие свойства календарей: юлианского, григорианского, лунного. Экземпляры создаются четырьмя статическими методами по заданной локали и/или часовому поясу DateFormatjava.text Предлагает четыре стиля представления даты и времени
13 Класс java.util.Timer Timer(String name, boolean isDaemon) Создает таймер, прикрепленный к потоку с заданным именем. Также указывается, является ли данный поток демоном schedule(TimerTask tt, Date when, long period), … Назначает задание на исполнение в указанное время cancel() Выключает таймер, отменяя все назначенные задания purge()Убирает все отмененные задания из очереди таймера
14 Использование отложенного задания (1/3) class RemindTask extends TimerTask { public void run ( ) { System.out.println ( "Time's up!" ) ; //остановить поток таймера timer.cancel ( ) ; } Создаем свой собственный таймер, наследующий от Timer.
15 Использование отложенного задания (2/3) public class Reminder { Timer timer; public Reminder ( int seconds ) { timer = new Timer ( ) ; timer.schedule (new RemindTask(), seconds*1000 ) ; } } Выводит предупреждение на консоль через указанное в конструкторе число миллисекунд:
16 Использование отложенного задания (3/3) public static void main (String a[]){ new Reminder(5); } Запускаем напоминалку на исполнение.
17 Класс 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
18 Сравнение дат //позволяет проводить преобразование из дат в строки и обратно 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 дат
19 Класс 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()
20 Использование календаря Calendar calendar = GregorianCalendar.getInstance(); System.out.println(calendar.getTime()); //вычисление даты, наступающей через 10 дней System.out.println(Plus 10 days is + calendar.add(Calendar.Date,10));
21 Использование календаря (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) ) ;
22 Коллекции Интерфейс 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 Помогает в обработке коллекций. Часто это сортировка элементов и поиск нужного элемента
23 Многопоточность Интерфейс Runnabie java.lang Описывает только один метод run(). Новый поток будет выполнять то, что записано в этом методе Threadjava.lang Позволяет создавать потоки и управлять ими. После создания объекта этого класса одним из его конструкторов новый поток запускается методом start () Executors Queues Timings Synchronizers Collections java.util. concurrent Пакет вспомогательных классов, предназначенных для использования в многопоточном программировании
24 Рефлексия Интерфейс Type java.lang.reflect Представляет информацию о типе в языке Java Интерфейс ParameterizedT ype java.lang.reflect Представляет информацию о параметризованном типе в языке Java Fieldjava.lang.reflect Класс для доступа к полю класса или объекта Methodjava.lang.reflect Класс для доступа к методу класса или объекта Modifierjava.lang.reflect Представляет информацию о модификаторах в языке Java
25 Работа с изображениями Imagejava.awt Представляет собой изображение в Java - прямоугольный массив пикселов MediaTrackerjava.awt Предоставляет асинхронный интерфейс для загрузки графических файлов. Может следить за загрузкой нескольких зарегистрированных в нем изображений ImageProducer, ImageConsumer java.awt. image Модель обработки «поставщик- потребитель» ImageFilterjava.awt. image Для преобразования изображений данный класс следует расширить, переопределив метод setPixels() BufferedImagejava.awt. image Вместо класса Image в Java 2D употребляется его расширение класс BufferedImage
26 Преобразование изображений AffineTransform Op java.awt.image Выполняет аффинное преобразование изображения: сдвиг, поворот, отражение, сжатие или растяжение по осям RescaleOpjava.awt.image Изменяет интенсивность изображения LookupOpjava.awt.image Изменяет отдельные составляющие цвета изображения BandCombineOpjava.awt.image Меняет составляющие цвета в Raster СolorConvertOpjava.awt.image Изменяет цветовую модель изображения ConvolveOpjava.awt.image Выполняет свертку, позволяющую изменить контраст и/или яркость изображения, создать эффект "размытости" и другие эффекты
27 Работа с 2D графикой Graphics/ Graphics2D java.awt Управляет графическим контекстом компонента. В контексте размещается область рисования и вывода текста и изображений Colorjava.awt Основу класса составляют семь конструкторов цвета. Позволяют создать цвет в RGB, HSB и других цветовых моделях Polygonjava.awt Предназначен для работы с многоугольниками Fontjava.awt Хранит начертания (glyphs) символов, образующие шрифт BasicStrokejava.awt Конструкторы класса BasicStroke определяют характеристики пера TextAttributejava.awt.font Атрибуты шрифта задаются как статические константы класса
28 Графический интерфейс приложения: окна и контейнеры JFramejavax.swing Главное окно JOptionPanejavax.swing Стандартный диалог JDialogjavax.swing Диалоговое окно JPaneljavax.swing Панель JTabbedPaneljavax.swing Панель со вкладками JToolBarjavax.swing Панель инструментов
29 Графический интерфейс приложения: элементы управления JLabeljavax.swing Надпись JButtonjavax.swing Кнопка JRadioButton, JCheckBox javax.swing Кнопки выбора JTextFieldjavax.swing Текстовое поле JTablejavax.swing Таблица JTreejavax.swing Дерево JListjavax.swing Список JComboBoxjavax.swing Выпадающий список
30 Работа с математатическим пакетом Randomjava.util Создает генератор псевдослучайных чисел Mathjava.lang Вспомогательный класс, включающий в себя методы для выполнения математических, тригонометрических и др. операций BigDecimaljava.math Класс для работы с длинными числами с плавающей точкой BigIntegerjava.math Класс для работы с длинными целыми числами MathContextjava.math Класс для настройки параметров вычислений (округление, число знаков и др.)
31 Некоторые методы класса 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) …
32 Работа с сетью URLjava.net Класс для работы с URL (Uniform Resource Locator) InetAddressjava.net Объединяет IP-адрес и доменное имя в один класс URLConnectio n (подкласс - HttpURLConnection) java.net Позволяет создать соединение с хостом (получить и передать информацию, узнать ее тип и т.п.) Socketjava.net Позволяет соединить клиент и сервер, работающих по одному протоколу com.sun.net.ht tpserver Предоставляет API для создания HTTP сервера
33 Работа с хранилищами данных: SQL Интерфейс Connection java.sql Связь (сессия) с определенной базой данных Интерфейс ResultSet java.sql Набор значений представляющий собой результат запроса к базе данных Интерфейс Statement java.sql Объект, используемый для выполнения SQL запроса и получения результата DriverManagerjava.sql Основной сервис для управления драйверами JDBC SQLPermissionjava.sql Класс-разрешение на выполнение определенных действий Typesjava.sql Класс для связывания основных типов данных SQL с типами данных в Java
34 Работа с источниками/хранилищами данных: 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 потоков
35 Класс 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() Возвращает текущий класс данного объекта
36 Классы-оболочки Wrappers – это классы, находящиеся в пакете java.lang, включающие в себя соответствующее поле примитивного типа Каждый из следующих классов предоставляет интерфейс к значению определенного типа: Класс Тип Integerint Longlong Floatfloat Doubledouble Booleanboolean Characterchar Shortshort Bytebyte
37 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() Возврат примитивного значения данного класса
38 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) Создание шестнадцатиричного представления (в виде строки) переданного числа
39 Константы классов Float и Double MAX_VALUE, MIN_VALUE Максимально и минимальное допустимые значения NEGATIVE_INFINITY Отрицательная бесконечность NAN Не является числом
40 Класс java.lang.Boolean TRUE, FALSE Константы истина и ложь getBoolean(String prop) Возвращает истину лишь в том случае если переданный аргумент является системным свойством и равен «true» booleanValue() Возвращает значение объекта Boolean в виде примитивного типа parseBoolean(String s) Пытается привести переданную строку к логическому типу данных valueOf(String s) Возвращает сущность класса Boolean, значение которого соответствует переданной строке valueOf(boolean b) Возвращает сущность класса Boolean, значение которого соответствует переданному значению логической переменной
41 Класс 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) Определяет, является ли символ заглавным
42 Класс 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() Загружает системную библиотеку
43 Класс 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() Количество процессоров
44 Системные свойства Методы, предназначенные для работы с системными свойствами: getProperty(String name) getProperties() Примеры системных свойств: java.class.path java.runtime.name user.dir java.version sun.boot.class.path и др.
45 Переменные окружения Метод, предназначенный для чтения переменных окружения: static String getenv(String name) Примеры переменных окружения : HOMEDRIVE=C: PROCESSOR_REVISION=0801 USERDOMAIN=CMSDOMAIN PATH=C:\DOCUME… и др.
46 Правда ли что… Классы-оболочки нужны для того, чтобы соответствующие примитивные типы можно было бы трактовать как объекты? Класс System предоставляет возможность отследить расход системной памяти? Средствами Java можно перенаправлять консольный вывод? В качестве монитора можно использовать любой экземпляр класса Object?
47 Ссылки Раздел Java SE: Обзор состава платформы Java SE: ndex.html Java Tutorial: Java API: Форум:
48 Q&A
49 Обзор пакетов и важных классов Java SE Спасибо! Андрей Дмитриев
Еще похожие презентации в нашем архиве:
© 2024 MyShared Inc.
All rights reserved.