А вот тут Тагир наш Валеев здорово рассказал про анбоксинг в последних версия Java. Не так страшен
#java #unboxing #jvm
Chort<Integer>, как его малюют!#java #unboxing #jvm
Хабр
Анбоксинг в современной Java
Сейчас новые версии Java выходят раз в полгода. В них время от времени появляются новые возможности: var в Java 10, switch-выражения в Java 14, рекорды и паттерн...
А вот интересный замес: Брюс Эккель (наверняка его все знают, как минимум за книжку “Философия Java”) пожурил Gradle за всякое разное, а Седрик Шампо (делал Groovy, делает Gradle) аккуратно прошёлся по его тезисам и постарался их развалить. Ням!
#gradle #java #groovy
#gradle #java #groovy
Bruceeckel
The Problem with Gradle
Тут в Git mailing list создатель JGit интересно расписал, с чем приходится сталкиваться, чтобы ускорить Git, написанный на чём-то более высокоуровневом (Java в его случае), чем C, и всё равно быть более медленным.
#git #c #java
#git #c #java
👍4😱2
Внимание! Из психиатрической больницы им. Кащенко сбежала группа джавистов. На попытки заговорить отвечают предложениями использовать checked exceptions в качестве union types. Не пытайтесь их понять, это опасно! Ни в коем случае не пытайтесь их переубедить - они агрессивны! За помощь в поимке вознаграждение гарантируем!
#java #exception #type
#java #exception #type
Java, SQL and jOOQ.
Java’s Checked Exceptions Are Just Weird Union Types
This fun fact has been on my mind for a while, and a recent reddit thread about “Smuggling Checked Exceptions with Sealed Interfaces” made me write this post here. Namely, Java had unio…
😁9👍8🤯3
Java Generics are Turing Complete.pdf
481.1 KB
На последнем пирлабе обнаружилось страшное. Java Generics are Turing Complete. Как говорится, я просто оставлю это здесь...
#java #generics #paper
#java #generics #paper
😱6🥴3👏1👌1
JEP 430: String Templates, дамы и господа! Прошу любить и жаловать!
В Java решили сделать что-то типа string interpolation, но чтобы было ЛУЧШЕ, чем у всех остальных.
Получилось, впрочем, как обычно:
#java #language #jep
В Java решили сделать что-то типа string interpolation, но чтобы было ЛУЧШЕ, чем у всех остальных.
Получилось, впрочем, как обычно:
String s = STR."\{x} + \{y} = \{x + y}";#java #language #jep
🌚13🤣12👎4😐3🤡2👍1
Новая билд система для Java, на Java. Хотят, чтобы всё было прямо, как железная дорога, без магии. Название доставило: bld. "БЛД, почему не собирается?" "Почему, БЛД, так медленно?"
#build #java #tool
#build #java #tool
foojay
Introducing Bld: A New Pure Java Build System
We created bld because we're not really interested in build tools. We use them because we have to, but we'd rather just get on with coding.
😁20
Тут вот про потенциальную утечку памяти из-за какого-нибудь
#java #memory #leak
new HashMap<>() {{ ... }} в Java коде. Хорошее дело. Кажется, когда-то мне такие и у нас приходилось чинить.#java #memory #leak
👍5
Тут на последнем пирлабе зашла речь про неблокирующий I/O. Ну и кто-то поделился ссылкой про io vs. nio в Java.
#java #io #nio
#java #io #nio
🔥3
Тут конечно сами себе палки в колёса вставляют, но очень интересно. Чел ломает
Только представьте, какая красота будет, если злонамеренно такое пропихнуть в какую-то популярную либу и сломать всем интернированную, скажем,
#java #string
java.lang.String. Чтобы строка не была .equals самой себе и всё в таком духе. И совсем не больно! Только представьте, какая красота будет, если злонамеренно такое пропихнуть в какую-то популярную либу и сломать всем интернированную, скажем,
"id".#java #string
🔥12⚡1
Недавное видели игрушечную JVM на Rust. Нашёлся более амбициозный проект - пишут JVM на Go. Тут пост про то, как машинка находит методы классов. А тут несколько ссылок, если захочется больше деталей.
#jvm #go #java
#jvm #go #java
🔥2
Тут ничего и не добавишь, заголовок говорит сам за себя: A one-sentence summary of each new JEP from JDK 21
#java #jdk
#java #jdk
👍1
Feature freeze для JDK 22 выглядит прямо прикольно. Много интересных приятных изменений. Прямо разворошили этот улей за последние несколько лет.
#java #jdk
#java #jdk
👍7
Чуваки написали JVM на Java с фокусом на portability. Определённое подмножество Java уровня 1.5 они транспилируют в кучу других языков, опираясь, например, на их GC. Это всё позволяет, в том числе, запускать Swing приложения прямо в браузере (наконец-то!)
Тут можно почитать чуть детальнее, а тут можно потыкать браузерные демки.
#java #jvm #vm
Тут можно почитать чуть детальнее, а тут можно потыкать браузерные демки.
#java #jvm #vm
👍1
Тут некогда студентка рассказывает, как ей работалось над кодом, который старше, чем она сама, в US National Ignition Facility. Код с кусками из Java 4, много миллионов строк, не очень много тестов. Я бы подсветил две вещи:
- Что там за код, мы не знаем, может просто какой-то advanced калькулятор, от багов в котором учёным не поплохеет.
- Показывает всю мощу Java. Четвёртая, восьмая, одиннадцатая, всё переварится.
#code #programming #java
- Что там за код, мы не знаем, может просто какой-то advanced калькулятор, от багов в котором учёным не поплохеет.
- Показывает всю мощу Java. Четвёртая, восьмая, одиннадцатая, всё переварится.
#code #programming #java
Mirawelner
The Codebase of a National Lab I Worked At
A look into the quality (or lack therof) of the code in a very high-stakes facility.
👍3
Супер поучительная история. Чел работал над гигантской кодобазой на Java, заоптимизированной донельзя. Система работала на огромном кол-ве машин, поэтому каждый процентик экономии имел большой смысл. Наш протагонист нашёл пространство для ещё одной оптимизации: маршалинг long'ов в VarInt байты. Героически покоряя JIT и извергая ASM инструкции, он добился 4-х кратного ускорения этой небольшой функции. Раскатывает на прод - 0 эффекта. Копает, в чём дело, и, внезапно, facepalm. Никто особо не маршалит настолько больших чисел, чтобы оптимизация дала эффект. Мораль: не надо бенчмаркать на рандомных данных.
#optimize #java #benchmark
#optimize #java #benchmark
😢12😁3❤1👏1
Чел пилит свой JVM bytecode декомпилятор и решил рассказать, как непросто работать с try-catch блоками.
#java #jvm #exception
#java #jvm #exception
purplesyringa's blog
JVM exceptions are weird: a decompiler perspective
Some time ago, I played around with decompiling Java class files in a more efficient manner than traditional solutions like Vineflower allow. Eventually, I wrote an article on my approach to decompiling control flow, which was a great performance boost for…
👍4❤2🔥1
В докладе объясняют, почему final в Java всё ещё не совсем честное immutability, как рантайму приходится с этим мириться, и какие изменения грядут, чтобы final наконец стал настоящим.
#talk #java #jvm
#talk #java #jvm
YouTube
Finally, final means final A deep dive into field immutability in Java by Per Minborg
Java's main tool for expressing immutability is the keyword 'final'. But did you know that the current JVM must assume some 'final' fields will change, and why this will slow down your application? In this talk, we will take a deep dive into the semantics…
❤2🤝1