This repository is dedicated to reviewing and revising basic Java concepts. It serves as a comprehensive guide for those who are new to Java or those who want to refresh their knowledge. The repository covers a wide range of topics, from basic syntax to more complex concepts like threading and collections.
- Java Basics
- Threading in Java
- Collections in Java
- Java 8
- Java 9
- Java 10
- Java 11
- Java 12
- Java 13
- Java 14
- Java 15
- Java 16
- Java 17
- Java 18
- Java 19
- Java 20
- Java 21
This section covers the basic syntax and concepts of the Java programming language. It includes topics such as variables, data types, operators, control flow statements, and more. To navigate to this section, go to the src/main/java/core_concepts
directory in the project.
This section provides examples and explanations on how to create and manage threads in Java. It covers two different ways of creating a thread: by extending the Thread
class and by implementing the Runnable
interface. To navigate to this section, go to the src/main/java/core_concepts/threads
directory in the project.
This section focuses on the collections framework in Java. It provides examples and explanations on how to use and manipulate collections, with a particular focus on HashMap
. To navigate to this section, go to the src/main/java/core_concepts/collections
directory in the project.
This section covers the new features introduced in Java 8, including lambda expressions, functional interfaces, streams, and method references. To navigate to this section, go to the src/main/java/features_versions/eight_8
directory in the project.
Java 9 introduced the concept of modules to provide a higher level of abstraction to manage large codebases. It also includes enhancements to the HttpClient
API. To navigate to this section, go to the src/main/java/features_versions/nine_9
directory in the project.
Java 10 introduced the concept of local-variable type inference to enhance the language's readability and simplicity. To navigate to this section, go to the src/main/java/features_versions/ten_10
directory in the project.
Java 11 introduced the HttpClient
API, which can be used to send HTTP requests and receive HTTP responses. It also introduced new string methods. To navigate to this section, go to the src/main/java/features_versions/eleven_11
directory in the project.
Java 12 introduced the switch expressions feature, which simplifies coding by extending the switch statement so it can be used as either a statement or an expression. To navigate to this section, go to the src/main/java/features_versions/twelve_12
directory in the project.
Java 13 introduced text blocks, which are a multi-line string literal that avoids the need for most escape sequences and automatically formats the string in a predictable manner. To navigate to this section, go to the src/main/java/features_versions/thirteen_13
directory in the project.
Java 14 introduced records, which are a special kind of class that is a transparent holder for a fixed set of values. It also introduced pattern matching for the instanceof
operator. To navigate to this section, go to the src/main/java/features_versions/fourteen_14
directory in the project.
Java 15 introduced sealed classes, which are classes or interfaces that impose restrictions on which other classes or interfaces may extend or implement them. To navigate to this section, go to the src/main/java/features_versions/fiveteen_15
directory in the project.
Java 16 introduced the Vector API, which is an experimental API to express vector computations that reliably compile at runtime to optimal vector hardware instructions on supported CPU architectures. To navigate to this section, go to the src/main/java/features_versions/sixteen_16
directory in the project.
Java 17 introduced the concept of sealed classes and interfaces. It also introduced enhancements to the pseudo-random number generators. To navigate to this section, go to the src/main/java/features_versions/seventeen_17
directory in the project.
Java 18 introduced the concept of dominance checking for the same type. It also introduced the Internet Address Resolution SPI. To navigate to this section, go to the src/main/java/features_versions/eighteen_18
directory in the project.
Java 19 introduced the concept of foreign function and memory API. It also introduced the concept of record patterns and structured concurrency API. To navigate to this section, go to the src/main/java/features_versions/nineteen_19
directory in the project.
Java 20 introduced the concept of scoped values. To navigate to this section, go to the src/main/java/features_versions/twenty_20
directory in the project.
Java 21 introduced the concept of sequenced collections and string templates. It also introduced enhancements to the HttpClient
lifecycle and the ProcessBuilder
class. To navigate to this section, go to the src/main/java/features_versions/twentyone_21
directory in the project.
This section focuses on the collections framework in Java. It provides examples and explanations on how to use and manipulate collections, with a particular focus on HashMap
.