Java 17 Masterclass: Start Coding in 2024

Java 17 Masterclass: Start Coding in 2024

English | MP4 | AVC 1280×720 | AAC 48KHz 2ch | 735 lectures (135h 29m) | 50.30 GB

Acquire Key Java Skills: From Basics to Advanced Programming and Certification – Start Your Dev Career

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.

What you’ll learn

  • 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!
Table of Contents

Getting Started
1 Introduction To The Course
2 Remaster in Progress
3 Video Quality
4 Subtitles
5 How to Get Help
6 Important Tip – Source Code
7 Biggest Tip to Succeed as a Java Programmer
8 Which Version of Java

Programming Tools Setup
9 Software Tools Introduction
10 Install JDK 17 for Windows
11 Install JDK 17 for Mac
12 Install JDK 17 for Linux
13 Confirming installation and intro to JShell

First Steps
14 Hello World
15 Variables
16 Starting out with Expressions
17 Primitive Types
18 byte, short, long and width
19 Casting in Java
20 Primitive Types Challenge
21 Float and Double Primitives
22 Floating Point Precision and a Challenge
23 The char and boolean Primitive Data Types
24 Primitive Types Recap and the String Data Type
25 Operators, Operands and Expressions
26 Abbreviating Operators

IntelliJ Basics
27 From JShell to an IDE
28 Installing IntelliJ IDEA for Windows
29 Installing IntelliJ IDEA for Mac
30 Installing IntelliJ IDEA for Linux
31 Configuring IntelliJ IDEA – WINDOWS, MAC and LINUX
32 Hello World in IntelliJ
33 Hello World in IntelliJ
34 if-then Statement
35 Logical AND Operator
36 Logical OR Operator
37 Assignment Operator VS Equals to Operator
38 Ternary Operator
39 Operator Precedence and Operator Challenge

Expressions, Statements & More
40 Introduction
41 Keywords and Expressions
42 Statements, Whitespace and Indentation (Code Organization)
43 Code Blocks And The If Then Else Control Statement
44 if then else Challenge
45 Methods in Java
46 More on Methods
47 Methods Recap
48 Method Challenge
49 Code Comparison in IntelliJ
50 Coding Exercises Introduction
51 Positive, Negative or Zero
52 Speed Converter
53 MegaBytes Converter
54 Barking Dog
55 Leap Year Calculator
56 DecimalComparator
57 Equal Sum Checker
58 Teen Number Checker
59 Method Overloading
60 Method Overloading Challenge
61 Seconds And Minutes Challenge
62 Bonus Challenge Solution
63 Area Calculator
64 Minutes To Years and Days Calculator
65 Equality Printer
66 Playing Cat

Control Flow
67 Introduction
68 The switch statement
69 More switch statement
70 Traditional Switch Challenge
71 A Switch Expression Challenge
72 Number In Word
73 Number Of Days In Month
74 The for Statement
75 The for Statement Challenge Exercise
76 Sum 3 and 5 Challenge And Using IntelliJ’s Debugger
77 For Loop Recap
78 Sum Odd
79 The while and do while statements
80 The while Loop Challenge Exercise
81 Digit Sum Challenge
82 While Loop and Do While Recap
83 Local Variables and Scope
84 The class, the object, static & instance fields and methods
85 Number Palindrome
86 First And Last Digit Sum
87 Even Digit Sum
88 Shared Digit
89 Last Digit Checker
90 All Factors
91 Greatest Common Divisor
92 Perfect Number
93 Number To Words
94 Flour Pack Problem
95 Largest Prime
96 Diagonal Star
97 Parsing Values and Reading Input using System.console()
98 Exception Handling, and Introduction to Scanner
99 Reading Input with Scanner
100 Reading User Input Challenge
101 Min and Max Challenge
102 Input Calculator
103 Paint Job

OOP Part 1 – Inheritance
104 Introduction
105 Introduction to Classes and Objects
106 Introduction to Classes, Using Getter Methods
107 Classes, Using Setters, and Creating Objects
108 Classes Challenge Exercise
109 Sum Calculator
110 Person
111 Constructors Part 1
112 Constructors Part 2
113 Constructor Challenge Exercise
114 Reference vs Object vs Instance vs Class
115 Static vs Instance Variables
116 Static vs Instance Methods
117 The POJO
118 Java’s Implicit POJO Type, The Record
119 Wall Area
120 Point
121 Carpet Cost Calculator
122 Complex Operations
123 Inheritance – Part 1
124 Inheritance – Part 2
125 Inheritance – Part 3
126 What is java.lang.Object
127 Inheritance Challenge – Part 1
128 Inheritance Challenge Part 2
129 this vs super
130 Method Overloading vs Overriding Recap
131 The Text Block and other Formatting Options
132 Another Look at the String
133 String Manipulation Methods
134 The StringBuilder class
135 Cylinder
136 Pool Area

OOP Part 2 – Polymorphism
137 Introduction
138 Composition Part 1
139 Composition Part 2
140 Composition Challenge
141 Composition
142 Encapsulation, Part 1
143 Encapsulation, Part 2
144 Encapsulation Challenge
145 Encapsulation
146 Polymorphism, Part 1
147 Polymorphism, Part 2
148 Casting with classes, and using Object and var references
149 Testing the runtime type using the instanceof operator
150 Polymorphism Challenge Exercise
151 Polymorphism
152 Polymorphism Challenge Exercise, Part 2
153 OOP Master Challenge Exercise, Part 1
154 OOP Master Challenge Exercise, Part 2
155 OOP Master Challenge Exercise, The Bonus
156 Organizing Java Classes, Packages and Import Statements

Arrays
157 Introduction
158 Arrays Part 1
159 Arrays Part 2
160 Using java.util.Arrays (sort, fill, copyOf )
161 Finding a Match, Using a Binary Search and testing equality of arrays
162 Arrays Challenge Exercise
163 Sorted Array
164 Arrays Recap
165 References Types vs Value Types
166 Variable Arguments (Varargs)
167 Minimum Element Challenge
168 Minimum Element
169 Reverse Array Challenge
170 Reverse Array
171 Two-Dimensional Arrays
172 Multi-dimensional Arrays

List, ArrayList, LinkedList, Iterator, Autoboxing
173 Introduction
174 List and ArrayList Part 1
175 ArrayList Part 2
176 ArrayList Part 3
177 Arrays vs. ArrayLists
178 ArrayList Challenge Part 1
179 Arrays, ArrayList & LinkedList – (Memory and Big O Notation)
180 Mobile Phone
181 LinkedList Part 1
182 LinkedList Part 2
183 Iterators
184 LinkedList Challenge
185 LinkedList Challenge, Continued
186 Playlist
187 Introduction to Autoboxing and Unboxing
188 Autoboxing and Unboxing related to Arrays & Lists
189 Autoboxing & Unboxing Challenge
190 Autoboxing & Unboxing Challenge
191 Banking
192 Introduction to the enum type
193 The enum type continued, with the switch statement

Abstraction in Java
194 Introduction
195 Abstraction & Generalization (with overview of abstract and other modifiers)
196 Abstract Classes Part 1
197 Abstract Classes Part 2
198 Abstract Classes Part 3
199 Abstract Class Challenge Part 1
200 Abstract Class Challenge Part 2
201 Interfaces Part 1
202 Interfaces Part 2
203 Interfaces Part 3
204 Interfaces, what’s new since JDK 8 (default methods & public static methods)
205 Interfaces, new since JDK8 (public static & private methods)
206 Interface vs Abstract Class
207 Abstract Class
208 Interface Challenge Part 1
209 Interface Challenge Part 2
210 Interface

Generics
211 Introduction to Generics
212 Generics Part 1
213 Generics Part 2
214 Generics Part 3
215 Generic Class Challenge
216 Generic Class Challenge, Part 2
217 Revisiting Comparable
218 Comparable vs. Comparator
219 Generic classes as reference types
220 Generics methods, wildcards, and type erasure
221 Static methods & multiple upper bounds
222 Putting it all together, Final Section Challenge

Nested Classes and Types
223 Introduction
224 Static Nested Classes
225 Inner Classes
226 Inner Classes, for Bills Burger Challenge
227 Inner Classes Challenge
228 Playlist – Inner Class
229 Local Classes
230 Anonymous Classes
231 Local and Anonymous Class Challenge

Lambda Expressions, Functional Interfaces, and Method References
232 Introduction to Lambda Expressions
233 Introduction to the Lambda Expression, and Functional Interfaces
234 Lambda Expressions, syntax, and additional examples
235 Lambda Expressions, Continued
236 Java’s Functional Interfaces, Consumer & Predicate
237 Java’s Functional Interfaces, Function & Supplier
238 Lambda Mini Challenges
239 Lambda Expression Challenge, Put it all together
240 What’s a Method Reference
241 The Most Confusing of the Method References
242 Method Reference Challenge
243 Convenience Methods on Functional Interfaces (Chaining lambdas)
244 Convenience Methods, Continued, with the Comparator

Java Collections
245 Introduction to Java’s Collections Framework
246 Collections Understanding the Big Picture
247 Code Setup (Deck of Cards) for java.util.Collections methods
248 Introduction to java.util.Collections
249 java.util.Collections (shuffle, reverse, sort, indexOfSubList)
250 java.util.Collections (binarySearch, frequency, min, max, rotate)
251 Collections methods Challenge, Your own Card Game
252 Collections methods Challenge, (Five Card Draw), continued
253 Understanding the importance of the hash code
254 Code Setup (Phone and Email Contacts) for Sets and Maps
255 Introduction to Sets & HashSet
256 Set Operations, Symmetric and Asymmetric results
257 Code Setup (Tasks and TaskData)
258 Set Operations Challenge
259 LinkedHashSet and TreeSet
260 TreeSet, Closest match and subset methods
261 TreeSet Challenge (Theatre Seats)
262 TreeSet Challenge (Theatre Seat Bonus)
263 The Map Interface and functionality
264 Map functionality, Continued (compute, replace, remove)
265 Working with Map’s view collections (keySet, values, entrySet)
266 HashMap Challenge, A Text-Based Adventure Game
267 Adventure Game, Continued
268 LinkedHashMap and TreeMap
269 Working with TreeMap (NavigableMap) methods
270 Targeted Collections for enum types
271 Collections Framework Final Challenge (The Setup)
272 Final Challenge(Store Inventory)
273 Final Challenge (Store Inventory)

Using Final, Immutable classes, Constructors, Initializers, Sealed classes
274 Introduction
275 Revisiting the final modifier
276 The final modifier applied to methods, and local variables
277 When Change isn’t good
278 Declaring immutable classes to produce immutable objects, Part 1
279 Declaring immutable classes to produce immutable objects
280 Challenge Write your own immutable classes
281 Defensive Copies, Shallow and Deep Copies
282 Immutable, Unmodifiable Collections and Views
283 Challenge Use unmodifiable collections
284 Challenge, Continued Using unmodifiable collections
285 Constructor review, final field initializations, Introduction to Initializers
286 Record Constructors (and javap)
287 Enum Constructors
288 Game Console Setup, Part 1
289 Game Console Setup, Part 2
290 Challenge Initializers and Constructors, A Pirate Game
291 Challenge Pirate Game, continued
292 Final Classes, Review of constructor access modifiers
293 Sealed Classes
294 Final Section Challenge
295 Final Challenge (Pirates Continued, Part 2)

Streams
296 Introduction to Streams
297 A first look at a stream in action
298 The Structure of the Stream Pipeline
299 Stream Sources
300 Stream Source Challenge
301 Intermediate Operations, distinct, filter, limit, skip, takeWhile, dropWhile
302 Intermediate Operations, map, peek, sorted
303 Terminal Operations for statistical information and matching
304 Code Setup, Part 1 (Student Engagement Statistics)
305 Code Setup, Part 2 (Student Engagement Statistics)
306 Challenge Terminal Operations
307 Challenge, part 2 Terminal Operations
308 Terminal operations for processing and transforming stream elements
309 Using Stream’s collect & reduce terminal operations
310 Challenge Terminal Operations, Part 2
311 What’s Optional
312 More Terminal Operations
313 Streams to Maps
314 Maps to Streams (using flatMap)
315 Streams Challenge

Back to a Few Nuts and Bolts
316 Introduction
317 Functionality on java.lang.Math
318 Randomization in Java
319 Randomization Challenge (Rolling Dice)
320 Bonus Challenge (DiceGame with Scoring)
321 Introduction to BigDecimal
322 BigDecimal methods
323 Overview Date & Time (java.time)
324 LocalDate
325 LocalTime, LocalDateTime
326 Overview Instance, Period, Duration and Time Zones
327 ZoneId (Time zones)
328 Instant, ZonedDateTime, Duration, Period and ChronoUnit.between
329 Localization, Introduction to Locale
330 Localization, Continued
331 DateTime and Localization Challenge
332 Internationalization (ResourceBundle)
333 Internationalization (ResourceBundle) Part 2

Regular Expressions
334 Introduction
335 What’s a Regular Expression
336 The Parts of a Regular Expression
337 Methods that use Regular Expressions
338 Mini Challenges -Regular Expressions
339 Using Pattern and Matcher
340 Matcher methods (find, group), Grouping and Capturing
341 Matcher methods for replacing text
342 Review of the Regular Expressions for Phone NumberHTML tags
343 Matcher Challenge

Input & Output (IO), Working with Files in Java
344 Introduction
345 Exception Handling Checked vs. Unchecked, the finally clause
346 Exception Handling Try with Resources
347 First Steps Understanding File, Path, Files and Paths
348 Using File, Path, Files
349 Methods on Path
350 Files class Directory Listings (list, walk, find)
351 Files class Using walkFileTree
352 File Tree Walking Challenge
353 Reading text from a file, Java IO way
354 Scanner, for reading input files
355 Character Sets & Reading Text from a File with NIO2 Functionality
356 Challenge – Reading text from a file
357 Writing Data To a File
358 BufferedWriter, FileWriter, and PrintWriter
359 File Writing Challenge
360 Renaming, copying, deleting files and directories
361 Copying, Deleting Directories InputStream & Reader’s transferTo method
362 Directory and File Manipulation Challenge
363 RandomAccessFile
364 RandomAccessFile, Continued
365 RandomAccessFile Challenge
366 DataOutputStream,DataInputStream & Serialization
367 Serialization & Change – Part 1
368 Serialization & Change – Part 2

Concurrency
369 Introduction
370 Java Threads and Thread Basics
371 Thread Creation and Execution
372 Interacting with a Running Thread
373 Thread Challenge
374 Multithreading and Memory
375 Concurrent threads concepts Interleaving, Atomicity, Memory Consistency, Volati
376 Synchronization, synchronized methods
377 Synchronization, synchronized blocks
378 ProducerConsumer Application, Deadlocks
379 Avoiding Deadlocks with Wait & Notify
380 Synchronization Challenge
381 java.util.concurrent.locks
382 java.util.concurrent.locks continued
383 Managing Threads, Introduction to the ExecutorService, SingleThreadExecutorServi
384 The FixedThreadPool ExecutorService
385 Additional Thread Pools, Callable, Submit and the Future
386 ExecutorService Challenge
387 Scheduling Tasks
388 WorkStealingPool, ForkJoinPool
389 Parallel Streams
390 Parallel Streams, Ordering, Reducing and Collecting
391 Synchronized & Concurrent Collections
392 Thread-Safe Lists and Queues, ArrayBlockingQueue
393 ArrayBlockingQueue, Consumer Tasks
394 Revisiting Deadlock, and Other Common Problems
395 Livelock Example
396 Starvation & Fair Locks
397 More Java concurrency features
398 WatcherService (the File Watcher)

Working with Databases
399 Introduction
400 MySQL Installation for Windows
401 MySQL Installation for Mac
402 MySQL Installation for Linux
403 Database Basics in Ten Minutes
404 Using MySQL WorkBench to create and view a music database
405 JDBC
406 Connecting to the music database with JDBC
407 Querying (Retrieving) Data
408 SQL Injection and ANSI SQL
409 Statement.execute vs. Statement.executeQuery
410 Update, Delete Statements, and Inserting related records
411 Using executeUpdate, Transactions, Commits and Rollback, and Batch Execution
412 Creating a Store Front database, SQL Exceptions
413 JDBC Challenge, Transactions and Insertion using Statement
414 PreparedStatement
415 PreparedStatement, Continued
416 Challenge PreparedStatement
417 CallableStatement
418 CallableStatement, OUT and INOUT parameters
419 CallableStatement, with functions
420 Challenge CallableStatement
421 Introduction to JPA and ORM
422 JPA in action
423 JPA with Related Tables
424 JPA Queries, JPQL
425 JPA Queries, JPQL Joins
426 JPA Queries, CriteriaBuilder and Native SQL
427 JPA Challenge
428 JPA Bonus Challenge CriteriaBuilder Query with Joins

Java Networking with Channels, Reactive Programming, and Virtual Threads
429 Introduction to Java Networking
430 Networking Terminology
431 Creating a Simple Client-Server Connection using ServerSocket
432 Creating a Multi-threaded Server using ServerSocket
433 SocketServer vs. ServerSocketChannel
434 Overview of NIO Channels and Buffers
435 Exploring java.nio.ByteBuffer
436 Polling Socket Channels with a custom Channel Manager
437 Using Selectors for an Event Driven Server
438 UDP Client Server with DatagramSocket
439 UDP DatagramSocket sharing audio data
440 UDP Client Server with DatagramChannel
441 Java’s High Level Networking APIs, URI and URL
442 Java’s High Level Networking APIs, URL vs URI
443 Introduction to HttpUrlConnection
444 Setting up Simple HttpServer
445 HttpURLConnection Posts
446 Introduction to HttpClient
447 HttpClient, Posting a request, and more
448 HttpClient Asynchronous Request, CompletableFuture
449 CompletableFuture, thenAccept, thenApply, thenRun Methods
450 HttpClient Concurrent Requests
451 Challenge, Concurrent Requests – Posts
452 Implementing HttpResponse.BodyHandler for customized response handling
453 Introduction to WebSocket
454 Writing a WebSocket Chat Application

Debugging and Unit Testing
455 Introduction to Debugging
456 More on Debugging
457 Field Watch Points
458 Advanced Debugging
459 Introduction to Unit Testing with JUnit
460 Asserts in Junit
461 More Asserts and Exception Handling
462 Parameterized Testing
463 JUnit Challenge #1 and #2
464 JUnit Challenges #3 to #7
465 Junit Challenges #8 to #10

JavaFX
466 JDK11 Global Library Configuration
467 Create Your First JavaFX Project
468 JavaFX Overview
469 JavaFX Hello World Program
470 GridPane Layout
471 HBox Layout
472 BorderPane Layout
473 Other Layouts
474 Controls
475 RadioButton and CheckBox
476 ComboBox and ChoiceBox
477 Slider, Spinner, ColorPicker & DatePicker Controls
478 TitledPane
479 Events and Event Handlers
480 Events Continued
481 UI Thread
482 Threads and Runnable
483 Setup Sample Todo List Application
484 Base Interface
485 Add Change Listener
486 Formatting Dates
487 Singletons
488 Load and Save ToDo Items fromto Disk
489 Add DialogPane
490 Show Dialog and Add Controller Code
491 Bug Fix and Update List View
492 Data Binding and Observable
493 Cell Factories
494 Context Menu
495 KeyEvents and Toolbars
496 SortedList
497 FilteredList
498 CSS With JavaFX
499 Transforming Nodes and Choosers
500 More on Choosers and Web Pages
501 SceneBuilder
502 Installing SceneBuilder for Windows
503 Installing SceneBuilder for Mac
504 Overview of SceneBuilder
505 Building a UI with SceneBuilder
506 More on SceneBuilder
507 JavaFX Challenge
508 JavaFX Challenge Part 2
509 JavaFX Challenge Part 3
510 JavaFX Challenge Part 4
511 JavaFX Challenge Wrap up

Java 9 Module System
512 Introduction to Modules
513 Module Declarations and Statements
514 Module Types

Migrating Java Projects to Java 9
515 Project Setup and Test
516 Structuring the new project
517 Creating the first module (Common)
518 Creating the Module Descriptor file
519 Creating the 2nd module (Database)
520 Challenge – Create the final module (UI)
521 Transitive Dependencies

Course Introduction – Old content for Java 11
522 Introduction To The Course
523 Remaster in Progress
524 Video Quality
525 Subtitles
526 How to Get Help
527 Important Tip – Source Code

Software Tools Setup – Old content for Java 11
528 Biggest Tip to Succeed as a Java Programmer
529 The Four Stages of Becoming a Programmer
530 Software Tools Introduction
531 Java Development Kit Installation Overview
532 Install JDK 11 for Windows
533 Installing Intellij IDEA for Windows
534 IMPORTANT – Configuring IntelliJ IDEA
535 Install JDK 11 for Mac
536 Installing Intellij IDEA for Mac
537 Install JDK 11 for Linux
538 Installing Intellij IDEA for Linux
539 Configuring IntelliJ IDEA – WINDOWS, MAC and LINUX

First Steps – Old content for Java 11
540 Introduction
541 Hello World Project
542 Defining the Main Method
543 Hello World Challenge and Common Errors
544 Variables
545 Starting out with Expressions
546 Primitive Types
547 byte, short, long and width
548 Casting in Java
549 Primitive Types Challenge
550 float and double Primitive Types
551 Floating Point Precision and a Challenge
552 The char and boolean Primitive Data Types
553 Primitive Types Recap and the String Data Type
554 Operators, Operands and Expressions
555 Abbreviating Operators
556 if-then Statement
557 Logical and Operator
558 Logical OR Operator
559 Assignment Operator VS Equals to Operator
560 Ternary Operator
561 Operator Precedence and Operator Challenge
562 First Steps Summary
563 End of Remaster

Java Tutorial Expressions, Statements, and More – Old content for Java 11
564 Introduction
565 Keywords And Expressions
566 Statements, Whitespace and Indentation (Code Organization)
567 Code Blocks And The If Then Else Control Statements
568 if then else Recap
569 Methods In Java
570 More On Methods And A Challenge
571 Method Challenge – Final Code Changes
572 DiffMerge Tool Introduction
573 Install DiffMerge
574 Using DiffMerge
575 Coding Exercises
576 Coding Exercises Example Part 1
577 Coding Exercises Example Part 2
578 Coding Exercises Example Part 3
579 Method Overloading
580 Method Overloading Recap
581 Seconds and Minutes Challenge
582 Bonus Challenge Solution

Control Flow Statements – Old content for Java 11
583 Introduction
584 The switch statement (+Challenge Exercise)
585 Day of the Week Challenge
586 The for Statement (+Challenge Exercise)
587 For Loop Recap
588 Sum 3 and 5 Challenge
589 The while and do while statements (+Challenge Exercise)
590 While and Do While Recap
591 Digit Sum Challenge
592 Parsing Values from a String
593 Reading User Input
594 Problems and Solutions
595 Reading User Input Challenge
596 Min and Max Challenge

Arrays, Java inbuilt Lists, Autoboxing and Unboxing – Old content for Java 11
597 Arrays
598 Arrays (Challenge Exercise)
599 Arrays Recap
600 References Types vs Value Types
601 Minimum Element Challenge
602 Reverse Array Challenge
603 List and ArrayList Part 1
604 ArrayList Part 2
605 ArrayList Part 3
606 ArrayList Challenge Part 1
607 ArrayList Challenge Part 2
608 ArrayList Challenge Part 3
609 Bug Fix for ArrayList Challenge
610 Autoboxing and Unboxing
611 Autoboxing & Unboxing (Challenge Exercise) – Part 1
612 Autoboxing & Unboxing (Challenge Exercise) – Part 2
613 Autoboxing & Unboxing (Challenge Exercise) – Part 3
614 LinkedList Part 1
615 LinkedList Part 2
616 LinkedList Part 3
617 LinkedList Challenge Part 1
618 Bug Fix for Track 1 Error
619 LinkedList Challenge Part 2
620 LinkedList Challenge Part 3 (Final video)

Inner and Abstract Classes & Interfaces – Old content for Java 11
621 Interfaces
622 Interfaces Part 2
623 Interfaces Challenge Part 1
624 Interfaces Challenge Part 2
625 Inner classes Part 1
626 Inner Classes Part 2
627 Inner Classes Challenge
628 Abstract Classes Part 1
629 Abstract Classes Part 2
630 Interface vs Abstract Class
631 Abstract Class Challenge Part 1
632 Abstract Class Challenge Part 2
633 Abstract Class Challenge Part 3 (includes recursion)

Java Generics – Old content for Java 11
634 Generics Introduction
635 Our Generics Class
636 Our Generics Class Part 2
637 Our Generics Class Part 3
638 Generics Challenge

Lambda Expressions – Old content for Java 11
639 Lambda Expressions Introduction
640 Lambda Expressions Continued
641 Lambda Expressions Nested Blocks
642 Scope and Functional Programming
643 Functional Interfaces & Predicates
644 More on Predicates & Suppliers
645 Functions
646 Chaining java.util.function Functions
647 Lambda Challenge Part 1
648 Lambda Challenge Part 2

Streams – Old content for Java 11
649 Streams
650 Streams – Intermediate and Terminal Operations
651 Streams – Flatmap & Lambda Best Practices

Naming Conventions and Packages. static and final – Old content for Java 11
652 Naming Conventions
653 Packages
654 Packages Part 2
655 Packages Part 3
656 Packages (Challenge Exercise)
657 Scope
658 Scope Part 2 and Visibility
659 Scope +(Challenge Exercise)
660 Access Modifiers
661 The static statement
662 The final statement
663 Final Part 2 and Static Initializers

Java Collections – Old content for Java 11
664 Collections Overview
665 Binary Search
666 Collections List Methods
667 Comparable and Comparator
668 Maps
669 Map Continued and Adventure Game
670 Adding Exits to the Adventure game
671 Adventure Game challenge
672 Adventure Game
673 Immutable Classes
674 Immutable Class Challenge
675 Sets & HashSet
676 HashSet – equals() and hashCode()
677 Finish off equals() and hashcode()
678 Potential issue with equals() and sub-classing
679 Sets – Symmetric & Asymmetric
680 Finishing Off Sets
681 Sets Challenge Part 1
682 Sets Challenge Part 2
683 Sets Challenge Part 3
684 Sorted Collections
685 StockList Class With Maps
686 Add a Basket
687 TreeMap and Unmodifiable Maps
688 Challenge Part 1
689 Challenge Part 2
690 Challenge Part 3
691 Challenge Part 4 (Final)

Basic Input & Output including java.util – Old content for Java 11
692 Exceptions
693 Stack Trace and Call Stack
694 Catching and throwing Exceptions
695 Multi Catch Exceptions
696 Introduction to IO
697 Writing content – FileWriter class and Finally block
698 Try with Resources
699 FileReader and Closeable
700 BufferedReader
701 Load Big Location and Exits Files
702 Challenge
703 Buffered Writer and Challenge
704 Byte Streams
705 Reading Binary Data and End of File Exceptions
706 Object Input Output including Serialization
707 Finish Object IO and RandomAccessFile class
708 Create Random Access File
709 Update Static Initializer Block With Random File Access
710 Update Adventure Game to Read Random Access File
711 Java NIO
712 Writing Objects With Java NIO
713 Reading and Writing with Java NIO
714 Writing Binary Files with Java NIO
715 Reading Files with NIO
716 Absolute and Relative Reads
717 Chained Put Methods
718 Writing Sequentially
719 FileChannel to Copy Files and Pipes with Threads
720 Filesystem
721 More on Paths
722 Exists and CopyFile
723 Move, Rename and Delete
724 File Attributes
725 Read Existing Directory Contents
726 Separators Temp Files and File Stores
727 Walk File Tree
728 Copy Entire Tree
729 Mapping IO and NIO Methods

Regular Expressions – Old content for Java 11
730 Character classes and Boundary Matchers
731 Quantifiers and the Pattern and Matcher classes
732 Matcher find and Group Methods
733 And, Or & Not
734 Regular Expressions Challenge Part 1
735 Regular Expressions Challenge Part 2
736 Regular Expressions Challenge Part 3

Databases – Old content for Java 11
737 Section Introduction
738 Database Terminology
739 Install and Setup SQLite for Windows
740 Install and Setup SQLite for Mac
741 Install and Setup SQLite for Linux
742 Introduction to SQLite
743 More with SQLite
744 Querying Data With SQL
745 SQL Order by and Joins
746 More Complex Joins
747 Wildcards in Queries and Views
748 Housekeeping and Final SQL Challenge
749 JDBC and SQLite GUI Browser
750 Creating Databases With JDBC in Java
751 JDBC Insert, Update, Delete
752 executeQuery() and using Constants
753 The Music SQLite Database
754 Write Java Query for Artists
755 Executing SQL in DB Browser
756 Query Albums by Artist Method
757 Query Artists for Song method
758 Result Set Meta Data
759 Functions and Views
760 Write the Method to Query View
761 SQL Injection Attacks and Prepared Statements
762 Transactions
763 Inserting Records With JDBC
764 Insert Albums, Artists, and Songs
765 Test Insert JDBC Code
766 JDBC with a GUI Program
767 Add Artists
768 Fix Artist and Preload Records
769 Implement Artist Query
770 Add ProgressBar
771 Handling Updates

Java Networking Programming – Old content for Java 11
772 Networking Overview
773 First Client and Server Apps
774 Multi Threaded Server
775 Multi-Threading and Timeouts
776 UDP Server and Client
777 High Level APIS
778 URL Connections and Input Stream Reader
779 HTTPUrlConnection
780 Alternatives to HTTPUrlConnection

Archived Videos
781 Old JavaFX Introduction Video for JDK 8
782 Old JavaFX Code Vs FXml Video for JDK 8

Extra Information – Source code, and other stuff
783 Source code for all Programs
784 Bonus Lecture and Information

Homepage