пятница, 26 октября 2018 г.

Новые фишки Java 12

Добрый день, люди из интернета!
Те, кто близок к Java, в курсе, что Oracle перешел на мутную релизную схему и сейчас уже можно ждать JDKv12.
Нас ждут новые фишки, плюшки и вообще - все будет классно. Наверное. Но это не точно.
Итак, поехали!

Быстрый запуск, CDS и сборщик мусора
Да-да, вы не ослышались. Теперь Java будет запускаться быстро. Достигается это с помощью механизма CDS. Механизм не новый, но обещают, что он будет еще круче. Что ж, посмотрим. 
Еще будут добавлены новые опции для управления сборщиком мусора и его взаимодействием с CDS. 
Новый switch
Разработчики Java наконец-то добрались до оператора switch. Его поведение будет расширено и сможет делать проверки на тип. То есть вместо
String formatted = "unknown";
if (obj instanceof Integer) {
    int i = (Integer) obj;
    formatted = String.format("int %d", i);
}
else if (obj instanceof Byte) {
    byte b = (Byte) obj;
    formatted = String.format("byte %d", b);
}
else if (obj instanceof Long) {
    long l = (Long) obj;
    formatted = String.format("long %d", l);
}
else if (obj instanceof Double) {
    double d = (Double) obj;
    formatted = String.format(“double %f", d);
}
else if (obj instanceof String) {
    String s = (String) obj;
    formatted = String.format("String %s", s);
}
можно будет писать
String formatted;
switch (obj) {
    case Integer i: formatted = String.format("int %d", i); break;
    case Byte b:    formatted = String.format("byte %d", b); break;
    case Long l:    formatted = String.format("long %d", l); break;
    case Double d:  formatted = String.format(“double %f", d); break;
    case String s:  formatted = String.format("String %s", s); break
    default:        formatted = obj.toString();
}
Мелочь, а приятно, согласитесь?=) Полное описание читаем тут.
Новые строчки
В процессе создания кода часто приходится работать со сложными строками, которые имеют множество escape-символов. Это и строки с переносами, и работа с SQL-запросами и многое другое. В итоге, нагромождение escape-символов приводит к коду, смысл которого теряется даже для автора кода. Теперь предлагается использовать новые строки, содержимое которых не интерпретируется, а выводится как есть. Например, старый вариант:
String html = "<html>\n" +
              "    <body>\n" +
              "      <p>Hello World.</p>\n" +
              "    </body>\n" +
              "</html>\n";
можно будет переписать как
String html = `<html>
                   <body>
                       <p>Hello World.</p>
                   </body>
               </html>
              `;
Любо-дорого смотреть=) Интересующимся подробностями - сюда.
Итак
Это самые интересные изменения, но если что-то изменится - я обязательно напишу об этом. 
До новых встреч, интересного и удобного программирования. И - чашечку кофе?


2 комментария: