Advanced Web Machinery
advancedweb.hu · Personal blog · on HN since 2015
Hungarian consultancy blog on Java, JVM, JavaScript and DevOps, best known for a categorized list of Java features since JDK 8.
What HN saysHN commenters repeatedly recommend its categorized list of Java and JVM features since JDK 8 as a good overview of recent Java changes.
31HN people shared it
10linked it in comments
216stories submitted
1.3Kstory points
8 months agolast shared
2015people per year2026
Most-shared posts
- 1A categorized list of all Java and JVM features since JDK 8 to 215 people · 8 points · first shared 2023 · discussion on HN
- 2New language features since Java 8 to 174 people · 345 points · first shared 2021 · 351 comments on HN
- 3A categorized list of all Java and JVM features since JDK 8 to 163 people · 322 points · first shared 2021 · 241 comments on HN
- 4One year with Vim3 people · 8 points · first shared 2016 · 1 comments on HN
- 5Fully automated dockerized Let's Encrypt reverse proxy2 people · 71 points · first shared 2016 · 15 comments on HN
- 6A Categorized List of All Java and JVM Features Since JDK 82 people · 29 points · first shared 2019 · 1 comments on HN
- 7Ditch JS For loops2 people · 19 points · first shared 2017 · 12 comments on HN
- 8Profile-based optimization techniques in the JVM2 people · 10 points · first shared 2017 · discussion on HN
- 9JavaScript best practice: use return await2 people · 7 points · first shared 2025 · 6 comments on HN
- 10Parallel Processing in JS2 people · 5 points · first shared 2016 · discussion on HN
- 11What to expect when you decide to migrate from JavaScript to Typescript2 people · 5 points · first shared 2018 · discussion on HN
- 12A categorized list of all Java and JVM features since JDK 8 to 152 people · 4 points · first shared 2020 · discussion on HN
- 13Adding continuous rendering to the PlantUML server2 people · 3 points · first shared 2019 · discussion on HN
- 14Automated tests with Eclipse using MoreUnit2 people · 3 points · first shared 2015 · discussion on HN
- 15Working with the system clipboard in Vim2 people · 3 points · first shared 2018 · discussion on HN
What HN people wrote when they linked it
KronisLV · 2021-10-10
I sadly didn't write everything down, or didn't keep references to the GitHub issues, but here's a few of the things that i ran into.
Here's a list of the things that were available in JDK 8 and no longer are: https://advancedweb.hu/a-categorized-list-of-all-java-and-jvm-features…
When you stumble upon something like that, at best you can import a Maven dependency with a version that has what you need, at worst you need to rewrite the code to use another library or set of libraries.
If you have any low level logic like custom class loaders written against older JDK versions (think before 8), then they'll be forwards compatible until 8 for the most part, but will break afterwards. Coincidentally, reading code that deals with low level logic is also not easy to do, especially if it's not commented well.
If you rely upon reflection, or use advanced language features (like the JasperReports framework for generating PDFs, which also has a build step for building the reports), in some cases things might compile but not work at runtime due to class mismatches.
Many frameworks need new major versions to support newer releases than JDK 8, for example Spring Boot 1.5 needs to be upgraded, so you're also dealing with all the changes that are encapsulated by your dependencies. In another project that i also migrated, needed to rewrite a lot of web initialization code for Spring Boot 2.X.
Not only that, but with those framework changes,…
severino · 2026-03-17
You might find those useful:
https://www.marcobehler.com/guides/a-guide-to-java-versions-and-featur…
https://advancedweb.hu/a-categorized-list-of-all-java-and-jvm-features…
And this more like a reference:
https://javaalmanac.io/
pjmlp · 2025-03-26
Plenty,
Up to Java 21,
https://advancedweb.hu/a-categorized-list-of-all-java-and-jvm-features…
Remaining ones until Java 24, released last week,
https://www.infoworld.com/article/2335077/jdk-22-the-new-features-in-j…
https://www.infoworld.com/article/2336682/jdk-23-the-new-features-in-j…
https://www.infoworld.com/article/3491404/jdk-24-the-new-features-in-j…
Additionally, commercial AOT compilers have taken a big hit, as two great options are now freely available,
https://www.graalvm.org (Basically LLVM, but in Java)
https://eclipse.dev/openj9/docs/aot
With them there is also the rise of AOT friendly frameworks like Quarkus and Micronaut.
62951413 · 2023-03-21
dlandis · 2022-02-21
Also, it bears mentioning that there has been a lot of momentum around new language feature in the past 5 or so years.
Good overview here:
https://advancedweb.hu/new-language-features-since-java-8-to-17/
And many other changes in the pipeline too..
nooorofe · 2021-10-24
https://advancedweb.hu/new-language-features-since-java-8-to-17/#local…
> Available since: JDK 11 (Without lambda support in JDK 10)
TOC is missed up, there is no java-10 at all.
teh_klev · 2021-10-24
Introduced in Java 10:
https://advancedweb.hu/new-language-features-since-java-8-to-17/#local…
BoyRobot777 · 2021-09-14
https://advancedweb.hu/a-categorized-list-of-all-java-and-jvm-features…
Only missing stuff from 17, but that's a short list.
mopierotti · 2021-09-14
Here's another similar summary, but with code examples and categories.
https://advancedweb.hu/a-categorized-list-of-all-java-and-jvm-features…
madisp · 2020-03-26
IIRC the JVM optimizes very aggressively based on runtime profile, and just adds traps to the optimized-out paths to collect new runtime profile.
Imagine code like this, where at runtime foo is always null
if (foo != null) {
foo.bar();
foo.baz();
}
if foo is always null the compiler will just remove all of the statements inside and places a trap there. If foo happens to be non-null (say, due to external environment changes) then the it hits the trap and the whole method is deoptimized and goes through the profiler again.
The optimizations in the JVM are quite fascinating - https://advancedweb.hu/profile-based-optimization-techniques-in-the-jv…
I imagine javascript engines employ similar techniques