
Size: a a a
private
– доступ только непосредственно из этого класса и его внутренних/вложенных классов;protected
– доступ из всех классов этого пакета и всех наследников;public
– никаких ограничений доступа;Collections.unmodifiable*()
для различных типов коллекций. Такой метод вернет read-only обертку над переданной коллекцией. Так же как с Collections.synchronized*()
, внутри используется не копия, а оригинальная коллекция.Collections.empty*()
. Он возвращает немодифицируемую пустую коллекцию. Попытка добавить элемент как и в случае unmodifiable приведет к UnsupportedOperationException
.Iterator
. Они определяют, как поведет себя итератор при изменении перебираемой последовательности.ArrayList
, при изменении он выбрасывает ConcurrentModificationException
. Рекомендуется не основывать логику программы на fail-fast отказах, и использовать их только как признак ошибки реализации.ConcurrentHashMap
работает с копией данных, он не выбросит исключение при изменении коллекции, но может не увидеть часть свежих изменений. Плата за отсутствие ошибок других fail-safe итераторов может отличаться, детали всегда можно найти в документации коллекций.Date
(дата+время), Calendar
(конвертация и манипуляция), TimeZone
(смещение часового пояса). Эти классы обладали рядом известных проблем. Экземпляры были изменяемыми, что делало их потоко-небезопасными. Работа с датами через календарь была неудобной, не было нормальной поддержки часовых поясов и интернационализации.LocalDate
, LocalTime
и LocalDateTime
– локальные для пользователя дата/время.ZonedDateTime
– дата/время в определенной часовой зоне.Period
и Duration
– периоды дат и времени соответственно.Date
и Time
пакета java.sql. Это представление даты и времени для обмена данными через JDBC. Не стоит пользоваться ими вне уровня доступа к данным, хотя бы потому, что это классы-наследники старого java.util.Date
.KeyFactory
– основной класс платформы Java для работы с криптографическими ключами. Набор реализаций для этой фабрики подключается с помощью механизма SPI.KeyFactory
занимается конвертацией спецификации ключа в сам публичный или приватный ключ, и обратно.KeySpec
, – входные данные ключа. Это может быть например модуль и экспонента приватного ключа RSA.PublicKey
и PrivateKey
– наследники общего Key
.