
This course includes our updated coding exercises so you can practice your skills as you learn.
See a demo
Welcoming and motivating lecture to my Java course
Java is one of the most in demand & highest paying programming language.
Java slogan is: "write once, work everywhere".
It's very popular on all platforms. You can use Java to create Android applications, desktop applications on any system and many more.
One of the most popular game called Minecraft is created in Java.
After this lesson you will know:
It's good idea to watch this course step by step - please do not skip lessons.
I will show you how to download Netbeans with JDK and how to install it.
What is the process of compilation, how to create a project and how to execute your programs?
What are comments?
Why do we use comments?
What types of comments can we use? What differs them from each other?
Very important lesson where I will tell you:
What are white characters?
What is an instruction?
How to create a code so it looks better?
What are methods and classes?
In this lesson I will show you the most time used shortcuts by programmers that will save you lots of time.
This is text version of useful shortcuts you can print them.
What are variables and what type of variables can we use?
What is type of variable?
How to properly name variables?
Test your knowledge regarding naming variable conventions
After this lesson you will know how to change the type of variable using casting operation. I will also tell you what you should be careful about.
What are some common situations where casting is necessary in Java? List at least three.
Explanation: Common situations include:
When dividing two integers but needing a decimal result.
When assigning a double value to an integer variable (to truncate the decimal part).
When converting between different object types, particularly in polymorphism.
This lab will guide you through the core concepts of type casting in Java. You will see why dividing two integers can give unexpected results and learn how to perform both implicit (automatic) and explicit (manual) casting to control the data types in your program.
You will understand arithmetic operators like adding, substracting, multiplying, dividing, remainder divison, incrementation, decrementation. You will know the difference between POST and PRE incremention/decrementation.
You will find out about relational operators and how to use them. After this lesson you will be able to compare values in your program.
== : Checks if two variables are equal.
!= : Checks if two variables are not equal.
> : Checks if the left-hand operand is greater than the right-hand operand.
< : Checks if the left-hand operand is less than the right-hand operand.
>= : Checks if the left-hand operand is greater than or equal to the right-hand operand.
<= : Checks if the left-hand operand is less than or equal to the right-hand operand.
What is alternative, conjunction and negation? I will show you concept of logic on logical operators.
It's time for creating conditions and taking the control of your program. After this lesson you will be able to decide what will happen your program depending on conditions you create.
The main components of a conditional statement in Java are:
if: Checks a condition and executes a block of code if the condition is true.
else if: Checks an additional condition if the previous if or else if condition is false.
else: Executes a block of code if all previous conditions are false.
What are curly bracers and why do we need them?
This exercise is called "Age Checker" it's purpose is to check the age of a person and output if the person should study, work, retire based on that age. The student is expected to check it with if-else statements, and output the appropriate message.
I will show you how switch is working and how to use it.
I will show you how to shorten conditional statements using conditional expression.
What are arrays?
How to create arrays?
How to retrieve data from arrays?
How to use arrays?
What are multi-dimensional arrays and how to use them?
After this lesson you will know the purpose of loop and how to use while and do while loops.
In this lesson I will show you fast what is loop 'for' using the last lesson information.
I will show you how to use enhanced for loop.
In this lesson you will exercise the knowledge you have learnt so far by writing the multiplication table program.
I will show you on example how to use break and continue instructions.
Time for next exercise -> I will show you how to sum up values from an array.
First lab where you gonna practise printing, summing, counting average and counting if something exists within array.
You will learn what is objected oriented programming and why do we use it. What are objects / classes / classes instances and methods.
What are constructors?
How to use constructors?
Why do we use constructors?
You will know how to use a keyword called 'this'. I will show you the solution when you have the conflict of variables name.
You will know what are methods. What is the difference between function and method. What is does "returning" the value by method means? Why do we use methods? Why do we create them?
How to get the data from user in console? Using Scanner
This exercise is called "Account Balance" and its purpose is to practice encapsulation and use of Scanner class in Java.
The program should represent an account and allow for depositing, withdrawing, and checking the balance of the account using Scanner class to get the values for deposit and withdraw.
The student is expected to implement account class with private balance, deposit, withdraw and getBalance method and use Scanner class in main method to get input from user.
The student should test the code with different input values to make sure it's working as expected.
The goal of this exercise is to help students practice and understand the principles of encapsulation and use of Scanner class in Java. By creating an Account class with private balance, deposit, withdraw and getBalance methods, students will learn how to use encapsulation to hide implementation details and restrict access to internal state of an object. By using the Scanner class in the main method to get input from the user for deposit and withdraw operations, students will learn how to read input from the user in a Java program. Overall, this exercise aims to improve students' understanding of OOP principles and user input handling in Java.
What does method overloding mean and when to use it?
What are static methods and properties, how to use them on practical examples. You will understand why method 'main' is called 'static'.
You will know what are packages, how to create them and use them. You will find out about access modificators like default one(package modificator), private and public.
You will know what is encapsulation. Why do we need setters and getters. How does 'private' modificator works on properties.
You will learn what is reference and you will understand the difference between primitive variables and reference variables.
You will know the difference between passing reference variables and primitive variables through methods.
I will show you what you should be careful about when you are comparing Strings.
It's time for exercise. I will show you how to create a bottle program. It will be possible to pour water out, fill water and transfer water from the bottle.
I will show you what is inheritance on practical example like monsters in computer games.
You will learn what is polymorphism and how to override methods.
You will understand the effect of protected keyword access modificator.
Fast rehersal of very important topic which is access modificators.
What are abstracts classes and methods? How to use them? Why do we create them?
I will show you the practical example of usage of abstraction and I will show you the new keyword called "instanceof"
I will show you how to use downcasting and what is late binding.
After this lesson you will learn about class that is called "Object". I will show you how to compare objects.
I will show you how to override method called toString and how to use it.
You will learn how the keyword final affects classes methods and properties.
You will learn and understand very important aspect of Object Oriented Programming which is interfaces. I will show you how to create them. How to use them and show the difference between interface and abstract classes.
Time for training -> I will show you how to implement interface for sorting objects that will allow you to fast sort your object ascending or descdening way.
You will understand what is nested classes and the difference between inner and static class.
I will tell you one of practical reason when you should use nested class.
I will show you what are anonymous classes and why do we need something like that. You will know the purpose of anonymous classes.
What is aggregation and composition? What differs them from each other?
You will know what are lambda expressions.
You will understand how to use them and why do we even bother using them ^^
How default interface methods affects lambda expressions.
Java 8 introduced Method References as a powerful complement to lambda expressions, allowing you to write even more concise and readable code.
In this lecture, we'll explore:
The four types of Method References:
Static Method References (e.g., Math::max)
Instance Method References of a Particular Object (e.g., System.out::println)
Instance Method References of an Arbitrary Object (e.g., String::length)
Constructor References (e.g., ArrayList::new)
How to recognize opportunities to replace lambda expressions with Method References for cleaner code.
When to use Method References for clarity, and when to stick with lambdas.
Method References offer a shortcut to writing expressive and concise code, making your Java programming more efficient and elegant.
Java 8 introduced the Stream API, a powerful tool for processing collections of data in a clean, efficient, and functional way.
In this lecture, we'll explore:
The basics of the Stream API and how it simplifies data processing tasks.
How to construct a stream pipeline with a source, intermediate operations (like filter() and map()), and terminal operations (like sum() or collect()).
The benefits of using streams, including parallel processing for enhanced performance.
Key stream operations, such as filter(), map(), reduce(), and collect(), that make data manipulation more intuitive.
Important considerations when using streams, including when to opt for traditional loops and the proper use of parallel streams.
The Stream API offers a modern approach to handling data, making your code more readable, concise, and powerful.
This Java course is designed for people who don't have any knowledge about programming.
Even if you've never written a single line of code or don't know what programming is all about — I’ll guide you step by step, and everything will soon make sense.
You’ll break the myth that programming is only for the few.
With the right guidance, Java is easy to learn - and incredibly powerful once you master it.
Why learn Java?
Java is one of the highest-paying and most in-demand programming languages in the world.
Thanks to its “Write once, run anywhere” philosophy, Java powers:
Android apps
Desktop applications
Web backends
Games
and more!
Did you know? One of the most popular games ever created — Minecraft — was built using Java.
If you're interested in Android development, Java is the foundation.
It’s the primary language for building Android apps, and a must-know for mobile developers.
What’s in this Java course?
This course contains over 15 hours of content, combining clear explanations with hands-on coding.
You’ll start from the basics of Java syntax and logic, and gradually build up to more advanced components of the Java language.
Throughout the course, you’ll write many small programs in pure Java, helping you learn through doing, not just watching.
---
But that’s not all!
Would you like to learn Java Spring Boot but don't know where to start?
This course will take you from the basics to a level where you'll confidently build a complete enterprise application on your own.
No unnecessary theory - just practical solutions used in real-world companies.
If you're interested in building modern backend applications, working in IT, or creating solid REST APIs, you're in the right place!
"Straight to the point" — practice before theory!
Many courses begin with long theoretical introductions covering Spring architecture, design patterns (MVC, Dependency Injection), and more.
In my course, we jump straight into practice. You'll see how Spring Boot works first, and only then will I explain why it works that way. Theory is integrated into practical examples rather than being served in isolation.
I emphasize understanding the "why" — not just the "how."
You won't just learn how to use annotations, methods, or classes. I'll explain why they are needed, what problems they solve, and how they work under the hood. This understanding will prevent you from blindly copying code and instead empower you to write efficient and scalable applications.
Gradual introduction to complexity
I won’t overwhelm you with too much information at once.
We start with simple concepts and gradually introduce more advanced topics.
For example, we’ll first add users manually before connecting to a database; we’ll use Spring Security’s default configuration before customizing it.
What will you learn?
Spring Boot from scratch — even if you’ve never used this framework before.
Building REST APIs — manage users, tasks, and data using Spring Boot and Hibernate.
Application security — Spring Security will help you protect your API from unauthorized access.
Why enroll?
Learn by building a real-world project — step by step, you’ll create a complete application.
No unnecessary theory — focus on real coding challenges.
Prepare for real-world Spring Boot development — beyond just writing code, you'll also learn about testing and deployment.
Attention! I've added for FREE 2,5h content about the basics of creating apps in Android Studio. Learn how to create Android Apps :-)
Over 350,000 students have enrolled in my courses, and all of them are happy. You will also be satisfied with this course. If you do not like the course, remember that you can take for 30 days a full refund. I guarantee your satisfaction.
Got questions while learning Java?
Ask away! I’m always happy to help students who are eager to grow.
Please check out the free lessons! See for yourself the exceptional quality of the course and enjoy it!
Join NOW and become Java Expert today!