Переход JDK на Git и GitHub официально завершён. Теперь репозиторий открыт для контрибьюторов: можно делать пулл-реквесты.
#skara
#skara
GitHub
GitHub - openjdk/jdk: JDK main-line development https://openjdk.org/projects/jdk
JDK main-line development https://openjdk.org/projects/jdk - GitHub - openjdk/jdk: JDK main-line development https://openjdk.org/projects/jdk
Первый пулл-реквест на GitHub был интегрирован в JDK 16. На странице пулл-реквеста видно, как всё грамотно автоматизировано, и как автор и ревьюер с помощью команд могут управлять процессом. Большая часть работы при этом совершается ботами.
#java16 #skara
#java16 #skara
GitHub
8252715: Problem list java/awt/event/KeyEvent/KeyTyped/CtrlASCII.java on Linux by prrace · Pull Request #23 · openjdk/jdk
Bug :https://bugs.openjdk.java.net/browse/JDK-8252715
We've opened a bug to track some xserver issues running this test that cause all subsequent tests to fail
because they can't c...
We've opened a bug to track some xserver issues running this test that cause all subsequent tests to fail
because they can't c...
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