Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Лекции Java / 10. Нововведения Java5. Нововведения Java7.pptx

.pdf
Скачиваний:
137
Добавлен:
16.03.2015
Размер:
533.1 Кб
Скачать

Самарский государственный аэрокосмический университет имени академика С.П. Королёва

Лекция 10.2

Нововведения Java7

© Составление, Гаврилов А.В., 2013

Самара

2013

План лекции

nБинарные литералы

nРазделители в числовых литералах

nСтроки в предложениях switch

nВывод типа

ntry с ресурсами

nОтлов исключений нескольких типов

Самарский государственный аэрокосмический университет имени академика С.П. Королёва

42

Проблема

n Имеется:

int m1 = 130816; int m2 = 0377; int m3 = 0x780;

// Что это за числа???

int m1 = 0b11111111100000000; int m2 = 0b00000000011111111; int m3 = 0B00000011110000000;

Самарский государственный аэрокосмический университет имени академика С.П. Королёва

43

Бинарные литералы

n Префиксы

0b

0B

nПолезны при работе с битовыми представлениями чисел, поскольку позволяют лучше видеть:

саму структуру числа

0b0000111111110000 // 2040, 0x07f8

взаимосвязь чисел

0b0000111111111111 // 4095, 0x0fff

0b1111000000000000 // 61440, 0xf000

Самарский государственный аэрокосмический университет имени академика С.П. Королёва

44

Проблема

n Имеется:

double v1 = 7583432455435.324521;

double v2 = 532453245.3453425235;

// А это сколько, много или мало???

double v1 = 7_583_432_455_435.324_521;

double v2 = 532_453_245.345_342_523_52;

Самарский государственный аэрокосмический университет имени академика С.П. Королёва

45

Подчеркивание в числовых литералах

n Можно использовать

В литералах любых числовых типов

765_324_213_434L

В литералах в любых системах счисления

0xFF_00_FF_00

В нужных местах числа

1_23_456_7890

В нужном количестве

6_____6

Самарский государственный аэрокосмический университет имени академика С.П. Королёва

46

Подчеркивание в числовых литералах

n Нельзя использовать

В начале и в конце числа

_123 123_

Рядом с разделителем целой и дробной части

10_.01 10._01

Перед суффиксами L, F и D

1_L

1.1_F

1.1_D

В строковых литералах с числами

"6_____6"

Самарский государственный аэрокосмический университет имени академика С.П. Королёва

47

Проблема

n Имеется:

public static Gender convert(String s) { Gender g;

if (s.equals("м") || s.equals("муж") || s.equals("муж.") || s.equals("мужской")) { g = Gender.Male;

} else if (s.equals("ж") || s.equals("жен") || s.equals("жен.") || s.equals("женский")) {

g = Gender.Female; } else {

g = Gender.Unknown;

}

return g;

}

Самарский государственный аэрокосмический университет имени академика С.П. Королёва

48

Проблема

n Хотелось бы:

public static Gender convert(String s) { Gender g;

switch (s) {

case "м": case "муж": case "муж.": case "мужской": g = Gender.Male; break;

case "ж": case "жен": case "жен.": case "женский": g = Gender.Female; break;

default:

g = Gender.Unknown; break;

}

return g;

}

Самарский государственный аэрокосмический университет имени академика С.П. Королёва

49

Строки в предложениях switch

nВ качестве проверяемого значения можно указывать ссылку на объект строки

nВ качестве значений для сравнения можно указывать

строковые литералы

ссылки на строки, объявление которых снабжено модификатором final

nСравнение значений производится также, как если бы использовался метод String.equals()

регистр имеет значение

начальные и концевые пробелы имеют значение

Самарский государственный аэрокосмический университет имени академика С.П. Королёва

50