IntelliJ IDEA News Tutorials

Java Annotated Monthly – July 2023

Welcome to Java Annotated Monthly! We have an exciting edition lined up for you, packed with valuable content and insightful articles.

You will learn about AI Assistant by JetBrains, discover new features in the upcoming Java 21 release, and gain valuable instruction from tutorials, tips, and tricks for Java and related technologies. In the Culture and Community section, you’ll find guidance on setting realistic goals and an impassioned criticism of software performance. 

Get ready to enhance your skills and stay ahead in the ever-evolving world of Java development.

Java News

Java News Roundup – 1, 2, 3, 4  – These articles will bring you up to date with the latest happenings in the world of Java. 

All That is in Java 21?! – Inside Java Newscast #50 – How cool will Java 21 be? Find out in this exciting video showcasing incredible new features.

Java 21 – The Other Side – Inside Java Newscast #51 – Hold on to your hats, because JDK 21 has even more exciting updates! In his video, Nicolai Parlog speaks about scoped values, the Key Encapsulation Mechanism API, a new JFR command, various API improvements, and the Generational Shenandoah garbage collector. 

Exploring Java 21’s Intriguing Additions: Unveiling New Features (Part 1) – A N M Bazlur Rahman introduces the improvements to the Character method, String, StringBuffer, StringBuilder, the Collections framework, HashMap, and HashSet.  

Java 21 New Feature: Sequenced Collections – JEP Cafe #19 – In this video, you’ll learn about sequenced collections – collections that have a specific order and allow you to easily access their first and last elements. It also introduces the concepts of sequenced sets and maps.

Structured Concurrency in JDK 21: A Leap Forward in Concurrent ProgrammingJEP 453 has been integrated from the targeted status for JDK 21. The most significant change in the current proposal is that the StructuredTaskScope::fork(…) method returns Subtask rather than Future

New JFR view Command – JDK 21 introduces a convenient JFR view command that shows aggregated event data directly in the shell, allowing you to view application information without dumping a recording file or opening JDK Mission Control.

Java Tutorials and Tips

Objects Utility Class – Sip of JavaBilly Korando demonstrates how to use the Objects utility class, which provides a rich API for performing many common operations on objects.

Collections Utility Class – Sip of Java – Have a look at the Collections utility class, which is used for working with classes in the Collections framework such as Collections, Lists, Maps, and Sets. 

Unnamed Patterns and Variables (Preview) – This article offers insight into the helpful JEP 443, which lets you use an underscore in record patterns – even to replace types and names! 

JDK Mission Control 8.3 – Sip of Java  – JDK Mission Control (JMC) is a control panel for managing, monitoring, and troubleshooting JVM applications. Take a look at some of the key changes introduced in v8.3. 

Class Loader Hierarchies – This blog post provides valuable insights into class loader hierarchies and agents. 

Nulls Against Collectors – Transforming a Java Stream into a List may seem straightforward, but it can lead to unexpected outcomes, especially when handling null values and immutability. Read this article by Grzegorz Piwowarek to get a sense of what to expect. 

Java is Very Fast, If You Don’t Create Many Objects – In certain cases, the expense of creating objects can significantly exceed the cost of their disposal. Find out why with Peter Lawrey

Exploring Java Records beyond Data Transfer Objects – This tutorial provides some examples of working with Java records, helping you take advantage of this feature for cleaner and better design. 

Structured Logging – In this post, you’ll be introduced to the concept of structured logging, supported by straightforward examples. 

Optimize Java Applications and Simplify Uptaking New JDK Versions with Java Management Service – The latest update of Java Management Service (JMS) now empowers system administrators to optimize the performance of their Java applications with personalized expert recommendations. Take a look at how it works. 

The Anatomy of a JVM – Frank Delporte explains what the Java Virtual Machine is and how it works.

Three Ways to Run Your Java Locally with HTTPS – In this post, Brian Demers demonstrates three different ways to get your local Java app running with Transport Layer Security (TLS) in no time.

Foojay Podcast #25: Game Development with Java, JavaFX, and FXGL – While Java and JavaFX may not be the first choices that come to mind when creating game applications, they have incredible potential. Discover why industry experts think Java deserves a place on your game development language list!

Resolve Encoding Issues of Resource Files in Java Projects – This article offers effective solutions to help you solve common encoding issues in Java projects.

Exploring Java Records In A Jakarta EE Context – This article explores the adoption of Java Records in a Jakarta EE application as a data transfer and projection object.

The best way to use one-to-one table relationships – Read this article if you want to know when to use one-to-one table relationships and why they can really help you deal with some performance issues.

Languages, Frameworks, Libraries, and Technologies

This Week in Spring – 1, 2, 3, 4  – Don’t miss any news! 

AI, ML, and Data News Round Up – 1, 2  – If you are keen to keep up with the latest AI and ML news, this series of articles is for you. 

Securing Spring Boot Applications With SSL – Find out why and how the new SSL Bundles feature guarantees easy configuration and usage of custom SSL trust material like key stores, certificates, and private keys.

Docker Compose Support in Spring Boot 3.1 – Learn more about Docker Compose and find out how Spring Boot supports it starting from version 3.1. 

Microservices With Apache Camel and Quarkus – This post proposes a microservices deployment model that is based on Camel and uses a Java development stack, Quarkus runtime, and K8s cloud-native platform.

Effective Java Collection Framework: Best Practices and Tips – This concise article will help you understand Java collections better and use them more efficiently in your daily work. 

The best way to validate the DDL schema with Spring and Hibernate – In this article, you will learn the best way to validate the DDL schema and JPA entity mappings when using Spring and Hibernate.

GitLab Pages preview – In this post, Nicolas Fränkel demonstrates how to preview GitLab Pages and share the preview’s URL with teammates in a couple of steps.

The HTTP QUERY Method – Read this specification to learn more about using the HTTP QUERY request method as a means of making a safe, idempotent request that contains content.

OpenAI Announces Function Calling, Allowing Developers to Describe Functions – OpenAI has recently introduced function calling – a new feature that enables developers to define functions to GPT-4 and GPT-3.5 models and have them generate code that can execute those functions.

Dark Side of DevOps – In this insightful discussion, Mykyta Protsenko, a Senior Software Engineer at Netflix, discusses the trade-offs that companies face when adopting a shift-left approach. He also explores strategies for easing the cognitive load for developers.

Kotlin Corner

Kotlin goes WebAssembly! – Kotlin 1.8.20 introduces the newest multiplatform compilation target for Kotlin – WebAssembly! Together with host Sebastian Aigner, explore a number of  examples, get an overview of WebAssembly as a technology, and learn about its current state and the team’s plans for it. 

Launch Your Kotlin Course: New Materials for Educators – In this video, Anastasia Birillo, a JetBrains researcher and Kotlin instructor at Constructor University and Neapolis University, shares her teaching experience and presents the course materials she and her colleagues have developed. 

The beauty of Kotlin type system – Learn more about types, such as the Any supertype, the Nothing subtype, and more. 

Crash Course on the Kotlin Compiler | K1 + K2 Frontends, Backends – Read this article for a quick overview of why there are so many kinds of compilers and how it affects data transformations.

How to use Arrow’s Either for exception handling in your application – In this article, Matthias Schenk writes about Arrow – a set of different libraries that brings idiomatic functional programming to Kotlin. 

Typed Error Handling in Kotlin – This article is all about sneaky logical errors in Kotlin programming. You’ll dive into some popular error-handling patterns and see how they can mess with our brains and make our code harder to maintain.

Conferences and Events

Here are some events that you might want to attend in person or online in July: 

DevBcn – July 3–5, Barcelona, Spain

WeAreDevelopers World Congress 2023 – July 27–28, Berlin, Germany

OOP 2023 | MUNICH – July 3–5, Munich, Germany

Java Forum Stuttgart – July 13, Stuttgart, Germany

ÜberConf – July 18–21, Denver, USA

JConf Dominicana – July 21–22, Santo Domingo, Dominican Republic

Culture and Community

The Complete Guide to Goal Setting (Backed by Science) – This article breaks down the complexities of setting goals, discusses when and how to set them, and how to know when to give them up.

The Holy Grail syndrome – Find out why you should stop searching for something more in simple yet reliable code constructs. 

Resilience in Coding: Miro Wengner on Thriving in the Software IndustryMiro Wengner shares his professional journey, highlights significant challenges in the field, and reflects on the key moments that shaped his career.

How Big Tech Lost Its Way – Regulation and Freedom – What regulations affect the tech sphere and how do they coexist with freedom of speech? Find out in this article. 

Software disenchantment – Nikita Tonsky passionately expresses his frustrations regarding software performance. Do you share his sentiments? 

And Finally…

This month, one announcement on the IntelliJ IDEA blog eclipsed all the others:

AI Assistant in JetBrains IDEsDmitry Jemerov introduces an exciting new tool in JetBrains IDEs – AI Assistant, which is available to users starting with EAP 6. The current version provides a sample of features that indicates the direction we’re moving in with its development: AI chat, documentation generation, name suggestions, and commit message generation. 

That’s all for today!

If you have any content suggestions for the next Java Annotated Monthly, feel free to contact us via email or Twitter. Remember, article suggestions must be submitted by July 20.

All previous JAM issues are conveniently archived on our dedicated website. If you missed an intriguing blog post or article, you can easily find it there. Happy exploring!

image description