Тут вот про потенциальную утечку памяти из-за какого-нибудь
#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