Autoplay
Autocomplete
Previous Lecture
Complete and Continue
Mastering Core Java with Best Practices
Course Introduction
Motivation behind Creating this Course (6:33)
Java: A High-level Overview
Chapter Introduction (3:08)
What is Java & Who is Using It? (6:42)
Story behind Java's Creation ~ A Brief History (7:36)
Compilation (9:51)
Platform Dependency (8:38)
Interpreter (7:50)
Platform Independence in Java (8:57)
Java Virtual Machine (14:01)
An Overview of Java SE (21:28)
Java SE Release Cycles & Release History (6:49)
Installing JDK 17 on Windows (22:58)
Installing Java on Mac (4:46)
Installing Java on Linux (6:52)
Setting Classpath Environment Variable (9:20)
Writing First Java Program (16:15)
Conclusion (2:40)
Chapter Quiz
Important Q&A Discussions! (S)
Classes, Objects and their Members
Chapter Introduction (3:19)
Class & Objects (12:32)
Absolute Java Basics (17:13)
Variables: Introduction (10:20)
Declaring & Re-initializing Variables (15:00)
Assignment: Currency Converter - Creating a Class with Variables
Variables: Primitive Types (2:00)
Primitive Variables: Integers (19:47)
Question on Binary Representation of Negative Number
Other Integer Literal Formats (10:33)
Primitive Variables: Floating-point Numbers (11:09)
Floating-point Pitfalls* (10:55)
Primitive Variables: Character Data Type (17:01)
Alternate ways to initialize char variables (6:25)
Primitive Variables: Boolean Data Type (5:57)
Variable Kinds (26:38)
Multi-variable Declaration Statements (9:31)
Quiz: Variables
Variables: Type Casting (19:25)
Variables: Object References (6:19)
Statements (7:40)
Arrays (27:35)
Assignment: Currency Converter - Array Creation & Accessing it Elements
2D Arrays (7:22)
3D Arrays (5:20)
Use byte & short Variables Judiciously (S)
Methods: Introduction (20:51)
Method Types (21:27)
Summary on Accessibility of Members from Static & Instance Methods
Assignment: Currency Converter ~ Invoking Methods of an Object
How Data is Passed to Methods in Java? (18:18)
Method Overloading (10:21)
Methods: varargs (8:39)
Constructors (22:07)
Constructor Overloading (24:47)
Constructor Overloading ~ Alternate way of delegating (3:58)
Minor Note on Method Invocation & Implicit Narrowing Conversion (S)
this Reference (14:35)
Reinitializing Object References ~ More Brainstorming! (20:00)
Minor Note on Executing StudentTest
Coding Exercise 1: Arrays with Object References
Review of Exercise 1 Solution with Best Practices (21:43)
Conclusion (3:38)
Chapter Quiz
Important Q&A Discussions! (S)
Method Building Blocks: Operators & Control-flow Statements
Chapter Introduction (3:32)
Operators (4:09)
Arithmetic Operators (22:13)
Arithmetic Operation Rules (8:55)
Quiz: Arithmetic Operators
Note on Student Class
Comparison Operators (14:45)
Logical Operators (28:13)
Car Price Estimator ~ Coding Exercise for Comparison & Logical Operators (19:48)
Coding Exercise 2: Car Price Estimator ~ Putting Comparison & Logical Operators into Action
Car Price Estimator - Exercise Solution (6:06)
Bitwise Operators (9:24)
Quick Note on Bitwise Operators with Boolean Operands
Bit Shift Operators (5:37)
Quiz: Bitwise & Bit Shift Operators
Control-flow: if-statement (18:05)
Control-flow: switch (18:04)
When is switch Preferred? (3:36)
Quiz: switch Statement
Control-flow: Ternary (7:25)
Additional Notes on Ternary Operator
Control-flow: for Statement (11:56)
More for Statement ... (21:54)
for-each Statement* (18:42)
Variable Scope (5:16)
Exercise
Coding Exercise 3: Computing GPA ~ Putting Operators & Control-flow to Test
Control-flow: while Statement (3:26)
Control-flow: break Statement (9:16)
Control-flow: continue (5:08)
Recursion (27:01)
Minor Correction in Binary Search Code
Conclusion (5:54)
Packages & Access Levels
Chapter Introduction (2:26)
Java API* (9:21)
Accessing Packages (16:41)
Creating Packages & Classpath Management (29:39)
Naming Packages (4:18)
Access Levels (22:36)
More on private Modifier (10:27)
Quiz: Packages & Access Levels
Programming with Eclipse IDE
Introduction (2:56)
Installing Eclipse (6:05)
Writing a Java Program in Eclipse (14:40)
Eclipse Build Process (15:44)
Importing Demo Code (4:31)
Source Code Navigation (11:40)
Automatic Source Code Cleaning & Generation (14:22)
Shortcuts Cheat Sheet
java.lang: The Fundamental Classes
Chapter Introduction (2:43)
Strings: Introduction (5:44)
String Class (19:46)
Assignment: Calculating Term Frequency in a Document
String Pool & Interning (15:51)
String Immutability (3:29)
String Concatenation (10:32)
String Concatenation Performance* (3:14)
Escape Sequences (4:50)
Strings - Important Q&A Discussions! (S)
Coding Exercise 4: Sentiment Analysis: Mining Pros & Cons ~ Putting String Class to Test
Math Class (20:14)
Boxed Primitives & Static Factory Methods* (14:15)
Uses of Boxed Primitives (15:23)
Autoboxing (4:25)
Prefer Primitives over Boxed Primitives* (11:36)
Coding Exercise 5: Parsing API Response ~ Let's make use of Boxed Primitives & String class
Chapter Quiz
Initialization Blocks & final Variables
Chapter Introduction (0:55)
Initializers: Static & Instance (7:44)
Note on Instance Initialization Blocks
final Variable (S) (19:35)
Constant Variables (10:22)
Chapter Quiz
Information Hiding Design Principle & Professional Coding Conventions
Chapter Introduction (1:23)
Information Hiding - Use Accessor Methods* (10:58)
Enhancing Student Example with Information Hiding (12:26)
Minimize Accessibility of Classes & Members* (3:49)
Coding Conventions: Naming Classes, Methods and Variables* (10:04)
Coding Conventions: Structuring Programs* (7:31)
Coding Conventions: Stylistic (6:39)
Coding Conventions: Comments (13:12)
Case Study: A Social Bookmarking Application
thrill.io ~ A Social Polymarking App! (10:15)
Case Study (4:14)
Serious OOP: Inheritance & Polymorphism
Inheritance (8:27)
Access Modifiers & Inheritance + Demo (12:27)
Note on Recommended Order for Modifiers (S)
IS-A Test (4:07)
Coding Exercise 6: Hospital Management System (HMS) ~ Let's put Inheritance into practice!
Polymorphism + Demo (12:20)
Casting Objects & instanceof Operator + Demo (9:49)
Coding Exercise 7: Extending HMS with a Billing Component ~ Putting Polymorphism into Practice!
Type Safety (7:27)
Method Overriding + Demo (14:49)
Minor Correction in First Method Overriding Rule
Method Binding + Demo (17:03)
Question on Method Binding
What is Not Overridden? (final Method is one of them) + Demo (14:17)
Demo: Fields are Not Overridden (3:03)
Object Class + Demo* (7:52)
Constructor Chaining + Demo (8:33)
Preventing Inheritance (5:30)
Conclusion (7:02)
Chapter Quiz
More Serious OOP: Abstract Classes & Interfaces
New Requirement: thrill.io for Kids (6:14)
Note on Next Lecture on Abstract Classes
Abstract Classes & Methods + Demo (6:27)
Note on Abstract Classes & Constructors
Prefer Class Hierarchies over Tagged Classes* (5:58)
Coding Exercise 8: Computing Health Insurance Premium for Staff ~ Let's put Abstract Classes & Methods into practice!
New Requirement: Sharing Bookmarks (5:20)
Multiple Inheritance & Diamond Problem (4:08)
Interfaces (18:44)
More on Interfaces (8:08)
Note on Next Lecture on Interfaces
Demo: Interfaces (11:23)
Interfaces: A Conceptual View (7:50)
Prefer Interfaces over Abstract Classes* (7:56)
Refer Objects through their Interfaces* (3:20)
Coding Exercise 9: Computing Health Insurance Premium for Staff (Part 2) ~ Let's put Interfaces into practice!
Marker Interfaces (6:44)
Cloneable Interface + Demo (6:03)
default Methods (Java 8) + Demo (18:51)
Recap of default Methods (4:17)
default Methods: Other Benefits + Demo (10:09)
Static Methods in Interfaces + Demo (11:48)
Conclusion (12:37)
Chapter Quiz
Important Q&A Discussions!
Debugging Java Programs & Unit Testing with JUnit
Using Eclipse Debugger (17:34)
JUnit & Debugging (18:03)
Shortcuts Cheat Sheet
Project: Implementing a Social Bookmarking App
Project Introduction (3:58)
MVC Architecture (6:55)
Implementing Entities (12:04)
Implementing Manager Classes - Demonstrates Singleton Pattern!! (12:33)
Implementing Constant Exporting Classes (4:50)
Implementing Data Store (18:40)
Implementing Dao Classes (5:40)
Launching the Application (9:14)
Implementing User Bookmarking Feature (15:54)
Implementing Kid-Friendly Eligibility Criteria Using TDD (19:41)
Marking Bookmarks as Kid-Friendly (19:01)
Minor Coding Correction in Previous Lecture
Implementing Sharing Feature: Part 1 (Implementing Shareable Interface) (13:31)
Troubleshooting StringUtils Compilation Issue
Implementing Sharing Feature: Part 2 (View, Controller and Manager) (19:08)
JVM Internals
Introduction (8:28)
Lifetime of a Type (8:32)
Lifetime of a Type: Class Loading (9:36)
Lifetime of a Type: Linking (10:07)
Demo: Lifetime of a Type (17:50)
Quiz: Lifetime of a Type
Reflection (7:55)
Accessing Class Object (6:20)
Demo: Reflection (12:44)
Coding Exercise 10: Simulate a Basic Unit Testing Framework ~ Putting reflection into action!
Runtime Data Areas (6:33)
Method Area & Heap (10:46)
Method Table (6:55)
Garbage Collection: Introduction (8:46)
Garbage Collection Algorithms (7:13)
GC: Generational Collections (10:08)
Important Questions on GC Algorithm (S)
Demo: Tuning Heap & Analyzing GC Cycles (7:43)
Eliminate Obsolete Object References (aka Memory Leaks)* (6:25)
Stack (5:48)
Stack Frame (6:03)
Instruction Set: invokespecial & invokevirtual + Demo (17:57)
Conclusion (8:04)
Chapter Quiz
Exceptions with Best Practices
Chapter Introduction (3:04)
Demo: Exceptions & Exception Handling (15:00)
Demo: Multiple Exceptions & Polymorphically Referencing Exceptions!! (9:40)
Checked & Unchecked Exceptions + Demo (10:08)
Exceptions & Method Overriding
finally Block + Demo (11:53)
try-with-resources Statement + Demo (15:09)
Demo: Suppressed Exceptions (7:23)
Demo - Best Practices: Creating New Exceptions* (12:49)
Demo - Best Practices for Capturing Failure Information* (9:20)
Demo - Best Practice: Exception Translation & Chaining* (7:13)
Coding Exercise 11: Extending Compute GPA Exercise with Exceptions
Bit of Brainstorming! (S)
Exceptions: More Advice ...* (6:22)
Assertions (10:07)
Demo: Assertions (9:19)
Conclusion (6:08)
Chapter Quiz
Input-Output
Chapter Introduction (6:32)
Character Encoding + Demo (Prerequisite) (19:40)
Stream IO (6:33)
Byte Streams (5:50)
Reading Byte-Oriented Files Efficiently + Decorator Pattern + Demo (19:56)
Character Streams (4:07)
Reading & Writing Text Efficiently (9:39)
Project Extension: Reading User & Bookmark Data from Text Files (Demo) (10:52)
Project Extension: Downloading WebLinks & Writing to Disk (Demo) (13:02)
Demo: Reading User Input from Console using BufferedReader & Scanner (9:38)
The File Class + Demo (14:39)
Serializing Java Objects + Demo (17:34)
Deserialization & Versioning + Demo (12:04)
Demo: Decoding with Compatible Encoding Scheme (3:35)
Conclusion (7:17)
Chapter Quiz
Input-Output ~ Important Q&A Discussions! (S)
Collections Framework (aka Data Structures)
Chapter Introduction (7:35)
Collection Interface (6:31)
List Interface (3:31)
ArrayList - Introduction (6:12)
Demo: ArrayList (16:16)
Iterator + Demo (19:18)
List Iterator + Demo (10:36)
LinkedList (10:38)
Queue & Deque Interfaces (9:36)
ArrayDeque + Demo (9:46)
Coding Exercise 12: Flight Reservation System ~ Putting Lists & Queues into Action!
Hash Table (9:36)
Set Interface & HashSet + Demo + (Overriding hashCode & Equals)* (14:51)
LinkedHashSet + Demo (5:21)
SortedSet & NavigableSet (9:04)
TreeSet (Comparable & Comparator) + Demo (18:03)
Demo: More TreeSet ~ Exploring NavigableSet Methods (9:46)
Coding Exercise 13: TreeSet & Comparator Exercise
Map Interface (8:32)
Demo: HashMap + Excercise (13:38)
Demo: Beware of Creating Mutable Keys (7:35)
LinkedHashMap + Demo (17:42)
SortedMap, NavigableMap and TreeMap + Demo (10:17)
Demo: Arrays Class (19:54)
Further Clarification on Arrays.asList() Explanation
Demo: Arrays Class (Part 2) ~ Parallelized Operations from Java 8 (8:22)
Demo: Collections Class (16:34)
Best Practice: Return Empty Arrays or Collections* (5:18)
Conclusion - A Quick Summary (8:34)
Chapter Quiz
Collections ~ Important Q&A Discussions! (S)
Generics
Chapter Introduction ~ Motivation & Agenda (12:24)
Generic & Parameterized Types (8:33)
Demo: Creating Generic Types + Type Erasure Discussion (15:55)
Project Extension: Replacing Arrays with ArrayLists (Part 1) (13:13)
Project Extension: Replacing Arrays with ArrayLists (Part 2) (9:49)
Concurrency (aka Multi-threading)
Chapter Introduction ~ Motivation & Agenda (8:12)
Threads: Introduction (7:52)
Minor Correction on Thread States
Demo: Launching Threads and Making them to Sleep! (14:40)
Demo: Thread Naming, Prioritization and Joining (Avoid Thread Groups)* (12:55)
Race Condition + Demo (13:28)
Synchronization + Demo* (10:49)
Conclusion
Closing Comments (1:15)
Bonus Lessons
Big O Notation
Certification Project: Crafting a Simple Compiler (Accessible on Request)
Problem Description
SortedMap, NavigableMap and TreeMap + Demo
Lecture content locked
If you're already enrolled,
you'll need to login
.
Enroll in Course to Unlock