А вот это действительно прикольно. Теперь IDEA применяет Data Flow Analysis прямо к "живым" данным во время отладки: https://blog.jetbrains.com/idea/2020/01/dfa-debugger/
Подъехали результаты ежегодного технологического опроса от JRebel.
• Java 8 всё ещё сильно доминирует со своими 58%. Но 28% уже использует Java 11 и выше, что не может не радовать.
• Доля Eclipse совсем упала: 24% против 82% у Идеи.
• Gradle и Maven примерно наравне (47% и 44%).
• Java 8 всё ещё сильно доминирует со своими 58%. Но 28% уже использует Java 11 и выше, что не может не радовать.
• Доля Eclipse совсем упала: 24% против 82% у Идеи.
• Gradle и Maven примерно наравне (47% и 44%).
JRebel
2020 Java Technology Report | JRebel
In our 2020 Java technology report, we look at results of our 2020 Java developer survey related to technology choice. The survey gained nearly 400 responses from Java development professionals around the globe.
А давайте кстати сверим результаты с JRebel'овскими. Мы ведь тоже можем тут голосовать. Какие языки используете?
Final Results
7%
Java 7 или более старые
70%
Java 8
2%
Java 9/10
32%
Java 11
13%
Java 12 или выше
10%
Groovy
7%
Scala
21%
Kotlin
List<String> list = new ArrayList<>();
list.add("1");
list.add("2");
list.add("3");
for (String str : list) {
if (str.equals("2")) {
list.remove(str);
}
}
System.out.println(list);Что произойдёт, если запустить код выше?
Final Results
66%
ConcurrentModificationException
34%
Будет выведено [1, 3]
Многие проголосовали за первый вариант, справедливо полагая, что удаление из ArrayList во время итерирования должно выбрасывать исключение. Но в данном случае ConcurrentModificationException не выбрасывается из-за бага. Такой баг проявляется, только если удалять предпоследний элемент. Кстати, баг чинить не будут.
Ух ты,
--illegal-access=deny будет по умолчанию в Java 16. Так сказал Марк Рейнолд на конференции JFokus. Это значит, что любителям setAccessible(true) придётся включать ключик, чтобы их программа продолжала работать.Twitter
Nicolai Parlog
Yes! @mreinhold says illegal access will be denied by default in #Java16. Great move. https://t.co/gdpXRj6viX
Ребята, Helpful NullPointerExceptions в Java 14 – пушка! Включаются ключом
-XX:+ShowCodeDetailsInExceptionMessagesПоявился новый черновик JEP для
Но пока, похоже, это будет работать только для записей. В любом случае, хорошо, что всё по-маленьку движется в сторону полноценного паттерн-матчинга.
instanceof. Разница со старым – добавили deconstruction patterns:record Point(int x, int y) {}
if (obj instanceof Point(var a, var b)) {
System.out.println(a+b);
}Но пока, похоже, это будет работать только для записей. В любом случае, хорошо, что всё по-маленьку движется в сторону полноценного паттерн-матчинга.
Не знаю как вам, а мне идея нравится! Добавить в язык стандартную аннотацию
@Language, чтобы можно было указывать тип языка в блоках текста. Представляете, писать какой-нибудь SQL прямо внутри литерала, а там будет автокомплит, подсветка, валидация...Тут меня справедливо поправили, что всё это в IntelliJ IDEA уже давно есть. И даже есть аннотация @Language. Правда она нестандартная. Но ещё можно использовать комментарий
//language=<language_ID>, если не хочется тащить библиотеку ради аннотации.Тут люди обсуждают, как бы упростить синтаксис
if (!(x instanceof String y)), а Тагир просто взял и реализовал это в IDEA безо всяких изменений языка. Удивительно, что до такой простейшей вещи не додумались раньше.Twitter
Tagir Valeev
Implemented very small but nice addition to completion: if you complete `instanceof` after negation the parentheses will be inserted automatically. Of course, it could be used with pattern instanceof as well. Will be available since #IntelliJIDEA 2020.1.…
Сколько вам лет?
Final Results
1%
<18
3%
18-20
8%
21-23
14%
24-26
16%
27-29
20%
30-32
15%
33-35
13%
36-38
3%
39-41
7%
>41
Может, немного поздновато, но на всякий случай информирую, что на YouTube появились видео докладов с Joker 2019.
#joker
#joker
Будет ли вам интересно, если я сюда буду кидать ссылки на интересные доклады? Вот, например, доклад Тагира Валеева про трансляцию switch в байт-код. Мне кажется, у него незаслуженно мало просмотров, хотя доклад очень познавательный и полезный.
YouTube
Тагир Валеев – Трансляция switch в Java-байткод
Мы посмотрим каким образом компилятор javac транслирует в Java-байткод различные версии оператора switch начиная с Java 1 и вплоть до Java 12, какие нетривиальные проблемы при этом возникают и как они отважно решаются. Доклад предназначен для тех, кому интересно…
Похоже, в скором будущем ZGC станет production ready. Появился новый черновик JEP.
Похоже, Nashorn (движок JS) скоро уберут из JDK. Он стал deprecated в Java 11, а теперь его хотят выбросить совсем. Причина очень банальная: никто не изъявил желание его поддерживать.
Таким образом, они хотят убрать единственный движок JS из JDK, и все приложения, использующие JS, перестанут работать. И знаете что? Я даже не удивлюсь, если они реально возьмут и сделают это. Вспомните, например, как просто выкосили Java EE в Java 11. А чем JS лучше?
Таким образом, они хотят убрать единственный движок JS из JDK, и все приложения, использующие JS, перестанут работать. И знаете что? Я даже не удивлюсь, если они реально возьмут и сделают это. Вспомните, например, как просто выкосили Java EE в Java 11. А чем JS лучше?