Java Masterclass 2025: 130+ Hours of Expert Lessons
Gain real-world experience with OOP, coding exercises, and problem-solving for job-ready Java development skills
Gain real-world experience with OOP, coding exercises, and problem-solving for job-ready Java development skills
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.
FAQ area empty
Course Introduction: Your Journey to Becoming a Java Developer
Xem trướcCourse Remastered: All Lessons Updated to Java 17 with New Slides
Xem trướcMaximizing Video Quality for Optimal Course Viewing Experience
Xem trướcEnabling and Using Subtitles for Improved Course Comprehension
Xem trướcGetting Help: Using the Q&A Section for Java Programming Support
Xem trướcSource Code Access and the Importance of Hands-On Coding Practice
Xem trướcThe Key to Success: Persistence and a Growth Mindset in Programming
Xem trướcChoosing the Right Java Version: Understanding Long-Term Support (LTS)
Xem trướcEssential Software Tools for Java Development: JDK 17 and IntelliJ IDEA
Xem trướcStep-by-Step Guide to Installing JDK 17 on Windows 10 and Windows 11
Xem trướcInstalling JDK 17 on macOS: A Comprehensive Guide for Intel and M1/M2 Macs
Xem trướcInstalling OpenJDK 17 on Ubuntu Linux: A Step-by-Step Terminal Guide
Xem trướcVerify Java Installation and Explore Java Interactively with JShell
Xem trướcYour First Java Program: Displaying "Hello World" and Basic Error Handling
Xem trướcIntroduction to Variables, Keywords, and the Integer (int) Data Type
Xem trướcUsing Variables in Java Expressions: A Comprehensive Introduction
Xem trướcExploring Java Primitive Types: Integer Ranges and Wrapper Classes
Xem trướcUnderstanding Byte, Short, and Long Data Types and Their Width in Java
Xem trướcUnderstanding and Using Casting with Numeric Primitive Types in Java
Xem trướcPrimitive Types Challenge: Applying Your Knowledge of Integer Variables
Xem trướcWorking with Float and Double: Precision in Floating Point Numbers
Xem trướcUnderstanding Floating-Point Precision: A Practical Challenge in Java
Xem trướcExploring Character (char) and Boolean Primitive Data Types in Java
Xem trướcRecap of Primitive Types and Introduction to the String Class in Java
Xem trướcMastering Operators, Operands, and Expressions in Java Programming
Xem trướcSimplifying Java Code: Using Abbreviated Operators for Concise Operations
Xem trướcEmbracing the Power of an Integrated Development Environment
Xem trướcWhat is an IDE?
Xem trướcInstalling Intellij IDEA for Windows
Xem trướcInstalling Intellij IDEA for Mac
Xem trướcInstalling Intellij IDEA for Linux
Xem trướcConfiguring IntelliJ IDEA for Windows
Xem trướcConfiguring IntelliJ IDEA for Mac
Xem trướcConfiguring IntelliJ IDEA for Linux
Xem trướcCreating Your First IntelliJ Project: "Hello World" Java Code Implementation
Xem trướcUnderstanding IntelliJ Code Structure: Classes, Methods, and Basic Java Syntax
Xem trướcMastering Java's if-then Statement: Conditional Logic for Program Flow Control
Xem trướcAdvanced Conditional Logic: Implementing the Logical AND Operator in Java Code
Xem trướcJava's Logical OR Operator: Enhancing Conditional Statements for Flexible Code
Xem trướcAssignment vs. Equality: Avoiding Common Java Operator Errors in IntelliJ
Xem trướcStreamlining Code: Implementing Java's Ternary Operator for Concise Conditionals
Xem trướcJava Operator Precedence: Mastering Expression Evaluation and Challenge
Xem trướcIntroduction To The Fundamentals Of Java Workflow
Xem trướcExploring Java Keywords And Understanding Expressions
Xem trướcMastering Java Statements, Whitespace, And Code Organization
Xem trướcHarnessing Code Blocks And The If-Then-Else Statement In Java
Xem trướcPractical If-Then-Else Challenge For Java Flow Control
Xem trướcDeep Overview Of Methods In Java For Reusable Code
Xem trướcEnhancing Skills With Additional Java Method Techniques
Xem trướcComprehensive Recap Of Java Methods
Xem trướcHands-On Java Method Challenge For Deeper Practice
Xem trướcComparing And Reviewing Code In IntelliJ For Better Development
Xem trướcIntroduction To Java Coding Exercises For Skill Development
Xem trướcDelving Into Method Overloading In Java
Xem trướcPractical Method Overloading Challenge To Strengthen Java Expertise
Xem trướcComprehensive Seconds-And-Minutes Challenge For Time-Based Calculations
Xem trướcDetailed Bonus Challenge Solution And Key Insights
Xem trướcIntroduction To The Foundations Of Program Flow In Java
Xem trướcExploring The Traditional And Enhanced Switch Statements
Xem trướcDelving Deeper Into Advanced Switch Statement Features
Xem trướcTraditional Switch Statement Challenge And Practical Exercises
Xem trướcEmbracing Switch Expressions With A Hands-On Coding Challenge
Xem trướcMastering The for Statement For Repetitive Task Automation
Xem trướcComprehensive for Loop Challenge To Strengthen Iteration Skills
Xem trướcSum 3 And 5 Challenge With IntelliJ Debugger Insights
Xem trướcFor Loop Recap And Key Takeaways For Iteration In Java
Xem trướcThe while And do-while Statements For Conditional Looping
Xem trướcPractical while Loop Exercises And Challenges
Xem trướcDigit Sum Challenge And Further Looping Techniques
Xem trướcRevisiting The while And do-while Loops: A Complete Recap
Xem trướcExploring Local Variables And Scope In Java Blocks
Xem trướcUnderstanding Classes, Objects, And Static Versus Instance Members
Xem trướcParsing Values And Reading Console Input – system.console() Overview
Xem trướcHandling Exceptions And Introducing The Scanner Class
Xem trướcReading Input With The Scanner For Seamless User Interaction
Xem trướcHands-On Reading User Input Challenge For Practical Mastery
Xem trướcIdentifying Min And Max Values – A Final Control Flow Challenge
Xem trướcWelcome to Java OOP Inheritance
Xem trướcDeep Dive into Classes and Objects
Xem trướcGetters, Encapsulation, and Object Access
Xem trướcSetters, Object Creation, and OOP Practice
Xem trướcClasses Challenge: Building a Bank Account
Xem trướcConstructors Part 1: Object Initialization
Xem trướcConstructors Part 2: Overloading and Chaining
Xem trướcConstructor Challenge: Building Customer Data
Xem trướcUnderstanding References, Objects, and Instances
Xem trướcStatic vs. Instance Variables in Java
Xem trướcStatic vs. Instance Methods Explained
Xem trướcPOJOs: Plain Old Java Objects
Xem trướcJava Records: The Modern POJO Approach
Xem trướcInheritance - Part 1: The Basics
Xem trướcInheritance - Part 2: Extending Animal Class
Xem trướcInheritance - Part 3: Unique Dog & Fish Classes
Xem trướcUnveiling java.lang.Object in Java
Xem trướcInheritance Challenge - Designing a Worker Hierarchy
Xem trướcInheritance Challenge Part 2: Specialized Employees
Xem trướcUsing this and super for Constructors
Xem trướcMethod Overloading vs. Overriding Explained
Xem trướcText Blocks & Advanced Output Formatting
Xem trướcRevisiting the String: Methods and Best Practices
Xem trướcMastering String Manipulation Methods
Xem trướcThe StringBuilder: Efficient Mutable Strings
Xem trướcEmbarking on OOP Part 2: Composition, Encapsulation, and Polymorphism Essentials
Xem trướcBuilding a Computer with Composition: Understanding Has-A vs. Is-A in Java
Xem trướcAssembling a Personal Computer: Real-World Composition and Object Management
Xem trướcHands-On Smart Kitchen Challenge: Modeling IoT Appliances with Composition
Xem trướcEncapsulation Essentials, Part 1: Data Hiding and Simplifying Interfaces
Xem trướcEncapsulation Deep Dive, Part 2: Enhancing Classes and Securing Data
Xem trướcEncapsulation Challenge: Building a Printer with Toner and Duplex Functionality
Xem trướcPolymorphism Foundations, Part 1: Introducing Movie Subclasses for Runtime Varia
Xem trướcPolymorphism in Practice, Part 2: Factory Methods, Runtime Types, and Movie Scen
Xem trướcAdvanced Casting and var Usage: Navigating Compile-Time vs. Runtime Types in Jav
Xem trướcRuntime Type Inspection: Mastering instanceof and Pattern Matching in Java
Xem trướcPolymorphism Challenge: Building Gas, Electric, and Hybrid Car Classes in Java
Xem trướcPolymorphism Challenge, Part 2: Finalizing Car Inheritance and Overridden Method
Xem trướcOOP Master Challenge, Part 1: Crafting a Burger Restaurant App with OOP Concepts
Xem trướcOOP Master Challenge, Part 2: Implementing Meal Orders and Pricing Strategies
Xem trướcOOP Master Challenge: Deluxe Burger Bonus Adding Specialized Topping and Pricing
Xem trướcProject Structure and Modular Design: Harnessing Packages and Import Statements
Xem trướcArrays Introduction: Handling Multiple Values Efficiently in Java
Xem trướcDeclaring, Initializing, and Accessing Arrays: Foundational Principles
Xem trướcPopulating, Looping, and Searching: Deeper into Java Arrays
Xem trướcSorting, Filling, and Copying: Mastering the java.util.Arrays Helper Class
Xem trướcBinary Search & Equality Checks: Speedy Lookups and Comparisons in Arrays
Xem trướcDescending Sort Challenge: Building Your Array Skills with Real Data
Xem trướcCommon Pitfalls & Best Practices: A Comprehensive Arrays Recap
Xem trướcReference vs. Value Types: Understanding Array Memory and Method Calls
Xem trướcEmbracing varargs: Flexible Method Parameters and Array Conversions
Xem trướcFinding the Smallest Value: A Hands-On Minimum Element Challenge
Xem trướcReversing Arrays In-Place: Hands-On Practice with Swapping Elements
Xem trướcNavigating 2D Arrays: Matrix Representation and Nested Loop Traversals
Xem trướcExpanding to Multi-dimensional Arrays: Jagged Structures and Complex Data
Xem trướcIntroduction to Java Collections: Beyond Basic Arrays
Xem trướcMeet the List Interface & ArrayList (Part 1)
Xem trướcArrayList Methods (Part 2): Add, Remove, and More
Xem trướcArrayList Methods (Part 3): Sorting, Copying & Searching
Xem trướcArrays vs. ArrayLists: A Practical Comparison
Xem trướcArrayList Challenge Part 1: Building an Interactive Grocery List
Xem trướcLinkedList Overview: Memory, Big O, and Why LinkedList Exists
Xem trướcLinkedList Essentials (Part 1): Adding & Removing Elements
Xem trướcLinkedList Essentials (Part 2): Retrieving & Itinerary Example
Xem trướcIterators Explained: Navigating Lists with Forward & Reverse
Xem trướcLinkedList Challenge: Ordered Travel Itinerary (Part 1)
Xem trướcLinkedList Challenge Continued: Interactive Navigation
Xem trướcIntroduction to Autoboxing & Unboxing: Moving Between Primitives & Wrappers
Xem trướcAutoboxing & Unboxing for Arrays & Lists: Working with Wrapper Classes
Xem trướcAutoboxing & Unboxing Challenge: Simple Banking App (Part 1)
Xem trướcAutoboxing & Unboxing Challenge: Bank & Customer Implementation (Part 2)
Xem trướcEnums Demystified: Declaring & Using Predefined Constants
Xem trướcEnums (Part 2): Switch Expressions & Custom Methods in Enums
Xem trướcAbstraction & Generalization: Less Code, More Extensibility
Xem trướcExploring Abstract & Interface Modifiers: Real-World Modeling in Java
Xem trướcDiving into Abstract Classes (Part 1): Creating Flexible Hierarchies
Xem trướcDiving into Abstract Classes (Part 2): Polymorphic Behavior & Implementation
Xem trướcDiving into Abstract Classes (Part 3): Advanced Hierarchies & Use Cases
Xem trướcAbstract Class Challenge (Part 1): Building a Storefront & Product Hierarchy
Xem trướcAbstract Class Challenge (Part 2): Finalizing the Store & Order System
Xem trướcInterfaces (Part 1): Harnessing Contracts & Polymorphic Behavior in Java
Xem trướcInterfaces (Part 2): Multiple Implementations & Real-World Examples
Xem trướcInterfaces (Part 3): Constants, Conversion & Flexible Abstractions
Xem trướcInterfaces & JDK 8 Enhancements: Default/Static Methods for Compatibility
Xem trướcInterfaces & JDK 9 Enhancements: Private & Static Methods in Action
Xem trướcInterface vs. Abstract Class: Key Differences & Best Use Cases
Xem trướcInterface Challenge (Part 1): Creating Mappable Classes & GeoJSON-Like Output
Xem trướcInterface Challenge (Part 2): Finalizing Mapping Logic & Extended Features
Xem trướcGenerics Overview: Why Type Parameters & Where They Excel
Xem trướcCreating Your First Generic Class: From Basics to Implementation
Xem trướcRefining Generic Classes: Polymorphism & Type Safety
Xem trướcAdvanced Generics: Multiple Type Parameters & Bounded Types
Xem trướcGeneric Class Challenge (Part 1): Building Reusable Structures
Xem trướcGeneric Class Challenge (Part 2): Finalizing Maps & Overviews
Xem trướcComparable Revisited: Sorting Objects by Natural Order
Xem trướcComparable vs. Comparator: Distinctions & Sorting Strategies
Xem trướcGeneric Classes as Reference Types: Wildcards & Method Parameters
Xem trướcGeneric Methods, Wildcards & Type Erasure: Handling Advanced Cases
Xem trướcStatic Methods in Generics & Multiple Upper Bounds Explained
Xem trướcFinal Generics Challenge: Integrating Bounded Types & Comparators
Xem trướcUnderstanding Nested Classes: Overview & Types
Xem trướcStatic Nested Classes: Encapsulation & Access Rules
Xem trướcInner Classes: Non-Static Nesting & Syntax
Xem trướcApplying Inner Classes: Bill’s Burger Revisited
Xem trướcInner Classes Challenge: Practical Enhancements
Xem trướcLocal Classes: Scoping & Effective-Final Variables
Xem trướcAnonymous Classes: Inline Instantiation & Use Cases
Xem trướcLocal & Anonymous Classes Challenge
Xem trướcIntroduction to Lambda Expressions: Revolutionizing Java Code with Conciseness
Xem trướcDeep Dive into Lambda Expressions and Functional Interfaces: Practical Examples
Xem trướcExploring Lambda Expression Syntax: Variations, Rules, and Advanced Examples
Xem trướcCustom Functional Interfaces: Building Reusable Lambda Expressions in Java
Xem trướcExploring Java's Built-In Functional Interfaces: Consumer and Predicate
Xem trướcExploring Java's Built-In Functional Interfaces: Function and Supplier
Xem trướcHands-On Practice: Lambda Mini-Challenges for Skill Reinforcement and Mastery
Xem trướcLambda Expression Challenge: Applying Skills with Arrays, Lists, and Operations
Xem trướcDemystifying Method References: Simplifying Lambda Expressions in Java Code
Xem trướcUnderstanding the Most Complex Method References: Unbounded Receiver Explained
Xem trướcHands-On Practice: Method Reference Challenge for Practical Skill Development
Xem trướcChaining Lambdas: Leveraging Convenience Methods on Functional Interfaces
Xem trướcAdvanced Comparator Usage: Leveraging Convenience Methods for Enhanced Sorting
Xem trướcJava Collections Framework: An In-Depth Introduction for Beginners
Xem trướcDeep Dive into Java Collections: Core Interfaces and Big Picture
Xem trướcCreating a Versatile Deck of Cards in Java: Code Setup & Best Practices
Xem trướcExploring java.util.Collections: Essential Methods and List Operations
Xem trướcAdvanced java.util.Collections: Shuffle, Reverse, Sort, indexOfSubList
Xem trướcMastering java.util.Collections: binarySearch, frequency, min, max, rotate
Xem trướcChallenge: Building a Custom Card Game with java.util.Collections
Xem trướcCompleting the Collections Challenge: Five Card Draw (Poker)
Xem trướcJava Hash Codes Explained: Mastering the Basics for Effective Collections
Xem trướcPreparing for Sets and Maps: Setting Up Phone and Email Contacts in Java
Xem trướcIntroduction to Java Sets and HashSet: Mastering Unordered Collections
Xem trướcJava Set Operations Explained: Mastering Union, Intersection, & Difference
Xem trướcJava Set Operations Challenge: Setting Up Task and TaskData Classes
Xem trướcJava Set Operations Challenge: Real-World Application with Task Management
Xem trướcExploring LinkedHashSet and TreeSet: Ordered Sets in Java
Xem trướcJava TreeSet Mastery: Navigating with Closest Match and Subset Methods
Xem trướcChallenge: Building a Robust Theatre Seat Booking System with TreeSet
Xem trướcCompleting the Theatre Seat Booking System Challenge
Xem trướcComprehensive Guide to the Java Map Interface and Its Functionality
Xem trướcAdvanced Map Operations: compute, replace, and remove Methods Explained
Xem trướcMastering Map View Collections: keySet, values, and entrySet in Java
Xem trướcChallenge: Build a Text-Based Adventure Game with Java HashMap
Xem trướcCompleting the Text Adventure Game Challenge
Xem trướcExploring LinkedHashMap and TreeMap: Ordered Maps in Java
Xem trướcMastering TreeMap: NavigableMap Methods for Efficient Data Handling
Xem trướcEnumSet and EnumMap: Optimizing Collections for Enum Types in Java
Xem trướcCollection Framework Final Challenge Part 1
Xem trướcBuilding a Complete Store Inventory Management System (Part 1)
Xem trướcBuilding a Complete Store Inventory Management System (Part 2)
Xem trướcMutable vs Immutable Objects in Java: Advantages, Disadvantages, and Design
Xem trướcDeep Dive into the Final Modifier: Methods, Fields, Classes, Variables
Xem trướcFinal Modifier: Static Methods, Hiding vs. Overriding, Final Variables
Xem trướcUnderstanding Side Effects of Mutability: Defensive Coding Techniques
Xem trướcDesigning Immutable Classes: Private Final Fields, Defensive Copies - Part 1
Xem trướcCreating Truly Immutable Java Classes: Preventing Subclass Modification
Xem trướcImplement Immutable BankAccount and BankCustomer Classes in Java
Xem trướcShallow vs. Deep Copies: Protecting Data Integrity in Java Applications
Xem trướcImmutable Collections, Unmodifiable Views: Limitations and Best Practices
Xem trướcImplementing Unmodifiable Collections in a Banking Application
Xem trướcBuilding a Secure Banking Application: Implementing Transaction Handling
Xem trướcJava Constructors: No-args, Initializers, Final Fields, and Inheritance
Xem trướcDemystifying Record Constructors: Canonical, Custom, and Compact Forms
Xem trướcMastering Enum Constructors and Static Initializers in Java
Xem trướcBuilding a Game Console Framework with Player Input
Xem trướcBuilding a Generic Game Console: Implementing Game and Player Interactions
Xem trướcJava Coding Challenge: Design a Pirate Adventure with Constructors & Initializer
Xem trướcPirate Game Development in Java: Implementing Game Logic and Data Loading
Xem trướcEnhancing Code Security: Final Classes & Constructor Access Modifiers
Xem trướcRestricting Class Extension in Java with the Sealed Classes and Interfaces
Xem trướcBuilding a Complete Pirate Game: Loot, Combat, and Town Features in Java
Xem trướcFinal Java Game Enhancements: Implementing Town Features and Combat Interactions
Xem trướcUnderstanding Java Streams: Core Concepts and Key Differences from Collections
Xem trướcPractical Java Stream Example: Manipulating and Transforming Bingo Ball Data
Xem trướcDeep Dive into Java Stream Pipelines: Sources, Intermediate, and Terminal Ops
Xem trướcExploring Java Stream Sources: Collections, Arrays, and Infinite Data Streams
Xem trướcChallenge: Mastering Stream Sources and Data Concatenation in Java
Xem trướcFiltering and Transforming Data: distinct, filter, limit, skip, takeWhile, dropW
Xem trướcMap, Peek and Sorted Operations, using Comparator interface
Xem trướcMastering Terminal Ops: Find Statistics, Match Elements
Xem trướcBuilding a Student Engagement System: Code Setup - Part 1
Xem trướcStudent Class Construction: Code Setup - Part 2 for Stream Processing
Xem trướcTerminal Operations Challenge Part 1 - Student Data Analysis
Xem trướcEnhancing Data Analysis: Advanced Terminal Operation Challenge Solution
Xem trướcCollecting Data in Java Streams, the Collect and Reduce operations
Xem trướcAdvanced Stream Processing: Practical Applications of Collect and Reduce
Xem trướcTerminal Operations Part 2 - Advanced Data Aggregation Challenge
Xem trướcJava Optionals: Preventing NullPointerExceptions and Handling Missing Values
Xem trướcMastering Stream Terminal Operations Find, Min, Max, Average, and Reduce in Java
Xem trướcChallenge: Advanced Stream Operations and Data Analysis on Student Engagement
Xem trướcTransforming Data Structures: Using flatMap to Stream Map Elements in Java
Xem trướcComprehensive Streams Challenge: Applying Advanced Techniques in Java
Xem trướcRevisiting Essential Java Core API Functionalities: Math and java.time
Xem trướcMastering the Java Math Class: Preventing Overflow and Underflow Errors
Xem trướcComprehensive Guide to Random Number Generation: Math.random and Random
Xem trướcJava Dice Rolling Game: Implementing Randomization and User Input Challenge
Xem trướcAdvanced Dice Game: Implementing Scoring and Game Logic with Java Enums
Xem trướcMastering BigDecimal for Financial Applications: Precision and Scale in Java
Xem trướcAdvanced BigDecimal Operations: Controlling Rounding and Precision in Java
Xem trướcComprehensive Introduction to Java Date and Time API (java.time package)
Xem trướcWorking with LocalDate in Java: Creation, Manipulation, and Comparison
Xem trướcMastering LocalTime and LocalDateTime in Java: A Comprehensive Guide
Xem trướcUnderstanding Instance, Period, Duration, and Time Zones in Java's Time API
Xem trướcExploring Java Time Zones: ZoneId, Zone Offset, and Daylight Savings Time
Xem trướcMastering Java Time: Instant, ZonedDateTime, Duration, Period, ChronoUnit
Xem trướcIntroduction to Java Localization and the Locale Class: Concepts and Usage
Xem trướcApplying Localization in Java: Formatting Dates, Numbers, and Currencies
Xem trướcDateTime & Localization: Cross-Timezone Meeting Scheduler Challenge (10 Days)
Xem trướcJava Internationalization: Using ResourceBundle for Multi-Language Support
Xem trướcResourceBundle in Java: Creating Multi-Language Applications (Part 2)
Xem trướcIntroduction to Regular Expressions: Practical Uses and Applications in Java
Xem trướcDemystifying Regular Expressions: Understanding Syntax, Usage, and Benefits
Xem trướcDecoding Regular Expressions: Literals, Character Classes, Quantifiers, Anchors
Xem trướcUsing Regular Expressions with String and Scanner: split(), replaceAll(), etc.
Xem trướcRegular Expression Challenges: Applying Concepts through Practical Exercises
Xem trướcAdvanced Regular Expressions with Pattern and Matcher: Compilation and Matching
Xem trướcExtracting Data with Matcher: find(), group(), Grouping, and Capturing in Java
Xem trướcReplacing Text Efficiently: Exploring Matcher's Replacement Methods in Java
Xem trướcIn-Depth Review: Dissecting Complex Regular Expressions for Phone/HTML Tags
Xem trướcCrafting a Robust Email Validator: A Comprehensive Regular Expression Challenge
Xem trướcJava I/O Fundamentals: Resources, Operations, and Exception Handling Intro
Xem trướcMastering Java Exceptions: Checked vs. Unchecked, Finally, and Best Practices
Xem trướcEfficient Resource Management: Mastering Try-with-Resources in Java I/O
Xem trướcJava I/O Essentials: File, Path, Files, and Paths - A Practical Guide
Xem trướcPractical File Operations in Java: Create, Delete, Write with File/Path
Xem trướcExploring Path Methods and File System Interactions in Java NIO.2
Xem trướcDirectory Listing Mastery: Exploring Files with list, walk, and find
Xem trướcAdvanced File Tree Traversal: Implementing walkFileTree in Java
Xem trướcFile Tree Navigation Challenge: Mastering Practical File System Tasks
Xem trướcClassic Java I/O: Reading Text Files Using FileReader and BufferedReader
Xem trướcMastering the Scanner Class for Flexible Text Input Processing in Java
Xem trướcCharacter Sets, Encodings (UTF-8, ASCII), and NIO.2 Text File Reading
Xem trướcChallenge: Text Processing and Word Frequency Analysis in Java
Xem trướcJava Output: Writing Text Data to Files (Files.write, BufferedWriter)
Xem trướcJava Writers: BufferedWriter, FileWriter, PrintWriter - Features and Usage
Xem trướcComprehensive File Writing in Java: Creating a JSON Data File Challenge
Xem trướcMastering Java File Operations: Rename, Copy, Delete, and Move Files
Xem trướcAdvanced File Copy and Delete: Recursive Directory Handling in Java
Xem trướcPractical Directory Navigation: Building and Indexing a File System
Xem trướcDeep Dive into Java's RandomAccessFile for Efficient Binary Data Handling
Xem trướcImplementing Advanced Data Retrieval: RandomAccessFile Indexing in Java
Xem trướcRandom File Operations: Design a Program for Employee Data Management
Xem trướcMastering Binary Data I/O: Utilizing DataOutputStream and DataInputStream
Xem trướcIntroduction to Java Object Serialization: Persisting Objects to Files
Xem trướcAdvanced Serialization: Version Control, Transient Fields and Customisation
Xem trướcUnderstanding Processes and Threads in Java: An Introductory Overview
Xem trướcDeep Dive into Java Thread States and Concurrent Thread Execution
Xem trướcImplementing Multithreading: Concurrent Thread Creation Best Practices
Xem trướcManaging and Manipulating Running Threads in Java: Sleep and Interrupt
Xem trướcApplying Thread Concepts: Build a Multi-Threaded Application in Java
Xem trướcExploring Java's Memory Model: Heap vs. Thread Stack in Multithreading
Xem trướcAdvanced Concurrency: Interleaving, Atomicity, Memory Consistency Explained
Xem trướcImplementing Synchronization: Mastering Synchronized Methods in Java
Xem trướcAdvanced Synchronization: Deep Dive into Synchronized Blocks in Java
Xem trướcBuilding a Producer-Consumer Application in Java, Deadlock Exploration
Xem trướcPreventing Deadlocks in Java: Practical Techniques Using Wait and Notify
Xem trướcProducer Consumer Challenge: Build a Java Shoe Warehouse Fulfillment Center
Xem trướcExplicit Locking in Java Concurrency: Exploring java.util.concurrent.locks
Xem trướcAdvanced Locking: Exploring the Benefits and Uses of ReentrantLock in Java
Xem trướcThread Management with ExecutorService: SingleThreadExecutorService in Java
Xem trướcEfficient Thread Management: Exploring FixedThreadPool ExecutorService in Java
Xem trướcAdvanced Thread Pools: Exploring Callable, Submit, and Future in Java
Xem trướcPractical Concurrency: ExecutorService Challenge in Java Development
Xem trướcJava Concurrency: Mastering ScheduledExecutorService for Task Scheduling
Xem trướcJava Concurrency: Exploring WorkStealingPool and ForkJoinPool Explained
Xem trướcParallel Streams in Java: Enhancing Performance with Concurrent Data Processing
Xem trướcDeep Dive into Parallel Streams: Ordering, Reducing, and Collecting in Java
Xem trướcMastering Thread Safety: Synchronized and Concurrent Collections in Java
Xem trướcBuilding Robust Applications: Thread-Safe Lists, Queues, and ArrayBlockingQueue
Xem trướcImplementing Consumer Tasks: Mastering ArrayBlockingQueue in Java Concurrency
Xem trướcThread Contention: Understanding and Avoiding Deadlock, Livelock, Starvation
Xem trướcConcurrency Challenges: Understanding and Avoiding Livelock in Java
Xem trướcPreventing Thread Starvation: Implementing Fair Locks in Java Concurrency
Xem trướcExploring Advanced Java Concurrency: Atomic Variables and WatchService
Xem trướcImplementing a File Watcher with Java's WatchService for Real-Time Monitoring
Xem trướcIntroduction to Java Database Connectivity (JDBC) and Relational Databases
Xem trướcStep-by-Step MySQL Server and Workbench Installation Guide for Windows OS
Xem trướcInstalling MySQL Server & Workbench: A Comprehensive Guide for Mac Users
Xem trướcInstalling MySQL Server and Workbench on Linux: A Step-by-Step Guide
Xem trướcUnderstanding Databases: RDBMS, Schema, Tables, SQL, DDL, and DML Explained
Xem trướcHands-On with MySQL Workbench: Creating, Importing, and Querying Databases
Xem trướcJDBC Fundamentals: Connecting Java Applications to Databases with Drivers
Xem trướcEstablishing Database Connections in Java: DriverManager vs DataSource
Xem trướcRetrieving Data with JDBC: Crafting and Executing SQL SELECT Queries
Xem trướcSecure Coding with JDBC: Preventing SQL Injection and Using ANSI SQL Standards
Xem trướcMastering Statement.execute vs. Statement.executeQuery for Database Operations
Xem trướcComprehensive SQL Operations in Java: Updating, Deleting, & Inserting Data
Xem trướcEfficient Database Updates: executeUpdate, Transactions, Commits, Rollback, and
Xem trướcCreating the 'Store Front' Database: DDL Operations and SQL Exception Handling i
Xem trướcHands-On JDBC: Building a Database Application with Transactions & Data Operatio
Xem trướcPreventing SQL Injection with Parameterized JDBC PreparedStatement Objects
Xem trướcEnhancing Database Efficiency: Batch Processing with PreparedStatements
Xem trướcComprehensive JDBC Challenge: Transactions, Alter, Batch Processing Operations
Xem trướcLeveraging Stored Procedures in Databases Through JDBC CallableStatement
Xem trướcMastering OUT and INOUT Parameters in JDBC with CallableStatement Objects
Xem trướcExecuting Database Functions Using CallableStatement and JDBC Escape Sequences
Xem trướcAdvanced JDBC Challenge: Calling Stored Procedures with IN and OUT Parameters
Xem trướcAn Overview of Object-Relational Mapping, JPA Providers, and Jakarta Persistence
Xem trướcImplementing CRUD Database Operations in Java: Entity Lifecycle Management
Xem trướcEstablishing Table Relationships and Managing Related Data with JPA Entities
Xem trướcMastering Dynamic Data Retrieval with JPQL: Select, From, Where, and Joins
Xem trướcMastering Advanced JPQL Queries: Joins, Named Parameters, and Tuple Results
Xem trướcBuilding Dynamic and Type-Safe JPA Queries: A Comprehensive CriteriaBuilder Guid
Xem trướcComprehensive JPA Challenge: Build Entities, Relationships, JPQL Queries
Xem trướcMastering JPA: Advanced CriteriaBuilder Queries with Dynamic Joins (Bonus)
Xem trướcJava Networking Fundamentals: Internet, Networks, and Core Java API Overview
Xem trướcEssential Network Terminology: Hosts, Client-Server, Protocols, Ports & IP
Xem trướcBuilding a Basic Java Client-Server Application with ServerSocket (TCP/IP)
Xem trướcEnhancing Server Scalability: Implementing a Multi-Threaded Java Server
Xem trướcComparing ServerSocket and ServerSocketChannel: Blocking vs. Non-Blocking IO
Xem trướcDeep Dive into Java NIO: Understanding Channels and Buffers for Networking
Xem trướcPractical Java NIO: ByteBuffer Operations, Capacity, Limit, and Position
Xem trướcImplementing Efficient Network Polling with Custom Java Channel Management
Xem trướcJava Networking: Building Scalable Servers using Event-Driven Selectors
Xem trướcCreating UDP Client and Server in Java using Datagram Sockets
Xem trướcStreaming Audio over UDP: Building a Datagram Client-Server Application in Java
Xem trướcBuilding an Asynchronous UDP Server in Java using DatagramChannel
Xem trướcNavigating Java's High-Level APIs: Understanding URIs, URLs and Connections
Xem trướcDecoding Relative vs. Absolute URIs and Converting to URLs in Java
Xem trướcGetting Started with HttpURLConnection for Making HTTP Requests in Java
Xem trướcRapid Web Server Development: Setting Up a Simple Java HTTP Server
Xem trướcSending Data with HTTP POST Requests Using Java's HttpURLConnection
Xem trướcModern Java Networking: Transitioning to HttpClient for HTTP/2 and Beyond
Xem trướcStreamlining HTTP POST Requests and Responses with Java's HttpClient
Xem trướcJava Asynchronous HTTP Requests: Leveraging CompletableFuture with HttpClient
Xem trướcExploring CompletableFuture: thenAccept, thenApply and thenRun methods
Xem trướcExecuting Multiple Concurrent HTTP Requests Using Java's HttpClient
Xem trướcChallenge: Submitting multiple concurrent POST HTTP requests using HttpClient
Xem trướcCreating a Custom Thread Safe Body Handler for Java HttpClient Responses
Xem trướcUnderstanding WebSockets: Real-Time, Bidirectional Communication in Java
Xem trướcBuild a Java WebSocket Chat Application: Client and Server Implementation
Xem trướcMastering the IntelliJ Debugger: A Practical Introduction
Xem trướcAdvanced Debugging Techniques: Stepping, Watches & Control
Xem trướcField Watchpoints, Debugging: Track Variable Changes
Xem trướcMastering Smart Step Into, Set Value & Third-Party Source
Xem trướcMastering Unit Testing Essentials & JUnit Framework in Java
Xem trướcMastering Assertions: Essential Techniques for JUnit Testing
Xem trướcJUnit Assertions: Beyond the Basics & Exception Handling
Xem trướcParameterized Tests: Efficient Data-Driven Testing in JUnit
Xem trướcHands-On JUnit: Challenges to Hone Your Testing Skills - 1&2
Xem trướcCompleting JUnit Challenges 3 to 7: Advanced Techniques
Xem trướcJUnit Final Challenges : Mastering Scenarios 8,9 and 10
Xem trướcConfiguring JavaFX with JDK 11+: Setting Up Global Libraries
Xem trướcStep-by-Step Guide to Creating Your First JavaFX Application
Xem trướcJavaFX Fundamentals: MVC, Application Lifecycle, and Stages
Xem trướcBuilding a JavaFX "Hello World" Program: FXML vs. Code
Xem trướcMastering JavaFX GridPane Layout: Positioning and Sizing Controls
Xem trướcMaximising space with the JavaFX Hbox layout
Xem trướcMastering the JavaFX BorderPane Layout for Application Design
Xem trướcExploring JavaFX Layouts: FlowPane, TilePane, and StackPane
Xem trướcExploring JavaFX Controls: Buttons, Labels, and User Interaction
Xem trướcImplementing Radio Buttons & Checkboxes in JavaFX Applications
Xem trướcJavaFX User Input: Combo Box and Choice Box Controls Deep Dive
Xem trướcJavaFX Interactive Controls: Slider, Spinner, ColorPicker, DatePicker
Xem trướcJavaFX TitledPane and Accordion: Organizing UI Elements
Xem trướcMastering JavaFX Event Handling: Responding to User Actions
Xem trướcAdvanced JavaFX Event Handling: Parameters and Best Practices
Xem trướcOptimizing JavaFX Applications: Mastering the UI Thread and Event Handling
Xem trướcConcurrency in JavaFX: Implementing Background Tasks with Threads & Runnable
Xem trướcJavaFX Project: Creating a To-Do List Application & Data Model Setup
Xem trướcJavaFX ListView: Populating, Single Selection Mode & Event Handling Basics
Xem trướcJavaFX Event Handling: Adding a Change Listener for Dynamic UI Updates
Xem trướcJavaFX Date Formatting: Enhancing the User Interface with Date Formatting
Xem trướcImplementing Singletons: Best Practices for Java Application Development
Xem trướcJavaFX Disk Operations: Loading and Saving Data using the File System
Xem trướcJavaFX Dialogs: Building User Input Forms with DialogPane and GridPane
Xem trướcJavaFX Dialogs, Handling User Input and Displaying Program Output
Xem trướcBug Fixing, Data Binding, and UI Updates in JavaFX ToDo List App
Xem trướcData Binding Mastery: Implementing Observable Lists for Dynamic UI in JavaFX
Xem trướcJavaFX Cell Factories: Customizing ListView Display and Highlighting Items
Xem trướcJavaFX Context Menus: Implementing Right-Click Functionality for ListViews
Xem trướcImplementing Key Events and Toolbars for Enhanced Functionality
Xem trướcEnhancing JavaFX Applications Implementing Sorted Lists for Dynamic Data Display
Xem trướcFiltering Data in JavaFX: Utilizing FilteredList for Dynamic Content Management
Xem trướcElevating Visuals: Enhancing Appearance with CSS Styling
Xem trướcJavaFX Transformations: Mastering Node Rotation, Scaling, and Visual Effects
Xem trướcImplementing File and Directory Choosers in JavaFX for Enhanced File Access
Xem trướcLeveraging SceneBuilder: A Visual Approach to JavaFX UI Design within IntelliJ
Xem trướcInstalling and Setting up Scenebuilder on Windows
Xem trướcInstalling SceneBuilder for macOS: Step-by-Step Setup and IntelliJ Integration
Xem trướcSceneBuilder Deep Dive: Exploring the Interface, Layouts, and Control Properties
Xem trướcConstructing a Basic UI Layout, using SceneBuilder for JavaFX Development
Xem trướcDeep Dive Into SceneBuilder's Code Section and CSS
Xem trướcContacts Manager Project, Part One, Setting up Project
Xem trướcContacts Manager Project, Part Two, Design and Layout
Xem trướcContacts Manager Project, Part Three, Show Dialog, Button Press and Contact
Xem trướcContacts Application: Enhancing Functionality with Edit and Delete Features
Xem trướcJavaFX Contact Deletion, Confirmation, and Table Resizing Implementation
Xem trướcProject Setup and Initial JDK 8 & 9 Compatibility Testing for Migration
Xem trướcStrategically Structuring a Java Project for Modularization in JDK 9
Xem trướcCreating the First Module (Common): Package Migration and Dependency Resolution
Xem trướcModule Descriptor File Creation and Resolution of JavaFX Runtime Errors
Xem trướcCreating the Second Module (Database): Dependency Management and Code Migration
Xem trướcChallenge: Create and Configure the UI Module, Resolving Dependencies
Xem trướcUnderstanding and Implementing Transitive Dependencies for Simplified Module
Xem trướcBiggest Tip to Succeed as a Java Programmer
Xem trướcSoftware Tools Introduction
Java Development Kit Installation Overview
Install JDK 11 for Windows
Installing Intellij IDEA for Windows
Install JDK 11 for Mac
Installing Intellij IDEA for Mac
Install JDK 11 for Linux
Installing Intellij IDEA for Linux
Configuring IntelliJ IDEA - WINDOWS, MAC and LINUX
Introduction
Hello World Project
Defining the Main Method
Hello World Challenge and Common Errors
Variables
Starting out with Expressions
Primitive Types
Byte, short, long and width
Casting in Java
Primitive Types Challenge
Float and double Primitive Types
Floating Point Precision and a Challenge
The char and boolean Primitive Data Types
Primitive Types Recap and the String Data Type
Operators, Operands and Expressions
Abbreviating Operators
If-then Statement
Logical and Operator
Logical OR Operator
Assignment Operator VS Equals to Operator
Ternary Operator
Operator Precedence and Operator Challenge
First Steps Summary
End of Remaster
Introduction
Keywords And Expressions
Statements, Whitespace and Indentation (Code Organization)
Code Blocks And The If Then Else Control Statements
If then else Recap
Methods In Java
More On Methods And A Challenge
Method Challenge - Final Code Changes
DiffMerge Tool Introduction
Install DiffMerge
Using DiffMerge
Coding Exercises
Coding Exercises Example Part 1
Coding Exercises Example Part 2
Coding Exercises Example Part 3
Method Overloading
Method Overloading Recap
Seconds and Minutes Challenge
Bonus Challenge Solution
Introduction
The switch statement (+Challenge Exercise)
Day of the Week Challenge
The for Statement (+Challenge Exercise)
For Loop Recap
Sum 3 and 5 Challenge
The while and do while statements (+Challenge Exercise)
While and Do While Recap
Digit Sum Challenge
Parsing Values from a String
Reading User Input
Problems and Solutions
Reading User Input Challenge
Min and Max Challenge
Arrays
Arrays (Challenge Exercise)
Arrays Recap
References Types vs Value Types
Minimum Element Challenge
Reverse Array Challenge
List and ArrayList Part 1
ArrayList Part 2
ArrayList Part 3
ArrayList Challenge Part 1
ArrayList Challenge Part 2
ArrayList Challenge Part 3
Bug Fix for ArrayList Challenge
Autoboxing and Unboxing
Autoboxing & Unboxing (Challenge Exercise) - Part 1
Autoboxing & Unboxing (Challenge Exercise) - Part 2
Autoboxing & Unboxing (Challenge Exercise) - Part 3
LinkedList Part 1
LinkedList Part 2
LinkedList Part 3
LinkedList Challenge Part 1
Bug Fix for "Track 1" Error
LinkedList Challenge Part 2
LinkedList Challenge Part 3 (Final video)
Interfaces
Interfaces Part 2
Interfaces Challenge Part 1
Interfaces Challenge Part 2
Inner classes Part 1
Inner Classes Part 2
Inner Classes Challenge
Abstract Classes Part 1
Abstract Classes Part 2
Interface vs Abstract Class
Abstract Class Challenge Part 1
Abstract Class Challenge Part 2
Abstract Class Challenge Part 3 (includes recursion).
Collections Overview
Binary Search
Collections List Methods
Comparable and Comparator
Maps
Map Continued and Adventure Game
Adding Exits to the Adventure game
Adventure Game challenge
Immutable Classes
Immutable Class Challenge
Sets & HashSet
HashSet - equals() and hashCode()
Finish off equals() and hashcode()
Potential issue with equals() and sub-classing
Sets - Symmetric & Asymmetric
Finishing Off Sets
Sets Challenge Part 1
Sets Challenge Part 2
Sets Challenge Part 3
Sorted Collections
StockList Class With Maps
Add a Basket
TreeMap and Unmodifiable Maps
Challenge Part 1
Challenge Part 2
Challenge Part 3
Challenge Part 4 (Final)
Exceptions
Stack Trace and Call Stack
Catching and throwing Exceptions
Multi Catch Exceptions
Introduction to I/O
Writing content - FileWriter class and Finally block
Try with Resources
FileReader and Closeable
BufferedReader
Load Big Location and Exits Files
Challenge
Buffered Writer and Challenge
Byte Streams
Reading Binary Data and End of File Exceptions
Object Input Output including Serialization
Finish Object I/O and RandomAccessFile class
Create Random Access File
Update Static Initializer Block With Random File Access
Update Adventure Game to Read Random Access File
Java NIO
Writing Objects With Java NIO
Reading and Writing with Java NIO
Writing Binary Files with Java NIO
Reading Files with NIO
Absolute and Relative Reads
Chained Put Methods
Writing Sequentially
FileChannel to Copy Files and Pipes with Threads
Filesystem
More on Paths
Exists and CopyFile
Move, Rename and Delete
File Attributes
Read Existing Directory Contents
Separators Temp Files and File Stores
Walk File Tree
Copy Entire Tree
Mapping IO and NIO Methods
Section Introduction
Database Terminology
Install and Setup SQLite for Windows
Install and Setup SQLite for Mac
Install and Setup SQLite for Linux
Introduction to SQLite
More with SQLite
Querying Data With SQL
SQL Order by and Joins
More Complex Joins
Wildcards in Queries and Views
Housekeeping and Final SQL Challenge
JDBC and SQLite GUI Browser
Creating Databases With JDBC in Java
JDBC Insert, Update, Delete
.executeQuery() and using Constants
The Music SQLite Database
Write Java Query for Artists
Executing SQL in DB Browser
Query Albums by Artist Method
Query Artists for Song method
Result Set Meta Data
Functions and Views
Write the Method to Query View
SQL Injection Attacks and Prepared Statements
Transactions
Inserting Records With JDBC
Insert Albums, Artists, and Songs
Test Insert JDBC Code
JDBC with a GUI Program
Add Artists
Fix Artist and Preload Records
Implement Artist Query
Add ProgressBar
Handling Updates
A computer with either Windows, Mac or Linux to install all the free software and tools needed to build your new apps (I provide specific videos on installations for each platform).
A strong work ethic, willingness to learn, and plenty of excitement about the awesome new programs you’re about to build.
Nothing else! It’s just you, your computer and your hunger to get started today.
Learn the core Java skills needed to apply for Java developer positions in just 14 hours.
Be able to sit for and pass the Oracle Java Certificate exam if you choose.
Be able to demonstrate your understanding of Java to future employers.
Learn industry "best practices" in Java software development from a professional Java developer who has worked in the language for close to 25 years.
Acquire essential java basics for transitioning to the Spring Framework, Java EE, Android development and more.
Obtain proficiency in Java 17, as well as older versions incluing Java 11 and Java 8.
Java 21 features coming soon!