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.