Java Annotated Monthly – November 2017
JavaOne usually has a lot of great presentations covering the Java and JVM ecosystem. This year was no exception, and the timing coinciding nicely with the JDK 9 release means that all the Java 9 “up-and-coming features” talks could finally be definitive on what’s in Java 9 and how it actually works. In this month’s Java Annotated we’ve collected links to some of the more valuable talks from the conference so you don’t even need to move from your desk to get the benefit of the JavaOne experience. Oh, and obviously there’s other news, articles and information in this edition.
This month, JavaOne was the place a lot of the Java news was either announced, or the news that was announced earlier was expanded upon. On top of that there was a lot of great content to learn from, covering all versions of Java. This section includes a pick of the available videos. Since not everyone finds videos the easiest to learn from, we still have the usual selection of articles in the other sections below.
- Plans to Open Source the JDK and Address Shortcomings in Java EE – article summarising the JavaOne Opening Keynote (video), which also features JetBrains’ own Eugene Petrenko demoing IntelliJ IDEA’s support for Jigsaw.
- JavaOne Developer Keynote: Oracle Talks Blockchain, Bots and Serverless – article summarising the key points for those who prefer to skim than watch the whole video.
Presentations – Java 9
- Modules in One Lesson – recommended: Mark Reinhold covers the important stuff you need to know about the new module system
- Migrating to Modules – recommended: Mark Reinhold levels up from the previous talk and covers using the module system in existing code
- Modular Development with JDK 9 – recommended: Alex Buckley tells you what you need to do if you’re going to start developing with the new module system.
- JDK 9 Language, Tooling, and Library Features – recommended: Joe Darcy talks about non-Jigsaw features
- Collections Refueled – recommended: Stuart Marks covers the new collections factory methods in Java 9
- Prepare for JDK 9 – recommended: Alan Bateman covers some of the issues you might run into when moving Java 9
- JDK 9 Hidden Gems – stuff that isn’t Jigsaw
- The Good Cop/Bad Cop Guide to Java 9 – looking at some of the new features in terms of their pros and cons
- Exploring Java 9 with REPL
- The G1 GC in JDK 9
- Designing for Modularity with Java 9 – a more advanced talk about the module system
Presentations – Lambdas and Streams
- It’s Java, but not as we know it – Simon Ritter on lambda expressions.
- Lambda Chops: Recipes for Simpler, More Expressive Code – more lambda tricks
- Streams in JDK 8: The Good, the Bad, and the Ugly
- Streams in the Wild – live coding (using IntelliJ IDEA of course!) of advanced use of the the Streams API
- Asynchronous API with CompletableFuture: Performance Tips and Tricks
Presentations – Performance, Parallelism and Concurrency
- Full Speed Ahead! Ahead of Time Compilation for Java SE – an experimental feature in Java 9 that’s not officially supported yet.
- Troubleshooting Memory Problems in Java Applications
- Java at Speed: Getting the Most Out of Modern Hardware – in case you still think Java is slow.
- Parallel Streams, CompletableFuture, and All That: Concurrency in Java 8
Presentations – Other
- JUnit 5: New Opportunities for Testing on the JVM
- Immutable Collections – covering persistent collections.
- Java EE: Heavyweight or Lightweight—Mythbusters
If you want to keep an eye on what’s coming next for Java, the proposed schedule for JDK 18.3 and the list of features is on the JDK project page. Yes, we barely get a chance to breathe after Java 9 and it’s straight on to the next version! Of course there’s still plenty of great content covering Java fundamentals.
- Oracle Java SE Support Roadmap – it’s important to understand that Java 9 is not a long term support version. If you need extended support, you need to stick on Java 8 or be ready to move to 18.9 (due next September).
- Oracle Joins Serverless Race With Open Source Fn Project – serverless is a silly name, but looks like the trend is here to stay and more applicable than ever to Java developers.
- Z Garbage Collector – another new Garbage Collector for Java is announced
- Java Council Episode 19 (podcast) – in which we discuss serverless being a silly name, Java’s 6 month release cycle and support roadmap, EE4J, and a number of other news items that also appear in this edition of Java Annotated.
- Understanding Java 9 Modules – a detailed introduction to the module system appears in the most recent Java Magazine, which also has more Java 9 content and an introduction to Clojure.
- Java 9: HTTP Client and Process API in JShell – here you get to see how the new REPL is useful for exploring features.
- Creating Multi-Release JAR Files in IntelliJ IDEA – what are they and how can you create them?
- GC Explained: Times – it’s always useful to understand a bit more about the garbage collector.
- A Deep Dive Into JMX
- Java performance optimization tips: how to avoid common pitfalls – some good tips here, but remember that most code doesn’t need to be optimised upfront, only when a problem is identified.
- Trust Your Pipeline: Automatically Testing an End-to-End Java Application – understanding the different types of automated tests and their value is really important to having a valuable Continuous Delivery Pipeline.
- JUnit 5 Tutorial: Writing Nested Tests
- Java knows your type – Type inference in lambda expressions, and tips for improving parameter naming
- 3 Ways to Diff Java Code in IntelliJ IDEA
There’s so much Android news that’s Kotlin-related, but for the sake of this newsletter I’ve tried to limit the Kotlin love and highlight the Java- and plain-Android-specific articles. Still, the occasional Kotlin article will sneak in…
- Android Studio 3.0 ready for download
- Package-by-Feature in Modularised Android Projects – Android might not be using Java 9 (yet), but that doesn’t mean you can’t separate your code into something resembling modules.
- Modular Architecture for faster Build Time – or: using Gradle to modularise your application
- Improve your tests with Kotlin in Android Part 1 and Part 2
- Keeping the Daggers Sharp – best practices for working with Dagger 2
- Create a Clean-Code App with Kotlin Coroutines and Android Architecture Components
- Genymotion vs Android Emulator – which one is faster?
- Architecture Components:Paging Library
- Announcing android-job library 1.2.0 – Evernote’s answer to scheduling background jobs
Languages, Frameworks and Libraries
After all the drama around the stalling of Java EE last year, now the big news is not only was Java EE 8 actually released, but Oracle has decided to open source it. Obviously other news in the libraries and frameworks space is largely dominated by how Java 9 impacts the ecosystem.
- Eclipse Enterprise for Java FAQ – common questions about open sourcing Java EE. Like, why is it now called EE4J?
- Eclipse Foundation welcomes EE4J support from Apache NetBeans, IntelliJ, and others – remember the Eclipse Foundation covers so much more than just an IDE
- The Future of Java EE, A Q&A with David Blevins: The Eclipse Foundation, EE4J and MicroProfile
- Spring Data release train Kay goes GA – featuring reactive data access for Cassandra, Couchbase, MongoDB & Redis; Kotlin support and general Java 9 compatibility.
- Spring Boot 2.0.0 M5 available now – including initial support for Java 9
- Migrating a Spring Boot application to Java 9 – A case study.
- IBM Introduces Open Liberty, an Open Source Runtime for Java Microservices
- The Java Evolution of Eclipse Collections – formally known as GS Collections and developed by Goldman Sachs
- Managing the Reactive World with RxJava – Reactive has been a key buzzword for a while now, but with the introduction of the Reactive Streams API in Java 9 this approach is becoming even more important to understand.
- State of Gradle Java 9 Support
Come and say hello at the booth, see our presentations and ask us any questions!
- 2-3 Nov: KotlinConf, San Francisco We are super excited about our first Kotlin conference!
- 6-10 Nov: Devoxx, Antwerp
- 13-14 Nov: JavaDays, Prague
- 27 Nov-1 Dec: AWS re:Invent, Las Vegas
- 1 Dec: GDG DevFest, Malaga (Hadi Hariri is speaking)
News and topics from the IntelliJ IDEA blog and YouTube channel that you may have missed:
- Creating Multi-Release JAR Files in IntelliJ IDEA
- What’s New in IntelliJ IDEA 2017.3 EAP for JAVA EE Developers
- Catch up with what’s new in 2017.3.
- The video for Real World Java 9 with me, Trisha Gee, is now available.
- The video for Reactive Spring with Josh Long is also now available
- New video tutorial on creating and running automated tests in IntelliJ IDEA. You’re all experts in this area I know, but feel free to share with the others in your team.