A beginner's library for learning about essential Java programming concepts, syntax, APIs, and packages.
Using generics results in more robust code and avoids ClassCastExceptions in your Java programs. This in-depth tutorial introduces you to generics and their types and methods.
Java exception handling with stack traces, exception chaining, try-with-resources, final re-throw, and StackWalker.
Learn everything you need to throw, try, catch, and clean up after Java exceptions in your programs.
Use Java's packages and static imports to organize top-level types and simplify access to their static members.
Learn how to use the four types of nested classes to better organize your Java code.
Learn the four types of polymorphism in Java, then start using subtype polymorphism to execute different forms of the same Java method.
Learn how to use statements like if, if-else, switch, for, and while to declare variables and specify expressions, make decisions, iterate over statements, and more.
Learn how to use Java annotations to associate metadata with classes, methods, and other application elements in your Java programs.
Use Java assertions to test your assumptions about program correctness and check them in your code.
Typesafe enums offer a better alternative to Java's traditional enumerated types. Here's how to use typesafe enums correctly in your Java code.
Here's everything you need to know about Java operators and operator types, and how to use them to write expressions for your Java programs.
Use Java's extends keyword to derive a child class from a parent class, invoke parent class constructors and methods, override methods, and more.
The more familiar you are with Object and its methods, the more you can do with your Java programs.
Here's everything you need to know about initializing Java classes and objects before executing them in the JVM.
Here's how to make classes, fields, methods, constructors, and objects work together in your Java programs.
Why you should use method references instead of anonymous classes in your functional Java programs
Learn how to use lambda expressions and functional programming techniques in your Java programs
Learn the difference between classes and interfaces once and for all, then get started declaring, implementing, and extending interfaces in your Java programs
Learn three ways to document your code, then get started using identifiers, types, literals, and variables in Java 12
If you're new to Java then you've come to the right place. Get an overview of the Java platform, then code your first application using Java 12 and the new Java Shell