Содержание
- 2. План лекции Форматированные ввод и вывод Изменения в структуре классов и пакетов
- 3. Проблема Имеется: Существуют классы для работы со строками, имеющие сходную функциональность, но не имеющие общего предка
- 4. java.lang.CharSequence Это интерфейс Предоставляет доступ к объекту, являющемуся последовательностью символов Содержит методы: char charAt(int index) int
- 5. java.lang.StringBuilder Новый класс для работы со строками По своим методам и цели является копией класса java.lang.StringBuffer
- 6. java.lang.Appendable Это интерфейс Предоставляет доступ к объекту, позволяющему добавлять к себе символы и их последовательности Содержит
- 7. java.lang.Readable Это интерфейс Предоставляет доступ к объекту, позволяющему считывать символы Содержит методы: int read(CharBuffer cb) Реализующие
- 8. Проблема Имеется: Хотелось бы: System.out.println("length = " + l); System.out.println("a=" + a + ";"); System.out.printf( "length
- 9. Форматированные ввод и вывод java.util.Formatter Обеспечивает преобразования формата, позволяющие выводить числа, строки, время и даты в
- 10. java.util.Formatter Конструкторы Имеет множество конструкторов, позволяющих задать следующие параметры (либо, если они не заданы, использовать значения
- 11. java.util.Formatter Важные методы Formatter format(String fmtString, Object ... args) Форматирует указанные аргументы в соответствии со строкой
- 12. java.util.Formatter Важные методы IOException ioException() Возвращает объект исключения, генерируемый объектом-приемником, иначе null Appendable out() Возвращает ссылку
- 13. java.util.Formatter Важные методы String toString() Возвращает объект типа String, содержащий отформатированный вывод void flush() Переносит информацию
- 14. Строка форматирования Строка форматирования состоит из: простых символов Просто копируются в вывод спецификаторов формата Определяют способ
- 15. Преобразующие спецификаторы формата
- 16. Возможности форматирования Порядковый номер аргумента Позволяет использовать не текущий аргумент, а заданный Относительный номер Позволяет несколько
- 17. Возможности форматирования Управление регистром вывода Сложное форматирование времени и даты Задание минимальной ширины поля fmt.format("Some %s",
- 18. Возможности форматирования Задание точности вывода для вещественных значений Выравнивание вывода Разделение групп цифр и т.д. fmt.format("%10.2f
- 19. Метод printf() Автоматически создает и использует экземпляр класса Formatter Объявлен в классах: java.io.PrintWriter java.io.PrintStream Имеет такие
- 20. java.util.Scanner Конструкторы Задают один из возможных источников данных С указанием кодовой таблицы и без File InputStream
- 21. java.util.Scanner Использование Считывает лексемы из указанного источника Лексема – обособленная посредством разделителей порция входных данных, определяемая
- 22. java.util.Scanner Важные методы boolean hasNextType(...) Возвращает true, если доступна следующая лексема указанного типа, иначе false boolean
- 23. java.util.Scanner Важные методы Type nextType(...) Возвращает значение следующей лексемы. Выбрасывает java.util.NoSuchElementException String next() String next(Pattern pattern)
- 24. java.util.Scanner Пример использования Scanner in = new Scanner(System.in); double sum = 0.0; while (in.hasNext()) { if
- 25. Проблема Имеется: Хотелось бы: List l = new LinkedList(); l.add(5); Object I = l.get(0); int i
- 26. Обновленные коллекции Все интерфейсы коллекций стали параметризованными Включая итераторы! Все классы коллекций стали параметризованными Обновился класс
- 27. Проблема Имеется: Хотелось бы: public Circle createAnotherLikeThis(Circle circle) throws Throwable { Class cls = circle.getClass(); Class[]
- 28. Обновленная рефлексия Классы Class, Constructor теперь настраиваемые Допускается использование аргументов переменной длины Добавлен интерфейс аннотированного элемента
- 29. Пример использования аннотаций import java.lang.annotation.*; import java.lang.reflect.*; @Retention(RetentionPolicy.RUNTIME) @interface MyAnnotation { String str(); int val(); }
- 30. Проблема Имеется: Заложенные в языке средства синхронизации и взаимодействия потоков инструкций универсальные, но низкоуровневые Организация взаимодействия
- 31. java.util.concurrent Пакет содержит высокоуровневый инструментарий для многопоточных приложений Пакет содержит следующие категории инструментов Executors – средства
- 32. java.util.concurrent java.util.concurrent.atomic пакет содержит классы оберток для базовых типов, обеспечивающие корректный доступ к значениям в многопоточных
- 33. Изменения в пакете java.lang Добавлены новые подпакеты java.lang.annotation java.lang.instrument java.lang.management Добавлены новые классы Enum ProcessBuilder StringBuilder
- 34. Изменения в пакете java.util Модифицированные коллекции Появление классов форматированного ввода/вывода Появление подпакета java.util.concurrent и его подпакетов
- 35. Нововведения Java7 © Составление, Будаев Д.С., Гаврилов А.В., 2013 Лекция 12.2 УНЦ «Инфоком» Самара 2013
- 36. План лекции Бинарные литералы Разделители в числовых литералах Строки в предложениях switch Вывод типа Блок try
- 37. Проблема Имеется: Хотелось бы: int m1 = 130816; int m2 = 0377; int m3 = 0x780;
- 38. Бинарные литералы Префиксы 0b 0B Полезны при работе с битовыми представлениями чисел, поскольку позволяют лучше видеть:
- 39. Проблема Имеется: Хотелось бы: double v1 = 7583432455435.324521; double v2 = 532453245.3453425235; // А это сколько,
- 40. Подчеркивание в числовых литералах Можно использовать В литералах любых числовых типов 765_324_213_434L В литералах в любых
- 41. Подчеркивание в числовых литералах Нельзя использовать В начале и в конце числа _123 123_ Рядом с
- 42. Проблема Имеется: public static Gender convert(String s) { Gender g; if (s.equals("м") || s.equals("муж") || s.equals("муж.")
- 43. Проблема Хотелось бы: public static Gender convert(String s) { Gender g; switch (s) { case "м":
- 44. Строки в предложениях switch В качестве проверяемого значения можно указывать ссылку на объект строки В качестве
- 45. Проблема Имеется: Хотелось бы: List list = new ArrayList (); Map > m = new HashMap
- 46. Вывод типа (type inference) Можно использовать, если компилятор из контекста может понять, какие типы нужны –
- 47. Проблема Имеется: FileWriter out = null; try { out = new FileWriter(fileName); // Некоторый вывод данных
- 48. Проблема Хотелось бы: try (FileWriter out = new FileWriter(fileName)) { // Некоторый вывод данных } try
- 49. Блок try с ресурсами Можно применять к ресурсам, объекты которых реализуют интерфейс java.lang.AutoCloseable Содержит метод void
- 50. Блок try с ресурсами Блок может содержать и блоки catch, и блок finally Код в них
- 51. Проблема Имеется: try { // Некоторая логика, ввод данных, рефлексия } catch (ClassNotFoundException ex) { logger.log(ex);
- 52. Проблема Имеется: try { // Некоторая логика, ввод данных, рефлексия } catch (Throwable ex) { logger.log(ex);
- 53. Проблема Хотелось бы: try { // Некоторая логика, ввод данных, рефлексия } catch (ClassNotFoundException | IOException
- 54. Отлов исключений нескольких типов Нужные типы исключений разделяются вертикальной чертой | Блоков catch с таким синтаксисом
- 55. Спасибо за внимание!
- 57. Скачать презентацию