This module provides an overview of the Core Java - Java Class Library course. There are over 4200 classes in the Java 8 class library, with hundreds of new ones compared to prior versions of Java. In this course, we will cover additional language features that enable the class library, essential library areas, and provide roadmaps to areas for self-exploration.
Java Generics
In this module, we will learn about a major Java feature, Generics (known as template or parameterized types in some other languages), introduced in Java 5. Generics are a key tool in ensuring type safety.
Java Collections
In this module, we'll talk about the Java Collection classes, which were introduced in Java 5 and have been expanded upon in Java 8 with the introduction of Java Streams (java.util.stream) technology. Collections give us much more power and capability for managing collections of data than the simple, linear, arrays we have used up to this point in the curricula.
Exception Handling
Different programming models handle error conditions in different ways. Some, for example, require programmers to check error codes after every function call.
Java, learning from other environments such as C++, takes a different approach known as exception handling. In this module, you will learn how Java deals with exceptions, and learn to both handle and -- when necessary -- create exceptions.
Input and Output
Java has rich Input and Output (I/O) capabilities, which have evolved constantly over the years. Java can handle network I/O, file I/O; blocking and non-blocking I/O and more. In this module we will look at an overview of I/O, and focus mostly on simple text I/O using files. We will also take a brief look at the extensive improvements made to I/O in Java 7 and Java 8, with readings to provide additional information.
Enums
Java Enums provide us with the ability to create a fixed set of constant values. They are objects, so they can have methods and properties, but they are a fixed, constant, set, nonetheless. The simplest ones might merely be something like the suits of a deck of cards, but we'll take a more complete look at their capabilities, and how you might use them.
Annotations
Annotations are a way of attaching meta-data to Java code. Added in Java 5, this passive meta-data facility might not seem important at first, but is the key to how modern Java frameworks work. Spring, Spring Boot, Spring Cloud, NetFlix OSS, Java Persistence Architecture, Jakarta EE (née Java EE) containers, JAX-WS, JAX-RS, and so many others.
In this module, we will look at the Java Annotations technology, look at existing annotations, and -- in the lab -- create a custom annotation, and write code to see that annotation at run-time. This means that you will not only have the ability to use annotations, but also have at least the rudiments necessary to write and process your own annotations, such you have the need.