GraalVM In OpenJDK And More JavaOne Announcements - Inside Java Newscast #36#videoOracle will contribute GraalVM's just-in-time compiler and native image technology to OpenJDK. It will also create EA and GA builds for JavaFX 20+ and is hard at work at creating generational ZGC to vastly improve ZGC's already impressive performance. And then there's the Java SE Subscription Enterprise Performance Pack, a drop-in replacement for JDK 8 with JDK 17 performance.
Repackaging Exceptions In Streams#postHow to repackage checked exceptions that get thrown in a Java stream pipeline so that they can be thrown without the compiler complaining about it.
Expert Java 8#talkWith this talk, I help you get the most out of lambdas,
Optionals, and default methods, helping you master Java 8's core features
Rebutting 5 Common Stream Tropes#postArticles about Java 8's streams often repeat a bunch of tropes: succinctness, ugly mechanics, anemic pipelines, weak exception handling. This is a rebuttal!
Beware Of findFirst() And findAny()#post
findAny()work with any number of elements in the stream. Make sure to
reduce(toOnlyElement())if there should be at most one.
Stream Performance - Your Ideas#postAnother post about stream performance - this one implements your ideas about how else to approach the topic.
Stream Performance#postA close look at stream performance. How do they compare to for and for-each loops oder arrays and lists. And what role plays boxing?
Java 8 SE Optional, a strict approach#postStephen Colebourne presented his pragmatic approach to using Optional. I argue for a stricter one that gets us further without considerable downsides.
Casting In Java 8 (And Beyond?)#postProposal to implement new casting methods on Java's
Class. They aim to fulfill the need for improved ways to cast which was created by Java 8.
Getting Rid Of Anonymous Classes#postAnonymous classes are verbose and obfuscating. Functional implementations can oust them from their last strongholds (mainly abstract classes).
Interface Evolution With Default Methods – Part II: Interfaces#postWhy interface evolution with default methods does not work for whole interfaces - at least not smooth enough to be practical.
Roll Your Own Pirate-Elvis Operator#postJava has no Elvis operator (or null coalescing operator / null-safe member selection) but with lambda expressions / method references you can roll your own.
Interface Evolution With Default Methods - Part I: Methods#postPatterns for interface evolution with default methods: gradually add, replace and remove interface methods without breaking client code.
Value-Based Classes#postAn explanation of value-based classes in Java 8. Why do they exist? What are their limitations? How (not) to use them?
Everything You Need To Know About Default Methods#postCovering literally everything there is to know about Java 8's default methods.
New Javadoc TagsThere are new Javadoc tags used in Java 8:
@implNote. Take a look at their history, meaning and use on command line and with Maven.
Instances of Non-Capturing Lambdas#postSee how Java's creation of instances of non-capturing lambda expressions can lead to unexpected and possibly bug-inducing behavior.
Impulse: "Lambdas In Java: A Peek Under The Hood"#postDiscussing the talk "Lambdas in Java: A peek under the hood" given by Brian Goetz at the goto; conference 2013 in Aarhus.
SerializeA summary of why you can't serialize
Optionaland what can be done to deal with that limitation if necessary.
Why Isn'tDiscussing the reasons for not making Java 8's new type
The Design ofA digest of how
Optionalwas introduced in Java 8, summarizing the many discussions about it and their key points based on the mail archive of JSR-335.
Intention Revealing Code WithWrite intention revealing code with Java 8's new type
Optionaland prevent most NPEs. This is not optional!