microJUG
⚡Shenandoah всё-таки был бэкпортирован в JDK 11! #shenandoah
wiki.openjdk.org
Main
-
Main
-
OpenJDK Wiki
-
Main
-
OpenJDK Wiki
Shenandoah GC Shenandoah is the low pause time garbage collector that reduces GC pause times by performing more garbage collection work concurrently with the running Java program. Shenandoah does the bulk of GC work concurrently, including the concurrent
Будут ли языковые изменения в Java 16?
В Java 16 принципиально новых языковых фич, скорее всего, не будет. Но будут небольшие изменения в существующих.
Во-первых, pattern matching for instanceof станет стабильной фичей (я крайне сомневаюсь, что будет третье превью, хотя на 100% это не исключено). Изменения будут следующими:
• Переменные паттернов не будут неявно final. Это сделает их согласованными с обычными переменными и параметрами методов/лямбд. То есть можно будет написать:
Во-вторых, записи тоже станут стабильной фичей (и тоже третье превью маловероятно). Изменение будет только одно: предлагается разрешить объявлять статические члены во вложенных классах:
#java16 #records
В Java 16 принципиально новых языковых фич, скорее всего, не будет. Но будут небольшие изменения в существующих.
Во-первых, pattern matching for instanceof станет стабильной фичей (я крайне сомневаюсь, что будет третье превью, хотя на 100% это не исключено). Изменения будут следующими:
• Переменные паттернов не будут неявно final. Это сделает их согласованными с обычными переменными и параметрами методов/лямбд. То есть можно будет написать:
if (x instanceof String s) {
s = "abc"; // В Java 15 ошибка компиляции, в 16 - OK
}
• Предлагается запретить делать такие тесты, в которых тип выражения является подклассом типом паттерна. Например:String x = "abc";
if (x instanceof String s) { // ошибка компиляции
...
}
Имхо, это плохое ограничение, и я против его введения (потому что будет несогласованность с обычным instanceof, где так можно делать).Во-вторых, записи тоже станут стабильной фичей (и тоже третье превью маловероятно). Изменение будет только одно: предлагается разрешить объявлять статические члены во вложенных классах:
class A {
class B {
static void foo() { // OK
...
}
}
}#java16 #records
microJUG
Java будет выдавать предупреждения при попытке засинхронизоваться на классах, которые являются кандидатами в inline-типы. Это Integer, Double, Long, Version, Optional, LocalDate, LocalTime, ProcessHandle и другие. Предупреждение будет как во время компиляции…
Value-типы хотят переименовать во второй раз🤦♂️. Теперь это будут не inline-типы, а примитивные типы.
#valhalla
#valhalla
Какой вариант сравнения nullable переменной с константой вы предпочитаете?
Final Results
11%
if (nullable != null && nullable.equals(CONST))
66%
if (CONST.equals(nullable))
22%
if (Objects.equals(nullable, CONST))
1%
Свой вариант (напишу в комментариях)
microJUG
Shenandoah попадёт в JDK 11.0.9. Релиз выйдет 20 октября 2020 года. #shenandoah
Походу, они обосрались, и не включили Shenandoah в AdoptOpenJDK 11.0.9.
P.S. Shenandoah есть в Azul Zulu и, само собой, в редхатовской сборке.
#shenandoah
P.S. Shenandoah есть в Azul Zulu и, само собой, в редхатовской сборке.
#shenandoah
Как позвать protected метод у класса в чужом пакете? Ловите простой трюк. Просто переопределяем метод в анонимном классе, и сразу же вызываем его на этом объекте:
new ClassWithProtectedMethod() {
@Override
protected void method() {
super.method();
}
}.method();
Заметьте, что метод даже не пришлось делать public.В Java 16 появится метод
Кроме того, между всеми тремя способами есть различия:
•
•
•
#java16 #stream
Stream.toList(), который позволит конвертировать Stream в список. Сейчас это можно сделать с помощью Stream.collect(Collectors.toList()) и Stream.collect(Collectors.toUnmodifiableList()), однако toList() будет не только короче, но и эффективнее, поскольку не будет создавать никаких промежуточных массивов.Кроме того, между всеми тремя способами есть различия:
•
collect(Collectors.toList()) не гарантирует неизменяемость, позволяет нули (по факту возвращает ArrayList)•
collect(Collectors.toUnmodifiableList()) гарантирует неизменяемость, не позволяет нули•
toList() гарантирует неизменяемость, позволяет нули (по факту возвращает неизменяемый список)#java16 #stream
В сборщике мусора Shenandoah появится конкурентная обработка слабых ссылок (в т.ч. финализаторов). Это значит, что теперь использование слабых ссылок и finalize() не будет влиять на паузы GC. Изменение попадёт в Java 16.
#shenandoah #java16
#shenandoah #java16
This media is not supported in your browser
VIEW IN TELEGRAM
Когда проверяешь, как там поживает твой билд, и радуешься, что пока не упало ни одного теста
#юмор
#юмор
microJUG
https://youtu.be/NXh98XRi2is #ТагирВалеев
JUG. ru выложил остатки видео с JPoint 2020.
Пишите в комментах, какие доклады стоит посмотреть.
#jpoint
Пишите в комментах, какие доклады стоит посмотреть.
#jpoint
YouTube
JPoint 2020: открытый плейлист
Enjoy the videos and music you love, upload original content, and share it all with friends, family, and the world on YouTube.