You've found a great place for Java programming 101 content. In this article, we've gathered the highest-performing articles from the past year on this topic on Red Hat Developer. This article introduces you to all things related to Java, from its essential business benefits to the most modern frameworks and tools.
What is Java and where did it come from?
Java is a computer programming language that is widely used for developing enterprise, web, and mobile applications, and has been in use for over two decades. Java has been used to code millions of applications that run on the internet, and it can be used as a platform for developing applications for mobile devices, enterprise software, big data applications, and server-side technologies.
The Java programming language was developed in 1991 by James Gosling and a team of computer scientists at Sun Microsystems. They used the language to develop software for the newest niche market known as the World Wide Web. The group released Java to the public in 1995, making it available for use in applications ranging from internet browsers to video game development.
How is Java being used?
Java is a powerful, versatile, open source language that can be used for many applications. It is freely available and can be used to make software that is both localized and distributed. Some examples of Java's uses are:
- Video game development: Java is a popular language for mobile, computer, and video game development. Many modern games that use cutting-edge technology, such as machine learning or virtual reality, are built with Java.
- Cloud computing: Java's versatility allows developers to Write Once, Run Anywhere (known as WORA) on a wide range of devices. Cloud providers are increasingly choosing Java to power decentralized applications in the cloud.
- Data processing: Java is used to process huge amounts of complex data sets and can analyze them in real time.
- Artificial intelligence: Java is well-suited for developing artificial intelligence applications. Its speed and stability make it a perfect platform for building powerful machine learning systems, and its wide array of libraries makes it easy to implement natural language processing techniques and deep learning algorithms.
- Internet of Things: Java is used to create applications for sensors and hardware in edge devices, which can connect independently to the internet. Edge devices include fitness trackers, robots, autonomous vehicles, and devices that transmit images and videos.
Java tutorials to make you a DevOps superhero
Red Hat offers incisive articles on numerous Java topics. The following sections list some of the most interesting articles for each topic.
Distributed transaction patterns for microservices compared
Without getting into a deep discussion about transactions, we can summarize this article by saying that Bilgin Ibryam summarizes the main approaches and patterns for coordinating writes to multiple resources.
Why should I choose Quarkus over Spring for my microservices?
As interest in microservices and containers grows, Java developers are struggling to make their applications smaller and faster. Today's computing environment demands that applications respond quickly to requests, be suitable for running in volatile environments such as virtual machines or containers, and support rapid development.
Garbage collection and memory management
Best practices for Java in single-core containers
Teams that use Java need to pay special attention to certain aspects of container-based deployments. This article, written by Ben Evans, focuses on the choice of garbage collector and how the default choice is based on available CPUs and memory.
How to choose the best Java garbage collector
Join Aashish Patil in how garbage collection performs dynamic memory management in many modern programming languages, including Java. Garbage collection lightens the load of worrying about memory management, freeing developers to focus on other aspects of application development. This article is the third in a four-part series that explains how to improve Java performance by choosing and tuning a garbage collector. (You can also start with the first article in the series.)
Java libraries and tools
An easier way to generate PDFs from HTML templates
If you need to create invoices, reports, IDs, or other documents in a PDF format, you might consider using Java libraries and tools. This article by Muhammad Edwin introduces wkhtmltopdf, a tool for creating PDF files from HTML. You'll discover how to set up your data and call the wkhtmltopdf utility from a Spring Boot web application running on the Red Hat OpenShift Container Platform.
Build a REST API from the ground up with Quarkus 2.0
In this article, led by Stephen Nimmo, you will revisit the Customer API from a previous article in the series and see how it can be improved thanks to advances in the Quarkus framework.
How to create Kafka consumers and producers in Java
This article helps you get started working with producers and consumers in the Kafka data streaming service from an object-oriented perspective. The article covers the basics of creating and using Kafka producers and consumers in Java.
How the JIT compiler boosts Java performance in OpenJDK
This article introduces the JIT compiler built into HotSpot, OpenJDK's Java virtual machine. After reading it, you'll have a solid understanding of HotSpot's multitiered execution model and how it balances the resources required by your Java applications and the compiler itself. You'll also see two examples that demonstrate how a JIT compiler can use advanced techniques—deoptimization and speculation—to boost application performance.
Red Hat expands support for Java with Eclipse Temurin
Red Hat has provided support for Temurin since its early development. Now we are pleased to announce that Red Hat is expanding our contributions to include support for the Eclipse Temurin project.
Observability in 2022: Why it matters and how OpenTelemetry can help
This article tells you about observability, a practice and environment for monitoring your software. We'll look at why observability is important, how it works, and what to look out for when using it.
How Helm and JKube simplify Kubernetes management, part 1
Follow along with Rohan Kumar to show how to use Helm and JKube to simplify Kubernetes manifest management for Java projects. You'll learn how JKube makes it possible for Java developers to automatically generate and publish Helm charts.
The Developer Sandbox is a great place to start
Interested in developing your first application at no cost? Test out the Developer Sandbox on Red Hat OpenShift and learn by doing.