Skip to content

This repository is for everyone who wants to learn or recall Java basics. Contributions from everyone are welcome!

Notifications You must be signed in to change notification settings

Mohrip/JAVA-BASICS

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

73 Commits
 
 
 
 
 
 
 
 

Repository files navigation

learning

javac *.java / ( is used to compile the whole folder )

java {filename} / ( is used to run the file )

javac -d . *.java / ( is used to compile the whole folder )

IMPORTANT NOTE: don't use any AI tools unless you stuck in a problem for a long time

.


This is a comprehensive roadmap to learn Java from scratch to advanced, covering every essential concept.

This roadmap is divided into several stages, each focusing on different aspects of Java programming.

Java Learning Roadmap

Stage 1: Basics of Java ( √ )

( Introduction to Java ) ( √ )

  • History of Java
  • Features of Java
  • Setting up the Java Development Kit (JDK)
  • Setting up an Integrated Development Environment (IDE) like IntelliJ IDEA, Eclipse, or VS Code

( Basic Syntax ) ( √ )

  • Structure of a Java program
  • Writing your first Java program
  • Compiling and running a Java program

( Variables and Data Types ) ( √ )

  • Primitive data types (int, float, double, char, boolean, etc.)
  • Reference data types (String, arrays, classes)
  • Variable declaration and initialization
  • Type casting and type conversion

( Operators ) ( √ )

  • Arithmetic operators
  • Relational operators
  • Logical operators
  • Assignment operators
  • Unary operators
  • Ternary operator

( Control Flow Statements ) ( √ )

  • Conditional statements (if, if-else, switch)
  • Looping statements (for, while, do-while)
  • Break and continue statements

Stage 2: Object-Oriented Programming (OOP)

( Classes and Objects ) ( √ )

  • Defining classes and creating objects
  • Constructors
  • this keyword
  • Methods and method overloading

( Encapsulation )

  • Access modifiers (private, public, protected, default)
  • Getters and setters

( Inheritance ) ( √ )

  • Superclass and subclass
  • super keyword
  • Method overriding
  • final keyword

( Polymorphism )

  • Compile-time polymorphism (method overloading)
  • Runtime polymorphism (method overriding)
  • Upcasting and downcasting

( Abstraction )

  • Abstract classes and methods
  • Interfaces

Stage 3: Advanced Java Concepts

( Java Collections Framework )

  • List (ArrayList, LinkedList)
  • Set (HashSet, TreeSet)
  • Map (HashMap, TreeMap)
  • Queue (PriorityQueue, LinkedList)
  • Iterators and enhanced for loop

( Generics )

  • Generic classes and methods
  • Bounded types
  • Wildcards

( Exception Handling )

  • Types of exceptions (checked and unchecked)
  • Try-catch block
  • Finally block
  • Throw and throws keywords
  • Custom exceptions

( File I/O )

  • Reading and writing files using FileReader and FileWriter
  • Buffered I/O using BufferedReader and BufferedWriter
  • Serialization and deserialization

( Multithreading and Concurrency )

  • Creating threads (extending Thread class and implementing Runnable interface)
  • Thread lifecycle
  • Synchronization
  • Inter-thread communication
  • Concurrency utilities (Executor framework, Callable and Future, CountDownLatch, CyclicBarrier)

Stage 4: Java 8 and Beyond

( Lambda Expressions )

  • Syntax and usage
  • Functional interfaces
  • Method references

( Streams API )

  • Creating streams
  • Intermediate operations (filter, map, sorted)
  • Terminal operations (forEach, collect, reduce)

( Optional Class )

  • Creating and using Optional
  • Avoiding NullPointerException

( New Date and Time API )

  • LocalDate, LocalTime, LocalDateTime
  • Formatting and parsing dates
  • Date arithmetic

Stage 5: Frameworks and Tools

Build Tools

  • Maven
  • Gradle

Unit Testing

  • JUnit
  • Mockito

Spring Framework

  • Spring Core (Dependency Injection, Inversion of Control)
  • Spring Boot (Creating RESTful web services, Spring Data JPA)
  • Spring Security

Hibernate

  • ORM concepts
  • Mapping entities
  • CRUD operations

Stage 6: Advanced Topics

Microservices

  • Microservices architecture
  • Spring Boot and Spring Cloud
  • Service discovery and registration (Eureka)
  • API Gateway (Zuul, Spring Cloud Gateway)
  • Circuit Breaker (Hystrix)

Docker and Kubernetes

  • Containerization with Docker
  • Orchestration with Kubernetes

Cloud Platforms

  • Deploying applications on AWS, Azure, or Google Cloud

Performance Tuning and Profiling

  • JVM tuning
  • Profiling tools (VisualVM, JProfiler)

Stage 7: Project-Based Learning

Open Source Contributions

  • Contribute to open source projects on GitHub

Personal Projects

  • Build your own projects to apply what you've learned

Resources

  • Books: "Effective Java" by Joshua Bloch, "Java Concurrency in Practice" by Brian Goetz, "Head First Design Patterns" by Eric Freeman and Elisabeth Robson
  • Online Courses: Platforms like Coursera, Udemy, and Pluralsight offer comprehensive Java courses
  • Documentation: The official Java documentation and tutorials on the Oracle website

About

This repository is for everyone who wants to learn or recall Java basics. Contributions from everyone are welcome!

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages