JAVA.AE1
Java® All-in-One For Dummies®
Your resume called…it wants a Java complete course upgrade. Let’s make it happen.
- 43 Interactive Lessons and 278 topics mapped to the official exam objectives
Intermediate Self-paced · 1 year access
01 / Skills you'll get
What you will be able to do
Enroll in our Java training and master the language that powers millions of apps, from basics to advanced full-stack development.
In this online Java course, you’ll dive into object-oriented programming, JavaFX, web development, and modern Java features. With hands-on labs, turn theory into real code. Learn strings, collections, multi-threading, and even JavaFX UI design. No prior experience needed.
From “Hello, World!” to building scalable applications, you’ll get Full Stack Java Developer training.
- Learn Java Programming: Write, debug, and optimize Java code like a pro, from basic syntax to advanced OOP concepts.
- Full-stack development: Build end-to-end applications with Java, covering backend logic and JavaFX for modern UIs.
- Data Structures & Algorithms: Work with arrays, collections, maps, and trees to solve real-world problems.
- Multithreading & Performance: Manage concurrent operations and optimize code for speed and scalability.
- Exception Handling & Debugging: Write clean code by mastering error handling and troubleshooting techniques.
- JavaFX & Event-Driven UI: Create interactive desktop applications with dynamic layouts, user input, and event handling.
Course Highlights
-
43 Structured Lessons Comprehensive coverage of core course objectives
-
1 Year Full Access Self-paced learning accessible anytime on all devices
02 / Lessons & labs
See exactly what you will learn and practice
Lessons
43 Interactive Lessons · 278 topics01 Introduction 5 topics +
- About This Course
- False Assumptions
- Icons Used in This course
- Beyond the Course
- Where to Go from Here
02 Welcome to Java 4 topics +
- What Is Java, and Why Is It So Great?
- Important Features of the Java Language
- Java Version Insanity
- What’s in a Name?
03 Installing and Using Java Tools 4 topics · 1 LiveLab +
- Downloading and Installing the Java Development Kit
- Confirming Your Java Version
- Using Java’s Command-Line Tools
- Using Java Documentation
1 LiveLab in this lesson — see the labs panel →
04 Working with TextPad 4 topics +
- Downloading and Installing TextPad
- Editing Source Files
- Compiling a Program
- Running a Java Program
05 Java Programming Basics 8 topics · 3 LiveLab +
- Looking at the Venerable Hello, World! Program
- Dealing with Keywords
- Working with Statements
- Working with Blocks
- Creating Identifiers
- Crafting Comments
- Introducing Object-Oriented Programming
- Importing Java API Classes
3 LiveLab in this lesson — see the labs panel →
06 Working with Variables and Data Types 13 topics · 6 LiveLab +
- Declaring Variables
- Initializing Variables
- Using Final Variables (Constants)
- Working with Primitive Data Types
- Working with Strings
- Converting and Casting Numeric Data
- Thinking Inside the Box
- Understanding Scope
- Shadowing Variables
- Printing Data with System.out
- Getting Input with the Scanner Class
- Getting Input with the JOptionPane Class
- Using enum to Create Your Own Data Types
6 LiveLab in this lesson — see the labs panel →
07 Working with Numbers and Expressions 10 topics · 3 LiveLab +
- Working with Arithmetic Operators
- Dividing Integers
- Combining Operators
- Using the Unary Plus and Minus Operators
- Using Increment and Decrement Operators
- Using the Assignment Operator
- Using Compound Assignment Operators
- Using the Math Class
- Formatting Numbers
- Recognizing Weird Things about Java Math
3 LiveLab in this lesson — see the labs panel →
08 Making Choices 5 topics · 5 LiveLab +
- Using Simple Boolean Expressions
- Using if Statements
- Using Mr. Spock’s Favorite Operators (Logical Ones, of Course)
- Using the Conditional Operator
- Comparing Strings
5 LiveLab in this lesson — see the labs panel →
09 Going Around in Circles (or, Using Loops) 8 topics +
- Using Your Basic while Loop
- Breaking Out of a Loop
- Looping Forever
- Using the continue Statement
- Running do-while Loops
- Validating Input from the User
- Using the Famous for Loop
- Nesting Your Loops
10 Pulling a Switcheroo 7 topics +
- Battling else-if Monstrosities
- Using the switch Statement
- Creating Character Cases
- Matching Two or More Values in a Single Case Group
- Intentionally Leaving Out a Break Statement
- Switching with Strings
- Assigning a Value with a Switch Statement
11 Adding Some Methods to Your Madness 4 topics +
- The Joy of Methods
- The Basics of Making Methods
- Methods That Return Values
- Methods That Take Parameters
12 Handling Exceptions 9 topics +
- Understanding Exceptions
- Catching Exceptions
- Handling Exceptions with a Preemptive Strike
- Catching All Exceptions at Once
- Displaying the Exception Message
- Using a finally Block
- Handling Checked Exceptions
- Throwing Your Own Exceptions
- Using the try-with-resources Statement
13 Understanding Object-Oriented Programming 6 topics +
- What Is Object-Oriented Programming?
- Understanding Objects
- Understanding the Life Cycle of an Object
- Working with Related Classes
- Designing a Program with Objects
- Diagramming Classes with UML
14 Making Your Own Classes 8 topics · 3 LiveLab +
- Declaring a Class
- Working with Members
- Using Getters and Setters
- Overloading Methods
- Creating Constructors
- Finding More Uses for the this Keyword
- Using Initializers
- Using Records
3 LiveLab in this lesson — see the labs panel →
15 Working with Statics 6 topics · 1 LiveLab +
- Understanding Static Fields and Methods
- Working with Static Fields
- Using Static Methods
- Counting Instances
- Preventing Instances
- Using Static Initializers
1 LiveLab in this lesson — see the labs panel →
16 Using Subclasses and Inheritance 11 topics · 1 LiveLab +
- Introducing Inheritance
- Creating Subclasses
- Overriding Methods
- Protecting Your Members
- Using the this and super Keywords in Your Subclasses
- Understanding Inheritance and Constructors
- Using the final Keyword
- Casting Up and Down
- Determining an Object’s Type
- Poly What?
- Creating Custom Exceptions
1 LiveLab in this lesson — see the labs panel →
17 Using Abstract Classes and Interfaces 6 topics · 2 LiveLab +
- Using Abstract Classes
- Using Interfaces
- More Things You Can Do with Interfaces
- Using Additional Interface Method Types
- Two Interfaces That Enable Java Language Features
- Sealing Your Classes
2 LiveLab in this lesson — see the labs panel →
18 Using the Object and Class Classes 6 topics · 2 LiveLab +
- The Mother of All Classes: Object
- The toString Method
- The equals Method
- The clone Method
- The Class Class
- Using the instanceof Operator
2 LiveLab in this lesson — see the labs panel →
19 Using Inner Classes and Anonymous Classes 3 topics · 1 LiveLab +
- Declaring Inner Classes
- Using Static Inner Classes
- Using Anonymous Inner Classes
1 LiveLab in this lesson — see the labs panel →
20 Working with Packages and the Java Module System 4 topics · 1 LiveLab +
- Working with Packages
- Putting Your Classes in a JAR File
- Using Javadoc to Document Your Classes
- Using the Java Module System
1 LiveLab in this lesson — see the labs panel →
21 Working with Strings 6 topics · 2 LiveLab +
- Reviewing Strings
- Using the String Class
- Determining Whether a String Is Empty
- Using the StringBuilder and StringBuffer Classes
- Using the CharSequence Interface
- Using Text Blocks
2 LiveLab in this lesson — see the labs panel →
22 Using Regular Expressions 3 topics · 1 LiveLab +
- Creating a Program for Experimenting with Regular Expressions
- Performing Basic Character Matching
- Using Regular Expressions in Java Programs
1 LiveLab in this lesson — see the labs panel →
23 Working with Dates and Times 11 topics · 4 LiveLab +
- Pondering How Time Is Represented
- Picking the Right Date and Time Class for Your Application
- Using the now Method to Create a Date-Time Object
- Using the parse Method to Create a Date-Time Object
- Using the of Method to Create a Date-Time Object
- Looking Closer at the LocalDate Class
- Extracting Information about a Date
- Comparing Dates
- Calculating with Dates
- Formatting Dates
- Looking at a Fun Birthday Calculator
4 LiveLab in this lesson — see the labs panel →
24 Using the BigDecimal Class 8 topics · 1 LiveLab +
- Seeing Why Java Can’t Add
- BigDecimal to the Rescue!
- Creating BigDecimal Objects
- Doing BigDecimal Arithmetic
- Rounding BigDecimal Values
- Comparing BigDecimal Values
- Converting BigDecimals to Strings
- Revisiting Sales Tax
1 LiveLab in this lesson — see the labs panel →
25 Introducing Data Structures 11 topics · 1 LiveLab +
- Imagining Models of Computation
- Defining Data Structures
- Quantifying Performance
- Analyzing Arrays
- Looking at Linked Lists
- Doubling Down with Doubly Linked Lists
- Surmising Stacks, Queues, and Deques
- Musing about Maps
- Checking Out Hash Maps
- Tackling Trees
- Checking Out Binary Trees
1 LiveLab in this lesson — see the labs panel →
26 Using Arrays 11 topics · 4 LiveLab +
- Understanding Arrays
- Creating Arrays
- Initializing an Array
- Using for Loops with Arrays
- Solving Homework Problems with Arrays
- Using the Enhanced for Loop
- Using Arrays with Methods
- Using Varargs
- Using Two-Dimensional Arrays
- Working with a Fun but Complicated Example: A Chessboard
- Using the Arrays Class
4 LiveLab in this lesson — see the labs panel →
27 Using the ArrayList Class 8 topics · 3 LiveLab +
- Understanding the ArrayList Class
- Creating an ArrayList Object
- Adding Elements
- Accessing Elements
- Printing an ArrayList
- Using an Iterator
- Updating Elements
- Deleting Elements
3 LiveLab in this lesson — see the labs panel →
28 Using the LinkedList Class 6 topics · 2 LiveLab +
- Understanding the LinkedList Class
- Creating a LinkedList
- Adding Items to a LinkedList
- Retrieving Items from a LinkedList
- Updating LinkedList Items
- Removing LinkedList Items
2 LiveLab in this lesson — see the labs panel →
29 Creating Generic Collection Classes 5 topics · 1 LiveLab +
- Why Generics?
- Creating a Generic Class
- A Generic Stack Class
- Using Wildcard-Type Parameters
- A Generic Queue Class
1 LiveLab in this lesson — see the labs panel →
30 Using Maps and Trees 4 topics · 2 LiveLab +
- Mastering Maps
- Using the HashMap Class
- Removing Entries from a Hash Map
- Using the TreeMap Class
2 LiveLab in this lesson — see the labs panel →
31 Introducing Algorithms 3 topics +
- What Is an Algorithm?
- Classifying Algorithms
- Some Fun Algorithm Challenges
32 Using Recursion 3 topics · 1 LiveLab +
- Calculating the Classic Factorial Example
- Displaying Directories
- Playing the Towers of Hanoi
1 LiveLab in this lesson — see the labs panel →
33 Sorting 2 topics · 2 LiveLab +
- Looking at the Bubble Sort Algorithm
- Introducing the Quicksort Algorithm
2 LiveLab in this lesson — see the labs panel →
34 Searching 3 topics · 2 LiveLab +
- Creating a Data Structure Worth Searching
- Looking at Linear Searching
- Using a Binary Search
2 LiveLab in this lesson — see the labs panel →
35 Programming Threads 8 topics · 1 LiveLab +
- Understanding Threads
- Creating a Thread
- Implementing the Runnable Interface
- Creating Threads That Work Together
- Using an Executor
- Synchronizing Methods
- Creating a Lock
- Coping with Threadus Interruptus
1 LiveLab in this lesson — see the labs panel →
36 Using Functional Programming and Lambda Expressions 6 topics · 2 LiveLab +
- Introducing Functional Programming
- Introducing Functional Interfaces
- Using Lambda Expressions
- Passing Parameters via Lambda Expressions
- Using Block Lambda Expressions
- Using the java.util.function Package
2 LiveLab in this lesson — see the labs panel →
37 Consuming Web Services with HttpClient 5 topics · 1 LiveLab +
- Introducing Web Services
- Understanding HTTP
- Getting Started with Java’s HTTP Client Library
- Putting It All Together
- The HTTP Tester Program
1 LiveLab in this lesson — see the labs panel →
38 Hello, JavaFX! 13 topics · 2 LiveLab +
- Perusing the Possibilities of JavaFX
- Getting Ready to Run JavaFX
- Looking at a Simple JavaFX Program
- Importing JavaFX Packages
- Extending the Application Class
- Launching the Application
- Overriding the start Method
- Creating a Button
- Handling an Action Event
- Creating a Layout Pane
- Making a Scene
- Setting the Stage
- Examining the Click Counter Program
2 LiveLab in this lesson — see the labs panel →
39 Handling Events 6 topics · 2 LiveLab +
- Examining Events
- Handling Events
- Implementing the EventHandler Interface
- Handling Events with Inner Classes
- Handling Events with Anonymous Inner Classes
- Using Lambda Expressions to Handle Events
2 LiveLab in this lesson — see the labs panel →
40 Setting the Stage and Scene Layout 5 topics · 2 LiveLab +
- Examining the Stage Class
- Examining the Scene Class
- Switching Scenes
- Creating an Alert Box
- Exit, Stage Right
2 LiveLab in this lesson — see the labs panel →
41 Using Layout Panes to Arrange Your Scenes 10 topics · 1 LiveLab +
- Working with Layout Panes
- Using the HBox Layout
- Spacing Things Out
- Adding Space with Margins
- Adding Space by Growing Nodes
- Using the VBox Layout
- Aligning Nodes in a Layout Pane
- Using the Flow Layout
- Using the Border Layout
- Using the GridPane Layout
1 LiveLab in this lesson — see the labs panel →
42 Getting Input from the User 4 topics · 2 LiveLab +
- Using Text Fields
- Validating Numeric Data
- Using Check Boxes
- Using Radio Buttons
2 LiveLab in this lesson — see the labs panel →
43 Choosing from a List 6 topics · 3 LiveLab +
- Using Choice Boxes
- Working with Observable Lists
- Listening for Selection Changes
- Using Combo Boxes
- Using List Views
- Using Tree Views
3 LiveLab in this lesson — see the labs panel →
03 / FAQs
Questions before you start
How to learn Java? +
Can I complete Java in 3 months?+
Yes! With 2-3 hours of daily practice, you can master Java basics in 3 months. For full stack Java (including frameworks like Spring), aim for 6 months.
This java programming for complete beginners course will accelerate learning with focused modules. So, don’t sweat, even if you’re new to this programming language.
What is a Java developer's salary?+
Salaries of Java Developers vary by experience, location, and full-stack skills.
- US: $127,887/year
- UK: £69,800/year
- Germany: €55,000/year
Is Java full stack in demand?+
Is Java used in AI?+
Code in Java
Java jobs are everywhere. Grab this course, learn fast, and get hired before the season ends.
- 1 year of full access
- Certificate of completion