Java has been around for a long time; on May 23, 1995, Java was born. It’s a mature language with a deep library that allows programmers to create anything. Java software runs on Google’s Android, macOS, Windows, Linux, game consoles, and scientific supercomputers. There are plentiful resources for learning Java, and now we have another.
Primary Use Cases
Here are a few real-world use cases I’ve encountered.
- REST Services powered by the Spring Boot framework
- Running best-of-class IDEs like all of the Jetbrains products
- Creation of robust command-line utilities
- Management of observability data within distributed systems with OpenTelemetry
- Building apps on your Android phone, whether it’s a Samsung or a Pixel
The Java Virtual Machine (JVM) is a Java feature that sets it apart from other programming platforms. Java’s primary purpose is to Write once, run anywhere, learn one language, and apply it to any device.
In 1995, the idea of a single platform to rule them all was laughable, and even today, it’s a remarkable feat. Installing the JVM is easy, and it’s free.
I recommend installing the OpenJDK with less Oracle baggage!
If you’re using macOS, I recommend installing jenv to manage various versions of Java. Jenv allows you to add a list of installed JVMs and easily set one as active.
brew install openjdk
$ java -version
openjdk version "1.8.0_242" OpenJDK Runtime Environment (AdoptOpenJDK)(build 1.8.0_242-b08) OpenJDK 64-Bit Server VM (AdoptOpenJDK)(build 25.242-b08, mixed mode)
I won’t rehash the concepts of Java in this article, but I will summarize a few fundamentals you will need to use Java effectively.
Object Oriented Programming
While Java has functional programming built into it, the foundation of Java is OOP. Learning the fundamentals of OOP will help you learn and use Java effectively.
Keywords, variables, identifiers, data types, literals, operators, arrays, strings, control statements, and other language fundamentals will reinforce your ability to use Java. Memorizing and understanding these concepts is like learning the alphabet, colors, days of the week, and other fundamental parts of a spoken language. Ground yourself with these concepts as you learn Java.
The Command Line
While it’s possible to learn java without learning how to use the command line, I don’t recommend it. The command line is a great place to start learning basic Java concepts. Creating a Spring Boot Console Application that takes inputs and generates outputs will allow you to practice in a focused manner with fewer distractions.
The Java programming language often uses design patterns to accelerate your problem-solving efforts. Choosing the correct design pattern will set you up for success.
Rome wasn’t built in a day. Learning Java is a continuous journey of twists and turns down its multi-threading features and concurrency frameworks. From having fun deciding the best web container framework to picking the best Java frameworks to use. You’ll be busy keeping up with the Java Joneses for decades to stay relevant like any healthy software development ecosystem.
Have some ☕️, and enjoy the journey!
Learn Java - Beyond the Basics
- Learn Java (LinkedIn)
- Java Programming Masterclass for Software Developers (Udemy)
- Getting Started with Programming in Java (Pluralsight)
- Java Fundamentals: Generics (PluralSight)
- Reactive Programming in Java 12 with RxJava 2 (Pluralsight)