
This is a course introduction where you will know the instructor and understand why you should learn Java.
Java is a must-know programming language, and I'm honored to put this course together for you.
I will answer your questions within 48 hours and make videos to answer your questions if I feel it will benefit other students.
In this lecture, you will download and install the Java Development Kit. In this course, I'm using JDK version 17, and I will update the course regularly and add any significant features from Java's future releases.
You will write your first Java Program in a text edit app using Mac or notepad if you use Windows.
You will compile and run your program from the terminal.
I included different IDEs links in the resources files. However, I encourage you to use IntelliJ IDEA.
Finally, in the resources, you will find important terminal commands you should know. We won't use them in this course but I included them as a reference for you.
Download and install IntelliJ IDEA (Community Edition)
You will increase your productivity tremendously but knowing the IDE ins and outs. In this lecture, I will show some of IntelliJ IDEA features, and throughout the course, I will show you tips, tricks, and shortcuts.
Many sections in this course cover the topic of Organizing Java Code. in this lecture, I will show you the basic Code structure. By the end of this lecture, you will have a good idea about the Package, Class, Methods, and how to organize your code.
What is Compiled Code in Java?
By the end of this lecture, you will be able to answer this question in this lecture.
I want you to have a solid foundation and understanding of Java's workings. In this lecture, I will show you the Java compiled code in IntelliJ.
To stand out as a Java software engineer, you need to understand how Java works under the hood. In this lecture you will have deep understanding of the JDK and its two main components: the JRE and the JVM.
Is Java Slow?
Of Course Not. What a silly question! Thanks to the JIT Compiler, which enhanced the Java Performance drastically. In this lecture, you will understand where and what is the JIT Compiler and how it enhances Java Performance.
Your first two methods to know and use in Java. You will use print and println methods all the time. In the OOP sections, you will have a deep understanding of "methods" in Java, and you will write your own methods.
Good code is easy to understand.
Comments will help you write understandable and easy-to-maintain code.
In this lecture, you will be introduced to two types of comments in Java: single-line comments and multiline comments.
Variables are containers used to store data. You will use variables in every single line of code you will write in your life.
In this lecture, you will get introduced to variables and declare and initialize variables locally and on the class levels (instance and static variables).
The naming convention is an excellent tool in your pocket to make your code readable and understandable. In Java, we use the camelCase naming convention to name our variables.
The eight primitive data types in Java are int, byte, short, long, float, double, boolean, and char. In this lecture, you will get an idea of what are the primitive data types.
By the end of this lecture, you will be familiar with the byte, short, int, long, float, and double data types, and you will understand the different between these data types.
This should be a very easy and straightforward lecture for you. It is about the operators (+, -, *, /)
The Java modulus operator is used in so many algorithms, and this lecture, you will understand what is modulus (%) in Java, and you will be able to use it.
Also, you will see the increment (++) operator and the decrement operator (- -).
Don't forget to practice and ask questions. You should master these fundamentals and learn them by heart.
Assignment operators (=, +=, -=, /=, *=)
Assignment operators are fundamentals you will use almost in every line of code.
In this lecture, you will master the assignment operators, and don't forget to practice. Watching videos is not enough.
The booleans and relational operators are important and the foundation for the if condition statement in Java.
please practice and ask questions.
The char data type is a 16-bit Unicode character. In this lecture, you get to know the char data type in Java.
The var keyword (from Java 10) allows local type inference. You can use the var keyword for declaration, and the compiler will infer a type at initialization.
In this lecture, you will learn how to use the var keyword, which made our life easier as software engineers.
The escape sequence is a character preceded by a backslash (\), which has a special meaning to the compiler. \n means new line. \t means tab.
In this lecture, you will get introduced to escape sequences.
You will also use printf (print format), which helps you format your string and write compact and elegant code.
It is time to take user input. You will use the Scanner class to read user input.
The Scanner class contains multiple methods; in this lecture, you will use the "next" method.
More importantly, you will understand how Java allocates objects in the memory.
The scanner class has methods to read all types of data.
In this lecture, you will use the methods (next, nextLine, nextInt, nextDouble)
Sometimes, we can't use primitive data types in Java and have to use objects. You will see this in the Collections Framework section. Wrapper classes provide a way to use primitive data types as objects.
In this lecture, you will get familiar with wrapper classes, and in the Collections Framework section, you will use them extensively.
Conditional Statements are used to tell the computer to execute a block of code If certain conditions are met.
In this lecture, I will introduce you to the if-else statement in Java. You will also see a detailed example, so you understand the concept very well.
A nested if statement is an if statement placed inside another if statement, and it is used when needed to test a combination of conditions. With the help of another example, you will learn how to write complex conditions in the lecture.
More examples of using if-else statements in Java.
This is a very classic conditional exercise, however, it is very important and a building blocks for solving a lot of code challenges.
Logical Operators (&&)(||) combine conditional and help you build complex conditional. This is an introduction to logical operators in Java.
Solve fizz-buzz in Java. This was a classic Job interview question for many years. You will learn so many things in this lecture and you will apply what you have learned so far.
You will know how to use the logical NOT ( ! ) operator in Java. Logical Operator in Java is also called logical complement or negation.
Ternary Operator in Java is a very elegant way to write an if-else statement in one line.
In this Java Course, "Learn and dive deep into Java," I tried to show you examples of using every concept. In this lecture, you will see a real-life example of using conditionals in Java.
The switch statement in Java has evolved and is preferred over if statements. Especially after Java 17 and 19 release.
In this lecture, I showed you the old and new syntax of the switch statement in Java.
This is an introduction to debugging in Java. Debugging is a must-have skill. Throughout the course, I will debug a lot of code, and by the end of this Java course, you will be very familiar with debugging in Java.
While-loop is a control flow statement; it allows you to execute a block of code repeatedly until a condition is met. in this Java lecture, you will know how to use while loop in java, and you will see examples as well.
Do-while is a variant of the while loop. However, there's one difference. In this lecture, you will learn how to use a do-while loop and the difference between a while and a do-while loop.
The most used loop statement in Java. It is elegant, compact, and versatile. You will see multiple examples of using for loop in this lecture.
You will learn an advanced technique of debugging, and you will also learn how to use Break and Continue in Java and what the difference is between Break and Continue.
Exercises on using iterations in Java
Exercises on using iterations in Java
You will learn advanced techniques for using nested iterations in Java in this lecture and the following two lectures. This will help you tremendously in solving algorithms and in Job interviews.
Exercise on nested loops in Java. This will help you tremendously in solving algorithms and in Job interviews.
Exercise on nested loops in Java. This will help you tremendously in solving algorithms and in Job interviews.
What are arrays?
Why do we need arrays?
Arrays declaration and initialization.
Access Elements in Array.
Print Array.
Arrays of different types.
What is the initial value for each type?
Print and Sort Arrays in Java
You will use what you have learned in the Iterations section to traverse/iterate over arrays.
You will apply what you have learned in this Java Course.
This is an advanced Java, and you will be able to master it. You will be introduced to a Java two-dimensional array concept and see how to use it.
Two-dimensional arrays are used to solve a lot of algorithms and Job interviews.
Exercise on Two-Dimensional Arrays in Java
You will understand how Strings are immutable/unmodifiable in Java.
You will see a new way to declare and initialize Strings in Java.
In Java, Strings are Arrays of Characters. In this lecture, you learn how to access each character using the charAt() method
Strings are arrays, so you can traverse an array/string.
The String class contains important methods, and you will use some of them like :
length , isEmpty , isBlank , trim , concat, toUpperCase, toLowerCase, startsWith, endsWith, replaceFirst, contains
We will look at an alternative way to manipulate Strings using the StringBuilder class.
What is a Class, and what is an Object in Java?
What is the difference between Class and Object in Java?
A detailed and deeper look at Methods in Java
What is Method Signature in Java?
What is Method Overload in Java?
Pass by Value
Vs.
Pass by Reference
A constructor in Java is a special method that is used to initialize objects. You will learn everything about class constructors in this lecture.
In Java, we have four access modifiers. In the following lecture, you will see default, public, and public access modifiers. The fourth access modifier (protected) will be covered with inheritance in the next section.
It is always confusing for Java junior developers to understand the "this" keyword. I believe you will understand "this" keyword and know how to use it in this 9 minutes Java lecture.
Remember to practice, experiment, and ask questions.
I'm aware that all online Java Courses combine static keyword usage in one lecture. However, one lecture won't be enough if this is your first time learning about static keywords in Java.
I explained the static keyword in three lectures so beginners could understand it well. And If you are an advanced developer, I think you will enjoy it as well.
Static block is where you write instructions that will be executed only once when your class is loaded into the computer memory.
In this lecture, you will learn the static block and how to use it in detail.
You will define methods that belong to the class rather than an instance of a class.
You will learn another way to organize and secure your code.
Inheritance is one of the key features of OOP that allows us to create a new class from an existing class. You will learn how to write less code using inheritance in Java.
Back to Access modifiers again, and in this lecture, you will learn the last access modifier in Java (the protected access modifier).
Polymorphism means different shapes or forms.
There are two types of polymorphism in Java: runtime and compile-time.
Runtime polymorphism is achieved through method overriding, while compile-time polymorphism is achieved by method overloading.
You have been introduced to method overloading, and in this lecture, you will see the method overriding.
Java's final keyword is a non-access specifier that restricts a class, variable, and method.
Sealed classes allow declaring which class can be a subtype using permits keyword.
In this lecture, you will learn how to use final and sealed keywords in Java.
Encapsulation in OOP means the ability to hide data and behavior from the user.
You can achieve encapsulation using the getters and setters methods. In this lecture, you will learn how to define and use getters and setters in Java.
Everything in Java is an Object, that is because all objects in Java implicitly inherit from the Object class. In this lecture you will learn how to get information about an object at runtime using getClass method
You will learn how to override hashCode and equals methods which are crucial to get the expected results if you use some of the collections framework methods.
You will only learn how to override the toString method.
Java 17 changed how we look at and use classes.
A record class declares a sequence of fields, and then the appropriate accessors, constructors, equals, hashCode, and toString methods are created automatically.
This lecture has a lot of information, so pause, practice, take notes, and don't forget to ask questions. I'm here to help.
Why you can’t extend multiple classes in Java?
Use abstraction to hide all but relevant data about an object. Abstraction is used to reduce complexity and increase efficiency.
In this lecture, you will learn Abstract classes and methods and how to use them.
Many Sections coming are dependent on your understanding of the interface. You must pay attention and ensure you understand the Interfaces in Java.
In this lecture, you will use interfaces to perform multiple inheritances in Java.
The difference between interfaces and abstract classes always comes up in interviews. Please watch this video multiple times until you feel comfortable in answering and explaining the difference between abstract class and interface in Java.
This was supposed to be the first lecture. I put this lecture here because I wanted every word in this lecture to make sense and resonate with you.
It is crucial for you as a software engineer to be able to learn the four pillars of OOP by heart.
Explore the four core oop principles—abstraction, encapsulation, inheritance, and polymorphism—showing how interfaces, abstract classes, getters and setters, and method overloading and overriding boost readability, security, and maintainability.
I developed applications using different languages and the instanceOf operator in Java is very unique. it is used to test whether the object is an instance of a specified type.
You will see in this lecture how to use the instanceOf operator in Java
Enum is a data type consisting of a set of named values representing constants.
You will learn advanced techniques in using Enums in Java.
Exceptions are unexpected behavior that occurs during the runtime and disrupts the normal flow.
In java, Exceptions are objects thrown(created) when an error or exception happens.
On the other hand, Exception handling is a mechanism to handle run-time errors and make software robust, readable, reliable, and maintainable.
In this section, you will deeply understand Exception Handling in Java.
In this lecture, you will learn what is checked Exceptions in Java and how to use the try-catch block to handle exceptions
Resources are all objects that must be closed after being used. Try-with-resources will let you declare multiple resources and close the declared resources for you. It's an elegant way of handling exceptions and closing resources at the same time.
How to write your custom Exceptions in Java?
You will see very creative and detailed examples here in this lecture.
Welcome to the Learn and dive deep into Java course.
This course is for:
Students.
Graduates
Self-taught Software Engineers
Bootcamp graduates.
Interview Preparation.
Technical Managers.
Software engineers with 0-3 years of experience
or If you always want to stay up-to-date (this course will be updated regularly to cover the latest Java features)
Course prerequisite:
You need a laptop, preferably connected to two screens, one for the course and the other for practice.
To stand out as a software engineer, you should be patient, inquisitive, and detail-oriented.
No prior programming experience is totally fine. I'm explaining all concepts here in a very simple and straightforward way.
I will use IntelliJ IDEA Community Edition to write Java Code in this course. It is free, modern, and preferred among Java developers.
I chose Java for this course for many reasons:
It is a must-know programming language taught in all computer science programs.
Using Java, you can develop countless types of applications that run on any operating system.
Java is the second preferred programming language among the top 25 tech giants.
Course overall objectives:
Provide detailed and organized material that makes you land a job and start working from day one.
This course will cover most Java topics, data structure, and some algorithms so you can pass job interviews.
There will be a questions and answers section to answer students' questions.
I will update this course every three months.
I will answer all your questions within 48 hours, and some questions will get a video response.
This course covered in detail the following topics:
Java Fundamentals (Data Types, Conditionals, Iterations, Arrays, Strings, Exception Handling).
Object Oriented Programming (Classes, Methods, Static, Inheritance, Record, Abstract classes, Interfaces).
Lambda expressions, Generics, Stream API.
Collections Framework (in-depth).
Coming Soon Multithreading, Data Structure in Java, and more.