
This course includes our updated coding exercises so you can practice your skills as you learn.
See a demo
Navigate an interactive 60-day Java masterclass that guides you from variables and data types to REST API development and a portfolio app, with daily lessons, exercises, quizzes, and downloadable resources.
Track progress with the 60 days of Java checkoff list, downloaded from resources, printed and hung, scratch off completed days, and move toward hands-on projects to become a Java developer.
Begin your Java journey with an introduction to its features and write your first hello world in J doodle, and cover difference between print and println, comments, and basic math.
Discover the history and strengths of Java, including portability, simplicity, and security. Learn its English-like syntax, object-oriented design, and write-once, run-anywhere platform independence using the JVM and J doodle.
Explore JDoodle, a Java compiler IDE, to write and run Java code in your browser without installation, sign in to adjust settings, and view output from code inside curly brackets.
Display text on the screen in Java using System.out.println, with double quotes, parentheses, and a semicolon, and learn the basics of Java syntax for console output.
Write Java code to display hello world on the screen with System.out.println and a semicolon. Examine the console output, the JDK versions, and the basics introduced in this course.
Explore the predefined code by dissecting a simple Java program: understand classes, the main method, public, static, void, and string arguments, and learn how system.out.print line displays Hello world.
Identify and fix common printing errors in Java such as misspelling system versus System, missing semicolons, unclosed string literals, misplaced braces, plus main method and case sensitivity issues.
Learn to search for and fix Java errors using Gen AI, copy error messages, apply solutions, and verify the fix works to avoid future issues.
Explore additional java features like its open-source and free-to-use nature, thorough documentation, and versatility across web development, mobile apps, enterprise solutions, cloud computing, and IoT, with strong community support.
Explore the differences between print and println, use escape sequences like backslash n for line breaks, and add single line comments to document code.
Master the basics of Java with Hello World, J doodle, and common error fixes, using print functions and math operations, and preview variables, data types, and data manipulation.
Explore variables and data types, including primitive and non-primitive types, with naming, type conversion, and a numbers and shapes exercise to master Java variable usage.
Explore variables and data types in Java, including how to declare and initialize variables, how reassignment works, and naming rules like starting with a letter, dollar sign, or underscore.
Declare and initialize an int in Java, assigning values like 36 or 74, and explore memory slots, equals sign usage, camel case versus snake case, and standard naming conventions.
Explore Java data types, including primitive types like byte, short, int, long, float, double, char, boolean, and reference types such as strings, with memory sizes and practical demos.
Explore Java's whole-number data types—byte, short, int, and long—and their ranges, and avoid errors such as incompatible types by using long literals with L.
this lecture covers the float and double data types, 32-bit vs 64-bit precision, why an f suffix is needed, and how incompatible types, lossy conversions, pi, and temperature arise.
Explore the char data type, a primitive that stores a single character using the char keyword and single quotes, print it to the console, and note its ascii codes.
Learn how to declare and initialize booleans in Java using true or false values, with naming like is available or has permission, and print results.
Learn how strings store text with string literals in quotes, and how variables reuse those values, for example a greeting that prints Hello Java.
Learn how to declare multiple variables in one line across data types, initialize later, and understand the risk of using uninitialized variables in Java.
Declare and manipulate int a and int b, compute sum, difference, product, and quotient, and print results with string concatenation. Update a to ten to illustrate sequential execution.
Learn how typecasting converts data types, including implicit widening conversion from int to double and explicit casting for narrowing conversion from double to int, with data loss and precision considerations.
Explore variables and data types, naming variables, and converting between primitive and non-primitive types, reinforced by exercises and a quiz for tomorrow's user input and operators lesson.
Handle user input in Java with the Scanner class. Create and manipulate strings, use arithmetic, unary, relational, and logical operators and string methods, and practice with trade profit calculator quiz.
Explore handling user input and operators in Java by using the scanner class from java.util, importing it, creating a scanner instance, and reading strings, integers, and floating-point numbers.
Discover how to obtain numeric input with a scanner using next int, handle data types and user input errors, and create a simple adder that sums two numbers.
Show how java's scanner buffers the enter key after nextInt, and how to consume the newline with nextLine to prevent the next input from shifting lines.
Build the Calorie Counter Pro in Java by collecting three foods and calories via Scanner, computing total calories, and displaying each item with a final total.
Explore how operators manipulate data and build expressions in Java. Learn arithmetic, unary, relational, and logical operators alongside assignment operators such as addition, subtraction, multiplication, division, and modulus.
Learn how the modulo operator (percent sign) returns the remainder of integer division in Java, with examples using 5 and 8.
Explore unary, increment, and decrement operators in Java, including unary plus and minus, post and pre increment/decrement, with practical examples that show value changes and printing results.
Master relational operators in Java by comparing values with equals, not equals, greater than, less than, and their inclusive counterparts, using booleans to drive if-like logic.
Learn how compound operators in Java update variables with +=, -=, *=, /=, and %=, using short forms to perform math and store the result in the same variable.
Build on today's work by diving deeper into strings, learning how to manipulate and compare them, while reviewing user input, operators, and expressions.
Master strings in Java by creating and concatenating values, using methods like length, equals, and compareTo, and applying substring and number formatting; reinforce operator precedence with a simple interest calculator.
Explore strings in Java, understand immutability, practice literals and the new keyword, apply concatenation with numbers, and use length and charAt methods in a hands-on demo.
Learn how to create strings in Java using literals and the new keyword, understand immutability and garbage collection, and build strings through concatenation for a bio.
Learn to determine a string's length using the length method, including spaces, and retrieve characters by zero-based index with the charAt method from a string literal.
Learn how Java string comparison works: the double equals sign compares references, not content, while new strings create separate memory entries. Learn to compare actual content with the equals method.
Learn how the string class equals method compares the value of variables rather than memory addresses, and how equalsIgnoreCase handles case-insensitive comparisons in Java.
Explore how the string class compareTo performs lexicographic comparisons between two strings, returning negative, zero, or positive values to reflect alphabetical order, shown with cat and dog examples.
Discover how to use the substring method to extract parts of a string with start and end indices, illustrated by programming in Java and handling index out of bounds errors.
Learn how to manipulate strings in Java using the replace method to swap characters and apply toUpperCase and toLowerCase, including examples with the phrase 'the quick brown fox'.
Use string.format to build dynamic strings from a name and age. Format numbers with %s, %d, and %.2f to display prices with two decimals and thousands separators.
Explore how operator precedence and associativity determine evaluation order, including multiplication before addition. See how parentheses enforce precedence and how unary, ternary, and assignment operators affect results with practical examples.
Set up your Java development environment with the JDK and IntelliJ IDEA, learn IDE features like auto-completion and refactoring, and complete a budget tracker exercise to practice building Java programs.
Install the Java development kit and an integrated development environment to write, compile, and run Java code, and explore key IDE features like syntax highlighting and code completion.
Install the JDK on Windows, set the java home environment variable, and verify with java -version to confirm Java 22 is installed.
Explore writing and running a Java program without an ide, using a text editor and the jdk, compiling with javac and running with java.
Install IntelliJ IDEA community edition to build Java applications efficiently. Learn to download, install, and set up the IDE, configure Java file associations, accept the license, and start using IntelliJ.
Set up and customize a new java project in IntelliJ, including dark theme, font size, and key mappings, then create a hello world main class and run it.
Explore IntelliJ IDEA features like hover explanations for system and println, real-time error hints and quick fixes such as inserting semicolons, plus color coding and single-line versus block comments.
Experience auto completion in IntelliJ as you type system.out.println, then learn to close the project from the hamburger menu to start or open a new project.
Create a new Java project in IntelliJ, build a magic potion calculator with a main method, compute potion power from magic essence, dragon scales, unicorn hair, and print it.
Learn how to rename variables and classes with the IDE's refactor feature, ensuring updates across multiple files, classes, and projects in Java and Kotlin Android development with IntelliJ.
Create a budget tracker app in Java that prompts for income, rent, groceries, transportation, and entertainment, computes total expenses and percentages, and prints a formatted budget breakdown with remaining budget.
Set up your Java development environment with IntelliJ and prepare to write advanced programs; tomorrow, dive into if else and ternary operators to master program flow.
Master control statements by exploring if statements, if else if, nested ifs, and ternary operators, using logical operators to refine conditions and complete the Galaxy Weather Advisor exercise.
Explore control statements in Java, introducing conditional statements driven by boolean expressions. Learn if, if else, else if ladder, switch, and the ternary operator with practical examples.
Master if statements by testing boolean conditions, executing code when true, using boolean expressions and comparisons, and handling user input with scanner to control program flow.
Explore nested if statements by checking a > 0, then b > a, and printing 'b is greater than a' when both conditions hold.
Explore logical operators in Java, including and (&&), or (||), and not (!). Learn how to combine booleans in if statements and apply short circuit behavior.
Build a simple java chatbot using if statements, a scanner for user input, and conditional responses for greetings, how are you, the weather, and farewells, with a default fallback.
Explore if else control statements, evaluating true or false conditions, using the modulo operator to check even or odd numbers, with practical examples and nested variants.
Explore nested if-else control statements by classifying a number as positive, negative, or zero using simple Java examples and deeper nesting concepts.
Explore how if-else-if-else ladders evaluate conditions in order, execute the first true branch (grades A–F example), and use IDE breakpoints for debugging.
Use breakpoints to debug and trace the flow of a Java if-else if ladder, inspecting variables and stepping through conditions to see execution and output.
Master the ternary operator for concise conditionals, using one-line expressions to assign discounts by age and map scores to grades, and compare it to nested if-else chains.
Learn to control program flow using if else and ternary operators, tackle the galaxy weather advisor exercise, and preview switch statements and enums to handle multiple cases efficiently.
Explore switch statements in Java, when to use them over if-else, and avoid fall-through errors. Master enums for a fixed set of constants and practice with a final game project.
Explore switch statements in Java as a readable alternative to if-else, learn the syntax with switch, case, break, and default, and see how enums enhance readability and prevent fall-through errors.
Build a basic switch statement in Java to map a day number to a day name using cases and a default, with breaks to prevent fall-through and display the result.
discover how the default case in a switch works, why a break is kept for readability, and how the default block executes when none of the cases match.
Explore how the break keyword prevents fall through in a switch statement by building a day planner that prints tasks for each day and highlights when breaks are missing.
Compare if statements and switch statements, demonstrating how to convert grade logic by dividing score by ten, using cases, break, and default, while noting switch cannot use boolean operators.
Learn how to use switch statements with the char data type in Java, handling cases A–F and a default, and print results such as excellent or good job.
Explore switch statements with strings through a seasons example, covering spring, summer, fall or autumn, winter, default handling, and user input with a scanner.
Master enums in Java by defining a fixed set of constants and using a switch statement to price coffee sizes, then format and display the result.
Enums define accepted values to make code safer and easier to maintain, using coffee sizes and external day or month enums to simplify switch statements.
Explore nesting switch statements within switch statements using a scanner-driven prompt for a or b and inner choices 1 or 2. Implement breaks and defaults to drive text-based adventure game.
Learn to build a text-based adventure game in Java using nested switch statements and scanner input to guide players through choices at crossroads and caves.
Explore switch statements and enums in Java, compare them to if else, and build a text based adventure game while preparing to master loops for repeating tasks and deeper logic.
Explore Java loops, for, while, and do while, with break and continue, and build a nested for loop pyramid and an infinite loop calculator that runs until the user quits.
Discover how loops in Java execute code repeatedly, covering for loop, while loop, and do while loop, with initialization, condition, and update. See how loops reduce redundancy and boost readability.
Master the for loop syntax by defining initialization, condition, and increment for a counter variable, printing 0 to 9, counting 1 to 10, and countdowns, including nested loops.
Explore nested for loops with an outer and inner loop, using i and j to generate row and column patterns. See how printing affects output and build row-column values.
Build a pyramid with for loops by entering the number of levels, then print leading spaces and two times the row index minus one stars per row to shape it.
Learn to implement the Fibonacci sequence with a for loop in Java, using a scanner to read number of terms and iteratively update first term, second term, and next term.
Explore how a while loop uses a condition to run code and avoid infinite loops. Use a counter or user input with a scanner, printing numbers until user enters zero.
Explore how the do while loop executes its body at least once, then repeats while the condition holds, using do { ... } while (condition); compare with while and for.
Learn how to use the break keyword to exit the current loop—for, while, and do-while—and even switch statements, with real-world file scanning examples.
Explore the continue keyword in Java loops, which skips the current iteration and jumps to the next one, illustrated by skipping the number three and applying to selective conditions.
Explore labels in Java for controlling nested loops with break and continue. Use named outer and inner loops to break or continue outer loops, and see behavior in multi-dimensional nesting.
Identify Harshad numbers by summing digits and testing divisibility with the original number using modulo, a while loop and scanner input to print a Harshad verdict.
Master Java loops, including for, while, and do while, using break, continue, and labels to control execution while building a pyramid and a calculator and then exploring arrays.
Explore arrays and array lists in Java, learning to declare, initialize, and access values of same type using indices, and loop with for and foreach loops to process data.
Declare and initialize arrays of a single data type, access and modify elements with zero-based indexing using square brackets, including initialization with new or curly braces.
Learn to iterate through arrays in Java with a for loop, using array length to prevent errors, accessing items by index, and using the enhanced for loop for cleaner iteration.
Explore the enhanced for loop (for-each) in Java, learn its syntax for iterating int and string arrays, and see examples with numbers and friends.
Learn to compute an array's sum and determine its minimum and maximum values using an enhanced for loop, initializing sum to zero and printing the results.
Learn to rearrange an even-length array by interleaving the first half with the second half using a simple for loop, producing a rearranged array like 235417.
Learn how to import java.util.Arrays to access a powerful set of array manipulation methods such as toString, sort, binarySearch, copyOf, fill, and equals.
Explore core array utilities in Java by using Arrays.toString to display arrays and Arrays.sort to order numeric and string arrays, with practical examples of pre- and post-sorting outputs.
Learn the Arrays binarySearch method in Java, requiring a sorted array, and understand it returns an index or a negative insertion point, with duplicates yielding unpredictable matches.
Learn why array copy is important, distinguish by reference vs by value, and use copyOf to create a true backup of an array, controlling length and padding with zeros.
Learn how to use the array's fill method to populate an int array and the arrays equals method to compare two arrays by value, including partial fills and order sensitivity.
Practice declaring and manipulating arrays, iterate with for loops, and use methods from the array class, including the array shuffle challenge; then extend to 2d arrays and multi-dimensional data.
Explore 2D arrays by declaring, initializing, and iterating through a grid, find the largest element and sum all values, and introduce arraylists for a space travel simulator project.
Master two-dimensional arrays in Java as arrays of arrays, using rows and columns to represent grids, and learn to initialize, access, and modify elements with nested and enhanced for loops.
Learn how to declare, initialize, and iterate a 2d array in Java, including setting values, using nested loops, and accessing rows and columns with array.length.
Learn how to initialize a 2D array directly with nested braces, create rows with varying column counts, and use array.length to safely iterate rows and columns without index errors.
Learn to iterate a 2d array using enhanced for loops and IDE tips for clearer code. Test changes to ensure the program still runs.
Discover how to find the largest (and lowest) numbers in a two dimensional array using an enhanced for loop, by starting with the first entry and updating as you traverse.
Learn to compute the sum of all items in a two-dimensional array using nested enhanced for loops, a running sum variable, and a simple arithmetic check to verify the result.
Learn to create a Java 2D array from user input, compute the sums of the primary and secondary diagonals, and avoid double-counting the center in odd-sized matrices.
Explore how array lists provide a dynamic alternative to fixed arrays in java, including creating, adding, getting, setting, removing, and iterating elements, plus 2d array lists.
Explore ArrayList in Java by declaring a string list, adding fruits, iterating to display them, and using get, contains, size, and remove to manage items.
Extend your Java practice from 2D arrays and array lists in the space travel simulator to methods, then learn to create, call, and use them in a word scramble game.
Welcome to the Complete Java Masterclass, the only course you need to master Java development from the ground up. This comprehensive program is designed to take you from a complete beginner to an advanced-level Java developer by combining a perfect balance of theory, practical projects, and professional-level best practices.
We will begin with Java fundamentals—variables, data types, control statements, and loops—ensuring a solid understanding of the language basics. As we progress, you'll learn the ins and outs of object-oriented programming, error handling, collections, file handling, and much more.
By the time you finish this course, you'll be equipped to build desktop applications with JavaFX, create REST APIs with Spring Boot, work with databases, implement cybersecurity practices for scalable, real-world applications.
What makes this course unique?
Project-based learning: You'll build multiple real-world projects, such as a To-Do Application and a full-featured Expense Tracker with Spring Boot, which will help you apply your knowledge in real-world scenarios.
Modern development practices: You'll learn how to develop professional-grade applications using Spring Boot, JavaFX, and REST APIs, ensuring you're up-to-date with industry standards.
Comprehensive curriculum: Covering everything from basic Java syntax to multi-threading, dependency injection, everything you need to become a Junior developer.
Supportive community and instructor: I'm here to help. Throughout the course, I’ll be answering questions and providing feedback on your code and projects to ensure you stay on track and succeed.
Who is this course for?
Aspiring software developers who want to learn Java and build professional applications.
Existing developers looking to switch to Java or deepen their knowledge of Java and Spring Boot.
Students and professionals wanting to build desktop applications with JavaFX or create web services with Spring Boot.
Java beginners with no prior experience who are eager to master one of the most widely used programming languages.
Course content:
You’ll learn Java through a structured path of 60 days, with each day introducing key topics and practical exercises:
Day 1-15: Learn Java fundamentals, control statements, loops, arrays, and user input handling.
Day 16-20: Dive into object-oriented programming (OOP) with inheritance, polymorphism, encapsulation, and interfaces.
Day 21-25: Explore the Java Collections Framework, Exception handling, and best practices for clean, maintainable code.
Day 26-30: Build desktop applications with JavaFX, using powerful UI components and animations.
Day 31-40: Work with Spring Boot to build robust web applications and RESTful APIs. Learn Git, manage versions, and publish.
Day 41-50: Integrate databases, create secure applications, Implement session management, Implement Stateless and Scalable authentication, Role Based Access Control, and Making a robust backend microservice
Day 51-60: Making REST calls from Java desktop apps, Handling Authentication from Desktop apps, Creating an interactive expense tracker UI, Creating Sharable JAR file and using your own app
Project Highlights:
To-Do Application: Build a feature-rich task manager with JavaFX, learning how to develop interactive desktop applications with clean and maintainable code.
Expense Tracker: Develop a scalable, secure Expense Tracker using Spring Boot and REST APIs, where you'll manage data and user authentication.
Building REST APIs: Master API creation with Spring Boot, integrating database connectivity and security features.
Instructor:
My name is Denis Panjuta, and I've been teaching programming for over a decade. I've helped over 500,000 students around the world to master coding through my carefully structured courses. With a background in engineering and years of experience in Java, I’m here to guide you step-by-step to ensure you build professional-level applications with confidence.
Your satisfaction guaranteed:
I’m so confident in the quality of this course that I offer a 30-day full money-back guarantee. If you're not completely satisfied, you can get a full refund—no questions asked.
Get started today!
This course is your way to mastering Java programming and stepping into the world of professional software development. Whether you want to build desktop applications, REST APIs, or learn the latest in Java development practices, this is the course for you.
Join now and start your journey to becoming a Java developer!