
This course includes our updated coding exercises so you can practice your skills as you learn.
See a demo
Enable auto or select 720p to maintain 1080p when possible for the java masterclass, and be patient as videos load to achieve the best viewing experience.
Start by printing 'Hello World' in JShell, then modify the statement to say 'Hello Tim', and learn to spot common errors like missing parentheses or quotes while practicing.
Understand byte, short, and long data types in Java, their ranges and widths, plus using wrapper classes and the L suffix to print values and explore overflow.
Explore Java floating point numbers, compare float and double, learn their ranges and precision, understand decimal literals, suffixes F and D, and casting implications.
Explain how int, float, and double handle division and precision, showing truncation for integers and 2.5 for floats and doubles, with doubles offering greater accuracy.
Master abbreviating operators in Java, including postfix ++/-- and compound assignments like += and -=, with int and double examples to illustrate data-type effects.
Switch from jshell to an integrated development environment to boost productivity. Install and configure IntelliJ IDEA, and learn code completion, debugging, and version control.
Discover how an integrated development environment like IntelliJ IDEA simplifies writing, compiling, and running code, with built in error warnings and streamlined setup across Windows, Mac OS, and Linux.
Install and start IntelliJ IDEA on Ubuntu Linux using snap or tarball, then configure the ide to write and run programs.
Configure IntelliJ IDEA for Windows by linking the JDK, selecting Java as the project type, and enabling auto-imports, unambiguous imports on the fly, and optimize imports on the fly.
Configure IntelliJ IDEA for Mac by linking Oracle's JDK 25 to enable Java code. Set the IDE build system and enable auto-import plus show line numbers for easier learning.
Explore Java's logical and operator and logical or operator within conditional statements, and learn how operator precedence and parentheses clarify boolean expressions in code.
Demonstrates the difference between the assignment and equals operators in Java, fixes common int and boolean comparisons in IntelliJ, and introduces the not operator for concise boolean expressions.
Create two Java methods to manage high scores: displayHighScorePosition prints a player's name and rank, and calculateHighScorePosition returns a number between 1 and 4 for a given score.
Learn to compare your IntelliJ code with downloaded solutions using side-by-side and unified views, highlight differences, and use local history to revert or restore earlier versions.
Implement and test overloaded methods named convertToCentimeters, converting inches and feet and inches to centimeters using 1 inch = 2.54 cm and 1 foot = 12 inches, and verify with sample cases.
Develop and test two overloaded getDurationString methods to convert seconds into hours, minutes, and seconds, with validation and clear string output.
This lecture adds validation to the duration formatting methods, ensuring non-negative minutes and seconds within 0 to 59, with test cases and code refactoring for clarity.
Explore control flow statements in Java, including switch, if-else, for, while, and do-while, and learn how to decide what runs and when.
Explore the evolution from traditional to enhanced switch statements, covering switch expressions with arrow syntax, default handling, and the yield keyword for returning values, plus backwards compatibility notes.
Build and test a for loop based prime checker with an isPrime method. Use the modulo check, print primes, count them, and break after three primes for efficiency.
Master while and do-while loops in Java by comparing them to for loops, learning how to use conditions, breaks, and continue to control iteration.
Parse string data into numbers using Integer.parseInt and Double.parseDouble, then build an interactive console app that reads name and birth year with system.console or Scanner to compute age.
Explore the fundamentals of object-oriented programming by learning classes, objects, and constructors, and examine inheritance, encapsulation, polymorphism, and composition.
Build and test a bank account class with fields for account number, balance, customer name, email, and phone; include getters, setters, and deposit and withdraw methods that prevent negative balances.
Explore how constructors initialize objects in Java, including no-argument and parameterized constructors in the account class. Learn constructor overloading and how this keyword assigns fields during object creation.
Create a Customer class with private name, credit limit, and email fields, expose getters, and implement three constructors (all fields, no-args, and name-email) using this() chaining, then test in main.
Explore how a plain old java object (pojo) stores data in fields, acts as a JavaBean or DTO, and uses constructors, getters, setters, and toString for data transfers.
Replace boilerplate pojo code with java records, immutable data carriers that auto generate constructors, accessors, and toString, while removing setters.
Explore inheritance in Java by extending the animal class to create a dog with attributes, constructors, and behaviors, using super calls, constructor chaining, and overriding to customize toString and move.
Master java inheritance by building a worker hierarchy with the extends keyword, from Worker to Employee with salaried and hourly subclasses, implementing constructors, get age, collect pay, terminate, and toString.
Explore Java text blocks for multi-line strings and master output formatting with print F and format methods. Learn to use format specifiers like %D and %F, control precision and width, apply platform line separators, and compare string format and formatted methods for readable, maintainable code.
Practice encapsulation by building a printer class with toner, duplex settings, and pages printed; implement addToner and printPages with proper validation and getters.
Explore polymorphism in Java by building a Car base class and GasPoweredCar, ElectricCar, and HybridCar subclasses, overriding start and run engine to execute different behaviors at runtime.
Master polymorphism by finalizing car inheritance and overriding start engine and run engine methods for gas-powered, electric, and hybrid cars, and test runtime behavior in a single main class.
Apply object-oriented programming to build a complete burger restaurant app using composition, inheritance, encapsulation, and polymorphism. Create meal orders with burgers, drinks, sides, toppings, and the deluxe burger price.
Learn how to populate and loop through Java arrays, compare for and enhanced for loops, and print arrays using Arrays.toString while exploring object arrays and default values.
Explore foundational array concepts in Java, including zero-based indexing, creating arrays, default values, and common pitfalls like index out of bounds and loop errors, with practical examples.
Explore how arrays are reference types, where multiple references can point to the same memory, and how Java passes a copy of the reference to a method, mutating the array.
Tackle the minimum element challenge by reading a comma delimited list of integers from the console, parsing them into an array, and finding the minimum with a dedicated findMin method.
Explore multi-dimensional arrays in Java, focusing on two-dimensional arrays as matrices, with nested arrays of varying lengths, and learn to declare, initialize, traverse with for loops, and print them.
Explore jagged and multi-dimensional arrays in Java by assigning outer arrays to hold inner arrays of varying sizes, using array initializers and new int[], and printing with Arrays.deepToString.
Explore memory layout of arrays, arraylists, and linkedlists; understand capacity, reallocation, and Big O implications for add, remove, and traversal.
Build a LinkedList itinerary of Place records ordered by distance from Sydney, prevent duplicates, and navigate forward and backward with a ListIterator.
Explore autoboxing and unboxing with arrays, varargs, and lists such as ArrayList and LinkedList, using Integer and Character wrappers, Arrays.toString, and List.of.
Master enum usage by switching on DayOfTheWeek, using ordinal and name, formatting day names with string methods, and creating a Topping enum with a custom getPrice method and values() iteration.
Step into the world of programming with our Java Programming Masterclass, meticulously updated for 2024. Since its inception in 2016, this course has evolved continuously, ensuring you receive the latest and most relevant Java education. Purchase once and gain access to a lifetime of updates without any additional cost.
Join an expansive community of over 832,000 students who have chosen my in-depth Java programming course for its thorough and detailed curriculum. Like Benhur G., who appreciates that "all lessons helpful in your Java Programming journey are included," you'll find our course suitable for all levels of expertise.
Whether you're aiming to:
Secure your first Java programming job
Advance to a senior software developer role
Prepare for the Oracle Java certification exam
Develop your own Java applications
Our Java Masterclass is your comprehensive resource for achieving these goals and more.
Why Java?
Its enduring presence in the tech world is unmatched, making it a wise choice for both budding and experienced programmers. Its popularity, as evidenced by Java's top 3 ranking in language use worldwide, promises abundant career opportunities.
Our course is designed to provide a real-world perspective on programming. As Pallala gowtham R. notes, "Tim's emphasis on coding over theory is exceptional," enabling you to build practical coding skills that are rare to find alongside theoretical knowledge.
Bemnet Bekele B. finds the course "very good" and appreciates that "every topic is explained in detail," making it accessible for beginners. Similarly, Suyash praises the "detailed explanation of JAVA language," highlighting the instructor’s dedication to ensuring students grasp each concept through repetition and clarity.
This Masterclass isn’t just about quantity but quality. With over 100 hours of content, the course is structured to facilitate learning at your own pace. Devansh R. finds the course "very helpful," noting that even with intermediate Java knowledge, there were many new things to learn.
The course is curated to give you a solid grounding in Java essentials in just the first 14 hours. Bhuvanendra's experience is a testament to this: "After completing the first 8 sections, I can see myself improved a lot in the way I write code."
With Java 17 as the focal point, you're learning a version with long-term support and current industry relevance. Moreover, as new versions like Java 21 emerge, this course will adapt, providing you with the most contemporary and robust Java education available.
Choose this course for its bestseller status and join a thriving learning community backed by exceptional reviews. My commitment to quality and continuous improvement means you receive an education that’s both current and comprehensive.
You're not just enrolling in a course; you're gaining a partner in your learning journey. With support to address your questions from myself, teaching assistants, and the community, and regular updates to the content, you'll never feel stuck.
Take the leap today with our 30-day, full money-back guarantee. Whether you seek to develop remarkable programs or embark on a transformative career, you have everything to gain.
Enroll now and become part of a legacy of success. Your Java journey begins here.