java. lecture 04. standart library

10
Стандартная библиотека Коллекции, утилиты, объекты

Upload: colriot

Post on 15-Jun-2015

756 views

Category:

Technology


2 download

TRANSCRIPT

Page 1: Java. Lecture 04. Standart Library

Стандартная библиотека

Коллекции, утилиты, объекты

Page 2: Java. Lecture 04. Standart Library

java.lang.Object

• Создание копии объекта• Выполнение освобождения ресурсов• Сравнение двух экземпляров

объектов• Превращение объекта в строку• Методы, связанные с многопоточной

работой приложения

Page 3: Java. Lecture 04. Standart Library

boolean equals()

equals() – отношение эквивалентности:• Рефлексивно: a.equals(a) == true;• Симметрично:

a.equals(b) == b.equals(a);• Транзитивно:

a.equals(b) == true;b.equals(c) == true; → a.equals(c) == true;• Устойчиво• Для любых не-null объектов a,

a.equals(null) == false.

Page 4: Java. Lecture 04. Standart Library

int hashCode()

• Метод должен возвращать одинаковый результат для всех вызовов, если данные, используемые в equals(), не поменялись

• Для объектов, для которых equals() возвращает true, hashCode() должен возвращать одинаковые значения

• Если equals() – false, то hashCode() не обязаны отличаться.

• Важно корректно переопределять hashCode(), чтобы избежать проблем при работе с коллекциями (Hashtable, HashSet, HashMap, ...)

Page 5: Java. Lecture 04. Standart Library

Пакет java.lang

• Инструменты для работы со строками (StringBuffer, StringBuilder)

• Инструменты для работы с числами (StrictMath)• Математические функции в классе Math

Page 6: Java. Lecture 04. Standart Library

StringBuffer vs. StringBuilder

• StringBuilder появился только в Java 5• StringBuffer – thread-safe, но более сложная, громоздкая и

надёжная реализация• В простых случаях лучше использовать StringBuilder

Page 7: Java. Lecture 04. Standart Library

Пакет java.math

• BigInteger – очень большие целые числа• BigDecimal – вещественные числа фиксированной точности• В каждом классе есть всё необходимое для того, чтобы

выполнять простейшие математические операции: сложение, вычитание, умножение и деление.

Page 8: Java. Lecture 04. Standart Library

Пакет java.util

• Коллекции и списки (Collection, List)• Классы для работы с датой (Calendar, Date)• Средства для работы со свойствами времени выполнения

(Property)

Page 9: Java. Lecture 04. Standart Library

Коллекции и списки

• В некотором смысле, аналоги контейнеров в STL• Collection – базовый интерфейс• ArrayList – наиболее часто используемый класс• HashMap – аналог отображения (хранит пары ключ-значение,

ключи уникальны)• HashSet – множество

Page 10: Java. Lecture 04. Standart Library

Типизированные коллекции

• Механизм generics – аналог шаблонов в C++.• Начиная с версии 5, все коллекции должны быть

типизированными• Раньше предполагалось, что в коллекциях хранятся просто

объекты• В каждый класс и/или метод можно добавить поддержку

generics