Java Annotated Monthly – June 2018
No really big Java news this month, but plenty of good articles to help us to improve as developers and as team members. There’s how-tos for Java 8, 9 and 10, some presentations from conferences earlier in the year, and a smattering of design, architecture and culture information.
The faster release cadence means all the different versions of Java that are current production-ready are just going to be in the plain ol’ Java section from now on. There’s still plenty of Java 8 how-tos coming out, more information about how to use Java 9 features now people are using them in anger, and “var” is still causing discussion.
- Debugging an annotation processor using IntelliJ IDEA in 2018
- Parallel and Asynchronous Programming in Java 8 – a nice summary of the relevant features in Java 8
- Exploring Java 9 Module System and Reactive Streams
- G1 GC: Reducing Memory Consumption by 20%
- Behind the Scenes of the Finalize() Method – hopefully you already know not to use it if possible, here you find out why it’s a tricky beast
- Converting Java Map to List – shows you how, using traditional methods and Java 8 Streams, but begs the questions “why?” and “what’s the performance like?”
- Java at Speed (presentation) – presented by Azul, but contains valuable information for understanding any JVM
- var and Java 10’s expanded type inference (Java Magazine, needs email registration)
- Functional Performance (presentation) – in relation to Java performance
- Martin Thompson on Aeron, Binary vs Text for Message Encoding, and Raft (podcast with text version) – the presenter of the previous talk goes into the details of his high speed messaging system
- Understanding and Leveraging the Java Stack Trace – how to inspect the stack before and after Java 9
- Deferred Execution With Java’s Supplier – or: don’t perform operations if you don’t have to
- Google Could Owe Oracle Billions – sigh, OK, whatever
- Java Ecosystem Survey – don’t forget to fill this in if you want the results to accurately represent your work
Languages, Frameworks and Libraries
This month this section is “stuff that’s Java-related but not in the SDK”.
- Latest Roundup of EE4J Activities for Jakarta EE
- Test-driven Development with Spring Boot – Testing the Harder Stuff (presentation)
- What is a blockchain? – because I suppose we ought to have a vague idea by now
- CodeTalk: Red Hat CTO on Jakarta EE, Cloud Native, Kubernetes, and Microservices (Podcast)
- Kotlin Demystified: Understanding Shorthand Lamba Syntax
- Gradle Releases Version 4.7 with Support for Java 10 – ooh nice! Must remember to upgrade to this just before I give my next live demo, like I usually do…
SOLID never goes out of fashion in OO circles, and it’s always worth re-reminding ourselves of the fundamentals.
- Solid Principles: Interface segregation principle
- SOLID Design Principles Explained – Dependency Inversion Principle with Code Examples
- Don’t blame the dependency injection framework – examples in C# but the message remains the same
- Object Oriented Programming Concepts With a Systematic Approach to Write Better Code
- What developers need to know about security – we really ought to have security in mind while we’re designing/coding
I like to be able to put articles that aren’t just about code here, so expect to see a Culture section pop up more often.
- The InfoQ eMag: Gender, Race, Age and Neurodiveristy for Software Developers – the timing of the release of this coincides nicely with last month’s special focus on diversity
- The ‘Coffee Shop Effect’: Why Changing Your Location Boosts Your Productivity …and it’s not the caffeine
- Happy Cultures and How They Grow High Performers
- Culture, Psychological Safety, and Emotional Intelligence for High Performance Teams
- Software Engineering is different from Programming – I’m not sure I like “Engineer” as a title for what we do, but there is certainly a different mindset as a professional
As usual, JetBrains will be at a number of events in June, either with a booth, a talk, or sometimes both! Looks like the week of 11th June in particular is pretty busy for everyone.
- 7-8 Jun: GeekOut, Tallinn
- 11-12 Jun: JBCNConf, Barcelona – Trisha will be presenting
- 12-14 Jun: Velocity & Fluent, San Jose
- 12-15 Jun: DockerCon, San Francisco
- 15 Jun: mDevCamp, Prague
- 18 Jun: GOTO Amsterdam, Hadi’s running an Advanced Kotlin workshop
- 19 Jun: AWS Summit, Paris
- 19-21 Jun: Scala Days, New York
News and topics from the IntelliJ IDEA blog that you may have missed: