
Kick off the complete Java developer course by setting up a cross-platform integrated development environment and learning how the compiler converts Java into bytecode for the JVM.
Explore printing output, creating variables and constants, understanding data types and arithmetic, relational, and logical operators, and obtaining user input through practical projects like Mad Libs.
Start your Java journey by creating a hello world project, writing a main method, and printing to the console with System.out.println, while learning source code, bytecode, the JVM, and syntax.
Learn to document Java code with single-line and multiline comments that describe what the application should do, what it does, and any bugs.
Master declaring and initializing variables and constants in Java, learn data types and identifiers (camel case), and use print vs println, concatenation, and escape sequences.
Explore Java's eight primitive types (byte, short, long, float, double, char, boolean) and how strings are reference types; learn about narrowing and widening conversions and literal typing.
Explore logical operators in Java, including binary and unary forms, truth tables, and how and/or/not evaluate boolean expressions using boolean variables isRaining and isWarm.
Master arithmetic operators in Java, including addition, subtraction, multiplication, division, and modulus, and learn about operands, binary and unary operators, increment and decrement, and compound assignment operators.
learn to read user input in java with the scanner class, import java.util, use system.in, and handle newline consumption after nextLine and nextInt to build interactive programs.
Practice Java fundamentals by implementing a project that reads three real numbers, computes their mean, and prints the average, emphasizing variables, operators, and user input.
Explore relational operators in Java by comparing values with >, >=, <, <=, ==, and !=, and understand how equals treats strings and reference types.
Create a Mad Libs clone in Java by prompting for words, placing them into a prewritten story, and printing the final result.
Explore variables, data types, and constants with the final keyword, master arithmetic, relational, and logical operators, then practice scanner-based input with an average-of-three program and a Mad Libs clone.
Explore control flow in Java: sequence, selection, and repetition with break and continue; generate pseudo random numbers with the random class and tackle a number guessing game.
Explore the three primary categories of Java control statements—sequential, selection, and repetition—through hands-on examples like if-else decisions and a for loop that prints ages.
Explore selection control statements in Java, including if, if else, and switch, and learn multi-way decisions with age-based beer or coke logic, grade evaluation, and a fraternity eligibility challenge.
Learn repetition control statements in Java, including while, do-while, and for loops, including the enhanced for loop, with pre-test and post-test behavior and sentinel and counter controlled patterns.
Explore how continue and break control loop flow in Java, with while, for, and do-while examples; avoid infinite loops and generate even numbers using the modulus operator.
Master the use of control statements for conditional execution in Java. Generate random numbers with the Random class, tune ranges with shifting, and simulate dice rolls using a for loop.
Develop a Java console app that prompts for a package and course count. Calculate the monthly total using base fees, included courses, and additional course charges.
Create a Java class divisible by three that prompts for an integer, uses modulus to check divisibility by three, and prints the result, illustrating Scanner input and selection control statements.
Build a Java console game where the computer picks a number 1-100 and you guess it, counting guesses with feedback for too high, too low, or out of range.
Explore control statements and loops in Java, including if, switch, while, for, and do-while; distinguish pre- and post-test loops, counter and sentinel repetition, plus break, continue, and java.util random.
Build on control statements by exploring data structures, focusing on arrays and array list class in java.util, and tackle projects on arrays, array lists, and parallel arrays to enhance problem-solving.
Explore the fundamentals of arrays in Java by declaring, initializing, and iterating over homogeneous elements using indices and the length property. Print elements and avoid off-by-one errors with practical examples.
Explore how array lists in Java grow dynamically, unlike fixed-size arrays, using java.util.ArrayList with generics and methods like add, get, and size.
Explore wrapper classes that represent primitive types as reference types, enabling generics like array lists to store primitives through auto boxing and auto unboxing, and use their static parsing methods.
Learn to work with built-in arrays in Java, input five integers, store them, then print each value doubled in a separate loop without altering the original array.
Build an array list of non-negative doubles read from the keyboard, stopping when a negative value is entered, and print the list in reverse.
Learn to implement parallel arrays or array lists by collecting five names and ages from keyboard input and printing each name with its corresponding age.
Explore data structures, including fixed arrays and array lists, primitive types and wrapper classes with autoboxing and unboxing, three projects on parallel arrays, and the string and string builder focus.
Explore the string class and its methods, explain string immutability, compare string builder with the string class, and create a project generating first and last name permutations from user input.
Explore the Java string class and its methods—charAt, length, equals, and compareTo—to understand Unicode-based lexicographical order and string comparisons.
Explore string methods like toUpperCase, toLowerCase, substring overloads, and indexOf overloads; learn how these return new strings without mutating the original, then build a name parser with scanner.
Discover how StringBuilder provides mutable text handling in Java, offering in-place edits and efficiency over immutable strings. Learn append, insert, replace, and delete to modify text dynamically.
Build a Java program that reads five full names, splits them into first and last names, and stores them in two array lists to generate all 25 name permutations.
Explore Java string handling: equals, compareTo, and the == operator; learn length, charAt, substring, indexOf; contrast immutable strings with mutable string builder, and complete a project splitting names and permutations.
Explore user defined methods, including return types, parameters, and overloading, learn to pass two dimensional arrays to methods, and tackle the sum of elements and tic tac toe projects.
Explore user defined methods in Java, including void and value returning types, parameter lists, and static calls, and learn how to define, call, and test square functions.
Learn how user defined methods break problems into pieces, enable code reuse, and how Java passes everything by value while objects may appear to change; explore method overloading and signatures.
Explore how a main method calls other methods, the concept of recursion, base and recursive cases, and how the call stack and activation records track these invocations.
Master 2d arrays in java, understanding rows and columns and arrays of arrays that act like matrices and tensors. Create, fill with random numbers, print, and double values with methods.
Create a Java method called someElements that sums an ArrayList<Integer> of any size, using the Integer wrapper, test in main, and print the resulting sum.
Build a Java tic tac toe project by designing a modular game with a three by three gameboard, two players, and a reusable game loop with input and winner checks.
Explore methods, overloading, and method calls to break problems into smaller parts, then master recursion with base and recursive cases, 2D arrays, and classes for object oriented programming.
Learn Java object oriented programming, designing classes, creating objects, and testing projects like bank account class, ice cream class, and circle class; explore fields, methods, instantiate classes, UML class diagrams.
Explore fundamentals of object oriented programming, contrasting with procedural programming, and learn the three core principles—encapsulation, inheritance, and polymorphism—through objects, data, and behavior.
Explore encapsulation as a core principle, uniting data and behavior in objects. Learn to use classes, private fields, getters and setters, and constructors to create portable, self-contained Java objects.
Explore building a rectangle class in Java with private length and width encapsulation, constructors, a static counter, and methods for area and perimeter, guided by uml diagrams.
Practice building an immutable book class with author, title, genre, and pages using a parameterized constructor and only getters, then convert a print book details method to an instance method.
Create a bank account class with constructors, an owner and balance, plus deposit and withdrawal methods that enforce positive amounts, prevent overdrafts, and print warnings for invalid input.
Create an ice cream class using a generic array list for toppings, with name, cost, and scoops, and provide methods to add toppings and print them.
Create and test a circle class with a private radius and no-arg and parameterized constructors. Compute circumference and area using Math.PI and radius squared, and demonstrate formatting in the demo.
Master the core principles of object oriented programming, focusing on encapsulation, inheritance, and polymorphism, and learn to design and use classes and objects with UML diagrams through practical projects.
Persist data by writing to and reading from files, after mastering variables, data types, and control statements. Build rectangles and circles from file data and save calculated results.
Explore file input and exception handling in Java: read integers from a file with a scanner, handle file not found and input mismatch exceptions, and compute a running sum.
Explore file output in Java by writing data to a text file with PrintWriter, handling file not found exceptions, persisting an array list of names.
Read names and ages from two files and write a merged data file using Java IO, Scanner, and PrintWriter.
Read rectangle length and width data from a file into an array list, create rectangle objects, and print each rectangle’s length, width, area, and perimeter.
Read circle radii from a file, instantiate circle objects, and compute their areas and circumferences, printing results to the console and to an output file using a circle class.
Learn to persist data with file input and output, reading from and writing to files to store objects between runs, and apply basic exception handling.
Explore inheritance and polymorphism in Java, examining superclasses, subclasses, abstract classes, interfaces, and enumerated types, while reinforcing encapsulation and the three core OOP principles in an employee class hierarchy application.
Explore inheritance in Java by extending the animal superclass, overriding makenoise in dog and cat subclasses, using super for constructors, and reusing getters and setters.
Explore polymorphism in Java by using dynamic binding with an animal hierarchy, demonstrating how a single print animals method handles dogs and cats through polymorphic references.
Explore similarities and differences between abstract classes and interfaces in java, learn to declare and implement them, and see how extends and implements affect polymorphism in object oriented programming.
Explore enumerated types in Java by defining enums such as day of week and direction, and using switch statements to handle each constant.
Demonstrate inheritance and polymorphism by creating an abstract employee class with name and age, and concrete manager and worker subclasses that implement work, tested via an employee demo array.
Add an employee type enum (worker or manager) and a get employee type method using Java's Random to populate the array with a mix of workers and managers, illustrating polymorphism.
Explore inheritance and polymorphism, three primary principles of object oriented programming, plus abstract classes, interfaces, abstract methods, and enums as discrete constant reference types.
Welcome to The Complete Java Developer Course: From Beginner to Master!
Why learn Java?
Java is 25+ years old, and used eeeeverywhere! Over 7.6 million developers worldwide use Java to create websites, build apps, and write programs - making it one of the most popular programming languages around!
Also, did you know that in the US the average Java developer salary is over $104,000 a year?!
Why is Java so widely used? Well, it's an all-purpose language that can run on any platform, it's quick, easy to learn, highly versatily and there's a huge community of support online as well.
★★★★★ 'Hey Dr Baugh! Former student working as a software engineer at Ford Motor Company! Saw your post and decided to refresh my Java skills with this course! Great so far!' Ahmed Saeed
Why this course?!
This Java course is aimed at beginners, and is designed to get students coding in Java as quickly and confidently as possible! There are practical, hands-on coding challenges in every lecture, so you can practice the code straight away, and make sure you've mastered every line!
You'll learn all the best tips, tricks and theory behind the code, while also building some exciting portfolio projects... including:
Average of three
Mad-Libs clone
Package of the month
Divisible by three
Guess the number
Name permutations
Sum of elements
Tic-tac-toe
PLUS we're currently finishing a whole new Section 7 (an introduction to classes and objects (OOP - object oriented programming) which will be added very, very soon! More sections and lectures are planned following that, on exciting topics such as file input/output, exceptions, more on OOP (inheritance and polymorphism), generics, and collections!
The course is taught by the brilliant John P. Baugh, Ph.D. (4.7 instructor rating). John's a professional software engineer and consultant, as well as a Professor and Chair of Computer Science / Computer Information Systems of a college in the US. John's previous C++ course is 'highest-rated' by Udemy, and students loved John's clear, engaging and hands-on teaching style:
★★★★★ 'Great class. John explains difficult concepts in an easy to understand way. Good job.' Rick Kennard
★★★★★ 'An all-around excellent course! The instructor leaves no major stone unturned with C++. If you're looking to learn the very basics of C++ and get ready for more advanced stuff, you're in the right place.' Lionel Robert
★★★★★ 'It's completely a beginner's course. Anyone who are interested to take c++ course, this is the best course in Udemy.' Sridhar Kunireddy
This course is eligible for the Codestars Certificate Authority (CCA) certificate. Students can take the official exam via codestarscom, and those who pass the quiz will receive their CCA certificate. (more details in the course!)
...So what are you waiting for?! Start your journey from Java beginner to Java expert today!