
Install the JDK on Windows, verify with java -version, and configure Java home and PATH environment variables to run Java from the terminal.
Windows users should follow the default installation steps.
Install the JDK, write Java programs in a text editor, create public class Main with main method, compile to bytecode, and run on the JVM to print hello world.
Master Java's print and println, printing strings and numbers. Learn how print keeps output on same line, while println starts a new line; include empty print to insert a break.
Declare and work with variables in Java by specifying data types, assigning values, and reassigning as needed. Learn about strings, primitives, and declaring multiple variables in one statement.
Explain how to use Java comments to clarify code, choose appropriate comments, and employ // and /* */ styles for documenting classes, methods, and generating docs.
Understand string concatenation with the plus operator in Java, observe string immutability and reassignment to change values, and see that concatenating strings with other data types yields a string.
Explore IntelliJ shortcuts for Java development, including generating a main method by typing main and pressing enter, using main with control space, and creating print statements with out.
Explore how unary operators go first, then binary operators follow from left to right, with multiplication, division, and remainder taking precedence over plus and minus; use parentheses to override rules.
Explore Java compound assignment operators, updating primitive variables in place with short-hand forms like +=, *=, /=, and -=, and see old values become new values.
compare primitives and objects in Java, noting that string is not primitive but an object, while primitives hold simple values and string is final class.
Learn to get input from the user in Java using get input methods that return strings, assign to variables, and replace hardcoded values with console prompts.
Create a change calculator that uses the remainder operator and integer division to convert user input into a numeric amount and output quarters, dimes, nickels, and pennies.
Learn how Java comparison operators work, including equal to, not equal, and relational operators, with primitives and object references, plus range checks from user input.
Learn multi-branching in Java with if-else, input handling, and divisibility checks, emphasizing condition order and case-insensitive inputs, plus a 13.5 to 15.5 pressure range example.
Learn how a class acts as a blueprint for objects, how to create objects with the new keyword and their references, and how to access instance variables via dot notation.
Explore non-static instance methods in Java, including void methods like printFullName and value-returning methods like getFullName, with parameters and return statements used when calling object methods.
Explore defining a Java enum for day-of-week constants, list all values with the values method, print them via for-each, and compare constants with equals, handling invalid inputs.
Explore array traversal in Java by using traditional for loops and for-each loops to print elements, and compute sum and average from a temperature array.
Demonstrate how arrays use references to heap memory, show that multiple references can point to the same array, and explain copying or using Arrays.copyOf to create independent arrays.
Explore object oriented programming in Java, focusing on objects, classes, attributes, and methods while we examine encapsulation, abstraction, inheritance, and polymorphism, and how constructors and the new keyword create objects.
Learn Java inheritance by extending person to student, access first name, last name, and age, add student id, and explore single inheritance, the diamond problem, and interfaces as a workaround.
Learn how to use the super keyword to access parent class properties and methods, differentiate this from current objects, and call parent constructors with arguments in Java.
Learn how Java objects inherit from the root object class, override toString, equals, and hashCode, and implement custom equality for the book class with practical examples.
Explore how inheritance enables code reuse by letting a class extend a parent and inherit visible properties and methods, while noting single inheritance, interfaces, and the object superclass in Java.
Explore polymorphism in Java by showing how a Car reference can point to Audi or BMW objects, and how runtime polymorphism applies when methods are overridden.
This course is ideal for gasp complex Java topics in a simple way. I tried to make it simple and just on point. It would be a perfect fit for people who want to put some of their prior knowledge of java or any modern programming language in a structured way, however, it is a perfect fit for beginners as well if students will practice coding challenges in CodingBat along with this course.
The course covers all main Java topics(except advanced topics). The flow of the course goes from basics concepts of programming that apply to any modern programming language and from the middle of the course I introduce more complex topics related to java and its features.
Why learn Java?
I think Java is a good programming language to start with because it is not as abstract as some languages so you will have some idea of what's going on behind the scene of high-level syntax. And at the same time, it is not a low-level programming language so you will not stack in the complex details. Additionally, it is one of the most popular programming languages and there are a lot of jobs for Java developers.
What version of Java will I learn in this course?
This course is based on Java 8, however, it describes all new features till Java 18.
Who is going to be my instructor?
My name is Bek and I'm OCA and OCP certified senior Java developer. I have been teaching Java for the last 3 years in a coding boot camp.