- •Нововведения Java5
- •План лекции
- •Проблема
- •java.lang.CharSequence
- •java.lang.StringBuilder
- •java.lang.Appendable
- •java.lang.Readable
- •Проблема
- •Форматированные ввод и вывод
- •java.util.Formatter
- •java.util.Formatter
- •java.util.Formatter
- •java.util.Formatter
- •Строка форматирования
- •Преобразующие спецификаторы формата
- •Возможности форматирования
- •Возможности форматирования
- •Возможности форматирования
- •Метод printf()
- •java.util.Scanner
- •java.util.Scanner
- •java.util.Scanner
- •java.util.Scanner
- •java.util.Scanner
- •Проблема
- •Обновленные коллекции
- •Проблема
- •Обновленная рефлексия
- •Пример использования аннотаций
- •Проблема
- •java.util.concurrent
- •java.util.concurrent
- •Изменения в пакете java.lang
- •Изменения в пакете java.util
- •Нововведения Java7
- •План лекции
- •Проблема
- •Бинарные литералы
- •Проблема
- •Подчеркивание в числовых литералах
- •Подчеркивание в числовых литералах
- •Проблема
- •Проблема
- •Строки в предложениях switch
- •Проблема
- •Вывод типа (type inference)
- •Проблема
- •Проблема
- •Блок try с ресурсами
- •Блок try с ресурсами
- •Проблема
- •Проблема
- •Проблема
- •Отлов исключений нескольких типов
- •Спасибо за внимание!
- •Дополнительные источники
Нововведения Java5
Часть 2
© Составление, Будаев Д.С., Гаврилов А.В., 2013
Лекция 12.1
УНЦ «Инфоком» Самара
2013
План лекции
Форматированные ввод и вывод
Изменения в структуре классов и пакетов
2
Проблема
Имеется:
Существуют классы для работы со строками, имеющие сходную функциональность, но не имеющие общего предка
Хотелось бы:
Ввести общего родителя в форме интерфейса
3
java.lang.CharSequence
Это интерфейс
Предоставляет доступ к объекту, являющемуся последовательностью символов
Содержит методы:
char charAt(int index)
int length()
CharSequence subSequence(int start, int end)
String toString()
Реализующие классы:
java.lang.String
java.lang.StringBuffer
java.lang.StringBuilder
java.nio.CharBuffer
4
java.lang.StringBuilder
Новый класс для работы со строками
По своим методам и цели является копией класса java.lang.StringBuffer
Отличается только тем, что не является безопасным с точки зрения многопоточности
Если объект изменяемой строки локален, то лучше использовать этот класс
5
java.lang.Appendable
Это интерфейс
Предоставляет доступ к объекту, позволяющему добавлять к себе символы и их последовательности
Содержит методы:
Appendable append(char c)
Appendable append(CharSequence csq)
Appendable append(CharSequence csq,
int start, int end)
Реализующие классы:
java.lang.StringBuffer
java.lang.StringBuilder
java.io.Writer
6
java.lang.Readable
Это интерфейс
Предоставляет доступ к объекту, позволяющему считывать символы
Содержит методы:
int read(CharBuffer cb)
Реализующие классы:
java.nio.CharBuffer
java.io.Reader
7
Проблема
Имеется:
System.out.println("length = " + l);
System.out.println("a=" + a + ";");
Хотелось бы:
System.out.printf(
"length = %d\na=%f;", l, a);
8
Форматированные ввод и вывод
java.util.Formatter
Обеспечивает преобразования формата, позволяющие выводить числа, строки, время и даты в практически любом нужном вам формате
java.util.Scanner
Позволяет использовать форматированный ввод и преобразовывать значения к нужным типам
9
java.util.Formatter
Конструкторы
Имеет множество конструкторов, позволяющих задать следующие параметры (либо, если они не заданы, использовать значения по умолчанию)
Объект вывода
Appendable a
File file
String fileName
OutputStream os
PrintStream ps
по умолчанию – без автоматического вывода
Кодовая таблица
String charSet
по умолчанию – текущая таблица
Параметры локализации
Locale locale
по умолчанию – текущие параметры
10