Содержание
- 2. План лекции Пакет java.lang и базовые классы Классы Class и Object Классы-обертки примитивных типов Класс Math
- 3. Пакет java.lang Импортируется по умолчанию (неявно) Класс Class Класс Object Классы-обертки примитивных типов Класс Math Классы
- 4. Класс Class Является метаклассом для всех классов Экземпляры содержат описания классов, загружаемых JVM Не имеет доступного
- 5. Класс Class При загрузке JVM файла .class создается объект класса Class При создании любого объекта создаются
- 6. Класс Object Является суперклассом для всех классов (включая массивы) Переменная этого типа может ссылаться на любой
- 7. Методы класса Object Получение строкового представления объекта String toString() Получение ссылки на описание класса объекта final
- 8. Клонирование объектов Считается, что результатом клонирования является копия объекта Массивы поддерживают операцию клонирования В классе Object
- 9. Простое клонирование объектов, ряд соглашений Класс должен переопределять метод clone() Класс должен реализовывать интерфейс-маркер Cloneable Результат
- 10. Особенности клонирования В результате клонирования скопировалась ссылка на объект a, но не объект, с которым связана
- 11. Глубокое клонирование объектов Простого клонирования может быть недостаточно, если объект содержит ссылки на агрегированные объекты В
- 12. Равенство объектов Простого сравнения ссылок недостаточно для сравнения содержимого объектов Для сравнения объектов по их содержимому
- 13. Равенство объектов Метод equals(...) должен проверять эквивалентность объектов с точки зрения бизнес-логики Отношение, задаваемое на множестве
- 14. Равенство объектов public class Gadget implements Item { private int p1; private double p2; ... public
- 15. Хэш-код объекта Метод int hashCode() предназначен для получения хэш-кода – числа, используемого для быстрого сравнения объектов
- 16. Хэш-код объекта public class Employee { int employeeId; String name; Department dept; //some other methods public
- 17. Классы-обертки примитивных типов Значения примитивных типов не могут быть непосредственно использованы в контексте, где требуется ссылка
- 18. Классы-обертки примитивных типов Boolean Byte Character Double Float Integer Long Number Short Void
- 19. Задачи классов-оберток примитивных типов Ссылочное представление значений примитивных типов Хранение вспомогательных функций для работы со значениями
- 20. Наполнение классов-оберток Константы типов Integer.MAX_VALUE, Double.NaN Конструкторы: по значению и строке Float(float value), Float(String s) Методы
- 21. Классы-обертки примитивных типов Каждому примитивному типу сопоставлен соответствующий класс-обертка Все классы-обертки имеют публичный конструктор (кроме класса
- 22. Класс Math Предназначен для выполнения простых математических операций Не имеет явного конструктора Является final-классом Все методы
- 23. Наполнение класса Math Константы E и PI Функции взятия модуля abs() Функции максимума и минимума max(),
- 24. Хранение строк byte [] Массив байт кодов char [] Массив Unicode-символов String Неизменяемая строка StringBuffer Изменяемая
- 25. Работа со строками. Класс String Значение объекта класса String не может быть изменено без порождения нового
- 26. Наполнение класса String Строковое представление valueOf(), copyValueOf() Преобразование типов getBytes(), getChars(…), toCharArray(), toString() Сравнение compareTo(…), compareToIgnoreCase(…),
- 27. Работа со строками. Класс StringBuffer Реализует методы модификации строки без порождения нового объекта Реализует операции с
- 28. Наполнение класса StringBuffer Добавление фрагментов append(…), insert(…) Поиск вхождений indexOf(…), lastIndexOf(…) Извлечение фрагментов charAt(…), getChars(…), reverse(),
- 29. Конкатенация строк System.out.println("a = " + a + ";"); System.out.println( (new StringBuffer("a = ")) .append(a) .append(";")
- 30. Системные классы ClassLoader – абстрактный класс, необходим для загрузки описания типов (объектов Class) в память JVM
- 31. Пакет java.util Классы для работы со временем Классы для работы с локализацией Классы для работы с
- 32. Классы работы со временем Date Отражает дату и время с точностью до миллисекунд. Не рекомендуется к
- 33. Методы класса Calendar Установка значения поля календаря public void set(int field, int value) Добавляет смещение к
- 34. Методы класса Calendar SimpleDateFormat sdf = new SimpleDateFormat("yyyy MMMM dd HH:mm:ss"); Calendar cal = Calendar.getInstance(); cal.set(Calendar.YEAR,
- 35. Классы для работы с локализацией Locale Содержит константы и методы для работы с языками и особенностями
- 36. java.util.Random Экземпляр класса является отдельным генератором псевдослучайных чисел (ГПСЧ) Различные ГПСЧ позволяют формировать некоррелированные последовательности «Основание»
- 37. Регулярные выражения Позволяют сопоставлять текст с шаблоном, выполнять замену текста Операции осуществляются с помощью универсальных символов,
- 38. Пакет java.util.regex Класс Pattern Реализует шаблоны регулярных выражений. Позволяет составлять сложные шаблоны и разделять строки на
- 39. Коллекции Коллекции (контейнеры) – хранилища, поддерживающие разнообразные способы накопления и упорядочивания объектов с целью обеспечения возможностей
- 40. Интерфейс Collection Образующий в иерархии типов коллекций Определяет базовую функциональность любой коллекции Подразумевает добавление, удаление, выбор
- 41. Методы интерфейса Collection Добавление элементов boolean add(Object o), boolean addAll(Collection c) Исключение элементов boolean remove(Object o),
- 42. Интерфейс Set Расширяет интерфейс Collection Не допускает наличие дубликатов Разрешает только одну ссылки null Объекты коллекции
- 43. Интерфейс List Расширяет интерфейс Collection Подразумевает хранение упорядоченной последовательности объектов Порядок хранения определяется порядком добавления элементов
- 44. Специальные методы интерфейса List Адресное добавление void add(int index, Object o), boolean addAll(int index, Collection c)
- 45. Интерфейс Iterator Позволяет работать с любой коллекцией как с перебираемым набором элементов Метод Iteraror iterator() вызывается
- 46. Интерфейс Map Не расширяет интерфейс Collection Подразумевает хранение набора объектов парами ключ/значение Ключи должны быть уникальными
- 47. Методы интерфейса Map Добавление объектов Object put(Object key, Object value), void putAll(Map t) Исключение объектов Object
- 48. Иерархия интерфейсов коллекций
- 49. Иерархия абстрактных классов коллекций
- 50. Классы коллекций Динамические массивы ArrayList (List), Vector (List) Двухсвязный список LinkedList (List) Упорядоченные множество и карта
- 51. Класс java.util.ArrayList Расширяет класс AbstractList Динамически расширяется при добавлении новых элементов в коллекцию Методы доступа к
- 52. Класс java.util.ArrayList ArrayList arrayList = new ArrayList(); for (int i = 0; i arrayList.add("Item " +
- 53. Класс java.util.LinkedList Реализует интерфейс List Является реализацией двусвязного списка Добавлены дополнительные методы доступа, добавления и удаления
- 54. Класс java.util.LinkedList LinkedList linkedList = new LinkedList(); linkedList.add("Item 1"); linkedList.add("Item 2"); linkedList.addFirst("Item 3"); linkedList.addLast("Item 4"); printCurrentCollection(linkedList);
- 55. Класс java.util.Hashtable Реализует интерфейс Map и расширяет устаревший класс Dictionary Хранит объекты в виде пар ключ/значение
- 56. Класс java.util.HashMap Расширяет класс AbstractMap Похож на класс Hashtable Хранит объекты в виде пар ключ/значение Для
- 57. Класс java.util.HashMap HashMap hashmap = new HashMap(); for (int i = 0; i hashmap.put("Key" + i,
- 58. Класс java.util.TreeMap реализует SortedMap расширяет AbstractMap содержит ключи в порядке возрастания запрещено применение null для ключей
- 59. Класс Collections Утилитный класс Содержит ряд статических методов прикладного назначения, позволяющих оперировать объектами коллекций Группы методов:
- 60. Обертки коллекций Синхронизированные Обеспечивают механизмы синхронизации доступа для многопоточных приложений List synchronizedList(List l), … Неизменяемые Запрещают
- 61. Прикладные методы Методы поиска минимума и максимума min(), max() Работа со списками reverse(), shuffle(), fill(), copy(),
- 62. java.util.Arrays Содержит статические методы для работы с массивами Представление массива списком List asList(Object[] a) Поиск элемента
- 63. Спасибо за внимание!
- 65. Скачать презентацию