IntelliJ IDEA
IntelliJ IDEA – the Leading Java and Kotlin IDE, by JetBrains
Java Annotated Monthly – January 2023
Start the year by cultivating a good habit – reading JAM at the beginning of the month! Welcome to the January edition of Java Annotated Monthly, your update on all things Java! We’ll cover the latest news, updates, and developments in the Java ecosystem and highlight some of the best technologies for developers. Whether you’re an experienced developer looking to stay up-to-date with the latest trends or a beginner just starting, there’s something for everyone in this blog. So let’s dive in and see what’s new in the world of Java and related technologies!
Java News
Java News Roundup 1, 2, 3 – All of the most important updates related to Java are here!
Quality Outreach Heads-Up – Valhalla: LW4 Early-Access Builds – Get the early access build to test the performance and migration impact of Value Objects (Preview) on your applications. This build also includes other features in the release notes.
Java Tutorials and Tips
Java InfoQ Trends Report – December 2022 – Check out how the InfoQ Java editorial team sees emerging trends within the Java space, including Java, related languages like Kotlin and Scala, the Java Virtual Machine (JVM), and Java-based frameworks and utilities.
What Should I Know About Garbage Collection as a Java Developer? – You’ll find out what stages Garbage Collection (GC) includes, how the Generational Heaps technique works, and why Live Set and Allocation Rate are essential. You’ll also become more familiar with various types of Java Garbage Collectors.
Maven, What Are You Waiting For?! – The author shares his experience building Flink with Maven 3.8.6 and the issues he faced in the process. He then describes these problems and how he has overcome them.
Java 20: A Sneak Peek at the Panama FFM API (Second Preview) – Get familiar with the second preview of the Foreign Function & Memory API (FFM API). Learn what changes and improvements will be introduced in Java 20.
24 Java Features You Missed In 2022 – There were many significant updates that Java 18 and 19 brought in 2022, but this article isn’t about them. It is focused on the lesser-known features like additions to Future and ForkJoinPool, to HashSet and HashMap, Security and GC improvements, Custom Localized Date-Time Formats, an Internet Address Resolution SPI, and much more.
Glimpse at Java 20: Pattern Matching, Concurrent Programming, and Valhalla – Inside Java Newscast #38 – Check out this 10-minute video about the most awaited Java 20 features: Sequenced Collections, Pattern Matching with the support of nesting and type inference, Loom, the new Scoped Values, and an update on Valhalla and value objects.
Java Value Objects in Action with Valhalla – JEP Café #15 – This video tutorial introduces value objects and discusses some of the plans for the Valhalla project.
How To (Mis)use Virtual Threads – Is there a magic button that enables Virtual Threads in your code? Find out in this article.
Switch Case vs. If-Else-If vs. Polymorphism in Java – Example Tutorial – The author shares his thoughts about the benefits and risks of switches in Java and provides examples of using switch case vs. if-else and Polymorphism vs. if-else.
Viewing Dependencies in IntelliJ IDEA – The author shows various places where you can see external dependencies your projects contain, from a config file to the Dependency tool window.
Building and Deploying Java Client Desktop Applications With JDK 17 and Beyond – In this 30-minute video, Phil Race and Kevin Rushforth help you choose a suitable UI technology for your business needs. They’ll discuss whether it should be Java, Swing, or JavaFX and if it’s possible to combine them.
Visualizing Brain Computer Interface Data Using JavaFX – Trinity is a JavaFX application that allows users to explore hundreds of layers in AI models and hyper-dimensional data by visualizing them in 3D. In this article, you’ll learn how this project started, what visualization tools it uses, and why Java and JavaFX are perfect for it.
Why the Cool Kids Use Event Loops – Loops have been in active use since the 1990s, but are they still good enough for programmers today? That’s the question that Rob Austin, a Java developer with more than 20 years of experience, is trying to answer. He shares example code with a Chronicle Event loop.
What Java Version Are You Running? Let’s Take a Look Under the Hood of the JDK! – After reading this article, you will learn to check your Java version in multiple ways and get much more information than you might expect.
Languages, Frameworks, Libraries, and Technologies
This Week in Spring 1, 2, 3 – Get a quick overview of the latest Spring news and updates for December.
Spring Boot 3.0 Goes GA – Spring Boot 3.0 is now generally available in Maven Central. This is the first major revision of Spring Boot since 2.0, released 4.5 years ago. The highlights of this version include a Java 17 baseline, Support for generating native images with GraalVM, improved observability with Micrometer and Micrometer Tracing, and support for Jakarta EE 10 with an EE 9 baseline.
Java Champion Josh Long on Spring Framework 6 and Spring Boot 3 – Josh Long, Java Champion and first Spring Developer Advocate at VMware, shares his opinions and thoughts about Spring Boot 3 and Spring Framework 6, which have started a new generation for the Spring ecosystem.
Entity to DTO – How-To – This article introduces data transfer objects (DTO) and explains where you may want to use them. It also describes how to implement them as POJOs or records.
Async-Profiler – Manual by Use Cases – You can find numerous examples of using async-profiler. All of them are composed based on real-world problems the author solved during his career.
Docker Best Practices – You can learn to write Dockerfiles and run containers properly. The tips and tricks are shown on Java applications.
Spring Boot Docker Best Practices – Learn to add healthcheck to your Dockerfile, work with Docker Compose, and use multi-stage builds and Docker Layers.
A Bootiful Podcast – Josh Long and Vaadin’s Marcus Hellberg talk about rich UIs, Vaadin Flow, the new Hilla Framework, GraalVM native image compilation, and more.
JFR Event Collection – This article introduces the JFR Event Collection website that provides an up-to-date collection of all OpenJDK JFR events for every JDK since 11 and gives you extra information like configuration properties, fields with their types and description, additional descriptions collected by JFR users, and more.
Running and Building Gradle With Different JDKs – Sip of Java – You don’t have to wait for Gradle to support the latest JDKs or early-access builds to build your projects. This article shows you how to run Gradle with one JDK while building and testing with a different JDK version.
How to Generate AI Texts & Images With Quarkus & OpenAI – In this video, the author uses ChatGPT to make coding and testing tasks in a Quarkus application easier.
JavaDoc Code Snippets and Friends – If you write technical documentation in Java Doc, this article is for you! It explains using the @snippet inline tag to correctly insert code examples in blocks and pull in code from external source files. It also describes @highlight, @link markup comments, and more.
Programmer’s Guide to JDK Flight Recorder – Watch this 24-minute video for a quick introduction to JDK Flight Recorder. You’ll find out what JFR events and custom events are and how to run, filter, and stream them.
Using JFR and JMC To Root Cause a Performance Bug in JMC Caused by a Typo in JFR – Read this article to learn a trick for solving a performance issue.
Kotlin Corner
KotlinDL 0.5 Has Come to Android! – KotlinDL 0.5 is now available and focuses on the new API to easily deploy ONNX models on Android. We have reworked the Preprocessing DSL and introduced support for ONNX runtime execution providers. Learn about these and other changes in the article.
Threads vs. Coroutines – ParallelMap Performance – Is it possible to speed up coroutines? Is there a way to use a particular ForkJoinPool to run the stream code quickly? These and other questions are covered in this video.
Threads vs. Coroutines – Errors and Cancellation – In this video, Duncan McGregor analyzes the behavior of five parallelMap implementations (Java streams, streams with a ForkJoinPool, raw threads, a threadpool with futures, and coroutines).
A Birds-Eye View of Arrow: Error Handling – This article describes various error handling methods with nullable types, Result, or Either.
Terminal Operators in Kotlin Flow – In his video, Lukas Lechner shows how to use terminal operators to execute a flow and receive the values that the flow emits. The following terminal operators are covered: collect {}, first(), last(), single(), toList(), toSet(), fold(), reduce().
Advent of Code 2022 in Kotlin – Here is the playlist with all of the live streams on Advent of Code 2022.
CodeQL Code Scanning Launches Kotlin Analysis Support (Beta) – GitHub code scanning now includes beta support for analyzing code written in Kotlin. This support is an extension of our Java support, which allows it to take the best from all of our existing CodeQL queries for Java and use a range of mobile-specific queries, covering issues such as Intent handling, Webview validation problems, fragment injection, and more.
Kotlin Coroutines Use Cases for Domain Layer – Find out how to use Kotlin coroutines in the domain layer of an application, which is the layer where business logic is implemented. In this layer, it is important to avoid operating on coroutine scope objects and exposing suspending functions.
Kotlin Coroutines Use Cases for Presentation/API/UI Layer – In this article, you can learn to launch coroutines in the Presentation layer of an application.
Shout-Out to Kotlin Multiplatform Mobile Content Creators! – The Kotlin team has introduced the Kotlin Multiplatform Mobile Content Creators Recognition Campaign, which recognizes and celebrates the work of the community’s article, video, and sample authors. As part of this campaign, the author shares some great content pieces.
Culture and Community
Top 8 Most Demanded Programming Languages in 2022 – Based on the analysis of more than 12 million developer jobs, DevJobsScanner picked job offers which explicitly required knowledge of a programming language to find out which ones have been trending this year.
Introducing a Product Delivery Culture at Etsy – Read this article to learn how the PDC approach helped Etsy increase revenue by $11 million.
Great Leaders Manage Complexity With Self-Awareness and Context Awareness – What signs identify great leaders? Find out in this article.
Conferences and Events
SpringOne TLV World Tour Trip Report – You can read the Shai Almog review on the sessions he attended during the SpringOne Tour in Tel Aviv.
And Finally
Here are some top picks from the IntelliJ IDEA blog and YouTube:
IntelliJ IDEA Pro Tips: Clipboard History – In this short yet helpful video, Helen Scott shows you all of the capabilities of IntelliJ IDEA’s Clipboard History. For example, you can learn how to copy multiple items from your code in different places to your clipboard and paste them in one action. The tricks are found inside the screencast!
HTTP Client CLI – Run Requests and Tests on CI – Read this article to learn more about our new IDE-independent product – the HTTP Client CLI. It allows you to run HTTP requests and tests from a terminal or on a continuous integration server without an IDE.
That’s all for today! If you’d like to suggest content for the next issue of Java Annotated Monthly, please email us at (JAM@jetbrains.com) or get in touch on Twitter.