Java Programming: A Comprehensive Bootcamp From Zero To Hero
Published 3/2024
MP4 | Video: h264, 1920x1080 | Audio: AAC, 44.1 KHz
Language: English | Size: 22.83 GB | Duration: 65h 38m
Published 3/2024
MP4 | Video: h264, 1920x1080 | Audio: AAC, 44.1 KHz
Language: English | Size: 22.83 GB | Duration: 65h 38m
Become a Java developer - Core Java, Functional Programming, Lambdas, Streams, Collections, Covers upto Java 21
What you'll learn
Java basics including OOPs principles, Keywords, Operators, Objects, Classes, Methods, Constructors, Control flow statements, Loops, Inheritance, Interface etc.
Java intermediate concepts including Exceptional handling, Wrapper Classes, Collections, Enums, Date and Time API
Java advance concepts including Generics, Functional Programming, Lambda Expressions, Functional Interfaces, Method References, Streams API, Multi Threading
Achieve professional proficiency in Java programming
Gain practical expertise by completing over 100 coding exercises
Master Java best practices guided by an experienced developer
Requirements
No prior programming experience required, but familiarity with basic programming concepts will be beneficial.
A computer with internet access and a willingness to learn and practice.
Description
Welcome to the course Java Programming: A Comprehensive Bootcamp from Zero to Hero, a comprehensive course designed to equip developers of all levels with the essential skills and knowledge to master Java programming from its fundamentals to advanced topics up to Java 21. Whether you're a beginner looking to kickstart your programming journey or an experienced developer seeking to enhance your Java expertise, this course has something valuable to offer.Course Overview:This course is meticulously crafted to cover every aspect of Java programming in-depth, ensuring a solid understanding of both the foundational concepts and the latest advancements in the language. Here's what you can expect to learn throughout the course:Section 1: Let's Say Hello to JavaWhat is Java & why should you learnApproach to learn Java languageWriting your first Java statement using jshellBrief history of Java & it's release timelineWhy do we have different JDK vendors in Java ecosystemInstallation of JavaSection 2: Primitive data types in JavaIntroduction to Java KeywordsDeep dive on byte, short, int, long, float, double data typesSyntax to declare primitive data types & store data using themHow to name a java variableCase Styles in programmingDeep dive on boolean primitive data typeDeep dive on char primitive data typeDemo of Overflow and Underflow[Java 7] Using underscore in numeric literalsDemo of octal number format in JavaDemo of hexa number format in JavaDemo of binary number format in JavaType casting in JavaDemo of implicit and explicit castingIntroduction to String in JavaDemo of String in JavaSection 3: What happens behind the scenes when a Java program executesIntroduction to life cycle of a Java programWhat is JDK, JRE, JVMHow Java became a platform independent languageIntroduction to Java program code structureWriting first Java class, compiling & running itIntroduction to IDE & IntelliJ IDEACreate first Java project in IntelliJ & set up a themeWriting first Java class in IntelliJSection 4: Deep dive on Java classes, methods, fields, constructorsJava supports Object-oriented programming (OOP)Demo of creating a Java classDeclaring fields in a Java classDemo of Java methodsIntroduction to method signaturePurpose of a return statement in Java methodsSyntax of method invocation in JavaLet’s say hi to main method againHow to create & initialize Java objectsIntroduction to Constructor in JavaDemo of Constructor in Java & introduction to debuggingProblem with default or no-args constructorConstructor Overloading in JavaConstructor chaining in JavaUsage of return statement in constructorInstance Initialization Block in Java class - Part 1Instance Initialization Block in Java class - Part 2Introduction to static variables in JavaHow to define constant final static variablesDifferences between static & instance variablesIntroduction to static methods in Java Static Initialization Block in Java classDebugging of method invocations in IntelliJWhere does Java store classes, objects, variables, methodsDeep dive on Heap memory and stack memoryIntroduction to null in JavaObject Destruction and Garbage collection in JavaClass vs Object vs Instance vs ReferenceWhat is encapsulation in JavaSection 5: Comments in JavaSingle line Comments in JavaMulti line Comments in JavaIntroduction to javadoc commentsGenerating javadoc using IntelliJSection 6: Deep dive on String in JavaIntroduction to String Pool in JavaThe intern method in StringThe concat method in StringEscape sequence character & Unicode char values in StringFinding the length of a StringComparing Strings in JavaFetching a character at an index in StringChecking if a String is emptyChanging the case in StringConverting values as StringSearching for a value in StringTrimming a StringFetching Substring from a StringReplacing a part of a StringSplitting Strings[JAVA 8] Joining StringsThe format() method in StringSystem.out.printf() methodUnderstanding how String objects are immutableHow to create mutable strings in Java[JAVA 15] Text Block in JavaConverting String to primitive data type valuesConvert String to double data typeSection 7: Operators in JavaIntroduction to Operators & Operands in JavaAssignment Operator in JavaIntroduction to Arithmetic Operators in JavaAddition Operator in JavaString Concatenation OperatorDivision Operator in JavaModulus Operator in JavaUnary plus and minus operatorsCompound Arithmetic Assignment Operators in JavaIncrement and Decrement operators in JavaIntroduction to Relational Operators in JavaEquality Operator in JavaInequality Operator in JavaGreater than, Greater than or equal, Less than, Less than or equal operatorsIntroduction to Logical Operators in JavaLogical NOT operator in JavaLogical Short-Circuit AND, Logical AND operators in JavaLogical Short-Circuit OR, Logical OR operators in JavaLogical XOR operator in JavaCompound Logical Assignment Operators in JavaBitwise Operators in JavaBitwise NOT operator or 1’s complement in JavaBitwise AND operator in JavaBitwise OR operator in JavaBitwise XOR operator in JavaLeft Shift operator in JavaSigned Right Shift operator in JavaUnsigned Right Shift operator in JavaCompound assignment bitwise operators in JavaTernary or Conditional operator in JavaDetails of Java operators Precedence & Associativity Section 8: Control flow statements in JavaIntroduction to Control flow statements in JavaDeep dive on if, else if, else statements in JavaNested if- else if - else statementsTernary operator in the place of if-else statementDeep dive on switch case statement[JAVA 14] Deep dive on switch expressionDeep dive on while statementDeep dive on do while statementDeep dive on for loopDeep dive on nested for loopsbreak statementcontinue statementreturn statementLocal variables & ScopeSection 9: packages in JavaIntroduction to packages & benefits of themCreating a packageRules & standards to name a packageUsing package members with import statementThe great java.lang packageThe static import statementsImportant points about packages & importsIntroduction to access modifiersDemo of access modifiers for java classesDemo of access modifiers for methods, fields in classesDeep dive on POJO classesSection 10: Inheritance in JavaIntroduction to Inheritance in JavaObject class is the default Superclassis-a & has-a relationships in JavaWhat a subclass inherits from its superclassIntroduction to upcasting in JavaIntroduction to downcasting & it's demoinstanceof OperatorStatic Binding and Dynamic Binding in JavaWhat is Polymorphism in JavaMethod Overridingsuper keyword to invoke super class methods from sub classMethod OverloadingMethod overriding vs Method overloadingMethod hiding in Java InheritanceField hiding in Java InheritanceThe story of constructors & Inheritance togetherthis and super keywords in JavaTypes of Inheritance in Javaabstract methods and classesfinal keyword in Java[JAVA 17] sealed classes & interfacesSection 11: Interfaces in JavaIntroduction to InterfacesConstant Field Declarations in interface[JAVA 8] How to build default methods in interfaces[JAVA 8] How to build static methods in interfacesMultiple Inheritance using interfacesInterface defines a new typeMarker Interface[JAVA 8] Functional InterfaceClass Vs Abstract Class Vs InterfaceSection 12: Arrays in JavaWhat is a Array in JavaDeclaring & initializing ArraysArrays lengthIterate elements of Array using for loopIterate elements of Array using for-each loopArrays advantages and disadvantagesCopying Arrays using loopsCopying Arrays using arraycopy and copyOf methodsConverting ArraysSorting ArraysSearching an ArrayFilling an ArrayIntroduction to multidimensional or nested arraysTwo-Dimensional or 2D ArraysJagged ArraysThree-Dimensional or 3D ArraysSection 13: Accept input using BufferedReader and ScannerUnderstanding System.out.printlnIntroduction to BufferedReader & DemoIntroduction to Scanner & DemoComparison of BufferedReader and ScannerDon’t use System.out.println in Production codeLogging in JavaSection 14: Exception handling using try, catch and finallyTaste of first Exceptiontry-catch blockmultiple catch blocksfinally block[JAVA 7] try- with-resources statementRules while handling exceptionsThe Exception HierarchyChecked ExceptionsUnchecked Exceptionsthrows keywordthrow keywordDifferences between throw and throws keywordException PropagationNested try blockCustom Checked ExceptionCustom Unchecked Exceptionfinal, finally and finalizeSection 15: Unmasking Java's Superclass(java.lang.Object) SecretsIntroduction to the methods in Object classDeep dive on getClass() in Object classDeep dive on hashCode() in Object classDeep dive on equals() in Object classOverride hashCode() & equals() methodsOverride hashCode() & equals() methods using IntelliJDeep dive on toString() in Object classDemo of hashCode(), equals() & toString() methods of StringDeep dive on finalize() in Object classDeep dive on clone() in Object classDetails about Shallow cloning & Deep cloningMutable and Immutable objects[JAVA 16] Record classes[JAVA 10] var (local variable type inference)Section 16: Introduction to Collections & Wrapper ClassesArrays have limitationsWhat are Collections & why they accept only objectsIntroduction to Wrapper ClassesConvert Primitive Type to Wrapper Objects (Boxing)Convert Wrapper Objects into Primitive Types (Unboxing)Autoboxing and unboxingCaching with valueOf() methodsJava Collection Framework HierarchySection 17: Lists and ArrayLists Unleashed – A Hilarious Journey through Data StructuresDeep dive on the Collection Interface[JAVA 21] Deep dive on the Sequenced CollectionsDeep dive on the List InterfaceHow to create objects of ArrayListDemo of ArrayList[JAVA 7] Diamond Operator in JavaArrayList performance[JAVA 9] Creating Immutable ListsIterate ArrayList using for-each and iterator()Iterate ArrayList using listIterator()Sorting ArrayList using sort() methodsSorting ArrayList using custom ComparatorSorting ArrayList of custom data type using ComparableSorting ArrayList of custom data type using ComparatorArrays vs ArrayListSection 18: LinkedLists - Java's Dance of NodesIntroduction of LinkedListHow to create objects of LinkedListDemo of LinkedListIterate LinkedList elementsSorting LinkedList elementsLinkedList performanceArrayList vs LinkedListSection 19: Generics in JavaIntroduction to Generics in JavaWhy we need Generics in JavaGeneric class in JavaGenerics methods in JavaCollections with out GenericsCovariance DemoSubtype or Upper Bound WildcardsSupertype or Lower Bound WildcardsUnbounded WildcardsSection 20: Deep dive on Map, HashMap, TreeMap, LinkedHashMapIntroduction to Map in JavaDemo of HashMapHow HashMap Store Key, ValueHow HashMap retrieve Value[JAVA 8] HashMap improvements in Java 8Iterating HashMap using keySet() and entrySet()Iterating HashMap using values()Introduction to TreeMap in JavaDemo of TreeMap in JavaDemo of LinkedHashMap in Java[JAVA 9] Creating Immutable MapsSection 21: Set, HashSet, TreeSet, LinkedHashSetIntroduction to Set in JavaDemo of HashSetHow HashSet works internallyIterating HashSetSet operationsDemo of TreeSet in JavaDemo of LinkedHashSet in Java[JAVA 9] Creating Immutable SetsList vs SetSection 22: Enums in JavaIntroduction to EnumsProblems with normal Java class constants approachDemo of Enum approachAssociating Data to Enum ConstantsDemo of EnumSet and it's important methodsAdvantages of EnumsSection 23: Date and Time in JavaHow Java supports Date and TimeWhy a new Date API introduced in Java 8Demo of java util DateDate formatting and parsing using SimpleDateFormatDemo of java sql DateDemo of java util CalendarTimeZone specific Date and Time[JAVA 8] Introduction to new Date & Time API from Java 8[JAVA 8] The of() methods in java.time Date and Time API[JAVA 8] The from() & withXxx() methods in java.time Date and Time API[JAVA 8] The toXxx() & atXxx() methods in java.time Date and Time API[JAVA 8} The getXxx(), plusXxx() and minusXxx() methods in new Date & Time API[JAVA 8] Introduction to Instant and Duration in java.time Date and Time API[JAVA 8] Demo of Instant and Duration in java.time Date and Time API[JAVA 8] Period in java.time Date and Time API[JAVA 8] The multipliedBy(), dividedBy() & negated() methods[JAVA 8] The truncatedTo() method[JAVA 8] Demo of ZoneId, ZonedDateTime[JAVA 8] Demo of ZoneOffset[JAVA 8] Demo of OffsetDateTime and OffsetTime[JAVA 8] Demo of Day Light Saving with ZonedDateTime[JAVA 8] Non-ISO Calendars in java.time Date and Time API[JAVA 8] Formatting Dates and Times using DateTimeFormatter[JAVA 8] Parsing Dates and Times using DateTimeFormatterSection 24: [JAVA 8] Functional Programming using lambda expressionsIntroduction to Functional ProgrammingImperative style vs functional style programmingWhat are lambda expressions and their syntaxHow to build Lambda expressionsDeep dive on Functional InterfacesHow Functional Interface & Lambda expressions are linkedAnonymous inner class in the place of lambda expressionsPredefined Functional interfaces inside JDKDeep dive on Predicate functional interfaceDeep dive on Function functional interfaceDeep dive on UnaryOperator interfaceDeep dive on Consumer interfaceDeep dive on Supplier interfaceDeep dive on BiFunctional InterfacesPrimitive Type functional interfacesDeep dive on Lexical Scoping of Lambda expressionsthis and super inside lambda expressionSection 25: [JAVA 8] Building Lambda expressions using Method ReferencesIntroduction to Method ReferencesDemo of Static Method ReferenceDemo of Instance Method ReferenceDemo of Instance method Reference using Class typeDemo of Constructor ReferenceSection 26: [JAVA 8] Streams APIIntroduction to java util stream APICreating a Stream from collectionsStreams have no storageIntroduction to Streams PipelineDemo of Streams map() methodDemo of Streams flatMap() methodDemo of Streams filter() methodDemo of Streams limit() methodDemo of Streams skip() methodStreams are traversable only onceIntroduction to Streams reduce() methodDemo of Streams reduce() methodDemo of Streams collect() methodDemo of Streams collectingAndThen() methodDemo of Streams groupingBy() and partitioningBy() methodFinding and Matching methods in StreamsQuick revision about stream pipelineDeep dive on parallel streams and demoCollections Vs StreamsSection 27: [JAVA 8] Optional to deal with nulls in JavaIntroduction to Optional classDemo of OptionalDemo of ifPresent, ifPresentOrElse, orElse, orElseGet methodsDemo of orElseThrow, map, filter methodsQuick tip to filter null elements with Stream APISection 28: MultiThreading in JavaWhat is MultiThreadingHow a program or a software executes inside a computerParallel vs Concurrent ExecutionHow multiple threads improve performanceCreating Threads in JavaMultiThreading Demo ProgramDemo of Thread methods getId, threadId, getName, setName, currentThread, sleepDemo of Thread method join, getPriority, setPriorityDemo of wait(), notify(), notifyAll()Introduction to Race condition & synchronized keywordDemo of synchronized methods and blocksIntroduction & Demo of volatile keywordIntroduction to DeadlockDemo Deadlock & possible fixes[JAVA 21] Introduction to Virtual ThreadsThroughout the course, you'll engage in hands-on coding exercises, assignments, and projects to reinforce your learning and apply the concepts in real-world scenarios. Our experienced instructors will provide guidance, support, and insights to help you navigate the intricacies of Java programming effectively.Whether you aspire to become a Java developer, enhance your career prospects, or simply gain a deeper understanding of one of the most widely-used programming languages, this course will empower you to achieve your goals in the world of Java programming.Prerequisites:- No prior programming experience required, but familiarity with basic programming concepts will be beneficial.- A computer with internet access and a willingness to learn and practice.Target Audience:- Beginners aspiring to learn Java programming.- Experienced developers looking to expand their Java skills.- Students and professionals seeking to advance their careers in software development.Enroll now and embark on a journey to master Java programming comprehensively, from the basics to Java 21 and beyond!
Overview
Section 1: Let's Say Hello to Java
Lecture 1 Introduction to the course & Agenda
Lecture 2 DO NOT SKIP - IMPORTANT INSTRUCTIONS FOR THE COURSE
Lecture 3 What is Java & why should you learn
Lecture 4 Approach to learn Java language
Lecture 5 [Java 9] Writing your first Java statement using jshell
Lecture 6 Brief history of Java & it's release timeline
Lecture 7 Why do we have different JDK vendors in Java ecosystem
Lecture 8 Installation of SDKMAN & Java in mac, Unix, Linux
Lecture 9 Installation of Java in Windows OS
Lecture 10 [Java 9] Demo of local jshell
Section 2: Primitive data types in Java
Lecture 11 DETAILS OF PDF CONTENT
Lecture 12 Introduction to Java Keywords
Lecture 13 Introduction to Primitive Data types in Java - Part 1
Lecture 14 Introduction to Primitive Data types in Java - Part 2
Lecture 15 Syntax to declare primitive data types & store data using them
Lecture 16 Demo of declaring primitive data types & store data using them
Lecture 17 How to name a java variable
Lecture 18 Case Styles in programming
Lecture 19 Deep dive on boolean primitive data type
Lecture 20 Deep dive on char primitive data type - Part 1
Lecture 21 Deep dive on char primitive data type - Part 2
Lecture 22 Deep dive on char primitive data type - Part 3
Lecture 23 Introduction to integer primitive data types
Lecture 24 Demo of byte, short, int and long primitive data types
Lecture 25 Demo of Overflow and Underflow
Lecture 26 Introduction to floating data types
Lecture 27 Demo of float and double primitive data types - Part 1
Lecture 28 Demo of float and double primitive data types - Part 2
Lecture 29 [Java 7] Using underscore in numeric literals
Lecture 30 Other formats supported by integer & floating data types
Lecture 31 Demo of octal number format in Java
Lecture 32 Demo of hexa number format in Java
Lecture 33 Demo of binary number format in Java
Lecture 34 Type casting in Java
Lecture 35 Demo of implicit and explicit casting - Part 1
Lecture 36 Demo of implicit and explicit casting - Part 2
Lecture 37 Introduction to String in Java
Lecture 38 Demo of String in Java
Section 3: What happens behind the scenes when a Java program executes
Lecture 39 DETAILS OF SOURCE CODE AND PDF CONTENT
Lecture 40 Introduction to life cycle of a Java program
Lecture 41 What is JDK, JRE, JVM
Lecture 42 How Java became a platform independent language - Part 1
Lecture 43 How Java became a platform independent language - Part 2
Lecture 44 Quick knowledge check on Java life cycle & it's components
Lecture 45 Introduction to Java program code structure
Lecture 46 Writing first Java class, compiling & running it
Lecture 47 Introduction to IDE & IntelliJ IDEA
Lecture 48 Create first Java project in IntelliJ & set up a theme
Lecture 49 Writing first Java class in IntelliJ
Section 4: Deep dive on Java classes, methods, fields, constructors
Lecture 50 DETAILS OF SOURCE CODE AND PDF CONTENT
Lecture 51 Java supports Object-oriented programming (OOP)
Lecture 52 So, what is a Java class
Lecture 53 Demo of creating a Java class
Lecture 54 Declaring fields in a Java class - Theory
Lecture 55 Declaring fields in a Java class - Demo
Lecture 56 Introduction to methods in Java - Part 1
Lecture 57 Introduction to methods in Java - Part 2
Lecture 58 Demo of Java methods - Part 1
Lecture 59 Demo of Java methods - Part 2
Lecture 60 Introduction to method signature
Lecture 61 Purpose of a return statement in Java methods
Lecture 62 Syntax of method invocation in Java
Lecture 63 Let’s say hi to main method again
Lecture 64 How to create & initialize Java objects - Theory
Lecture 65 How to create & initialize Java objects - Demo
Lecture 66 Introduction to Constructor in Java
Lecture 67 Demo of Constructor in Java & introduction to debugging
Lecture 68 Problem with default or no-args constructor
Lecture 69 Constructor Overloading in Java
Lecture 70 Constructor chaining in Java
Lecture 71 Usage of return statement in constructor
Lecture 72 Instance Initialization Block in Java class - Part 1
Lecture 73 Instance Initialization Block in Java class - Part 2
Lecture 74 Introduction to static variables in Java - Theory
Lecture 75 Introduction to static variables in Java - Demo
Lecture 76 How to define constant final static variables
Lecture 77 Differences between static & instance variables
Lecture 78 Introduction to static methods in Java - Theory
Lecture 79 Demo of static methods in Java - Part 1
Lecture 80 Demo of static methods in Java - Part 2
Lecture 81 Static Initialization Block in Java class - Part 1
Lecture 82 Static Initialization Block in Java class - Part 2
Lecture 83 Debugging of method invocations in IntelliJ
Lecture 84 Where does Java store classes, objects, variables, methods
Lecture 85 Deep dive on Heap memory and stack memory
Lecture 86 Demo of Heap memory and stack memory in IntelliJ
Lecture 87 Introduction to null in Java
Lecture 88 Object Destruction and Garbage collection in Java
Lecture 89 Class vs Object vs Instance vs Reference
Lecture 90 What is encapsulation in Java
Section 5: Comments in Java
Lecture 91 DETAILS OF SOURCE CODE AND PDF CONTENT
Lecture 92 Introduction to Comments in Java
Lecture 93 Single line Comments in Java - Theory
Lecture 94 Single line Comments in Java - Demo
Lecture 95 Multi line Comments in Java - Theory
Lecture 96 Multi line Comments in Java - Demo
Lecture 97 Introduction to javadoc comments
Lecture 98 Introduction to javadoc comments Demo - Part 1
Lecture 99 Introduction to javadoc comments Demo - Part 2
Lecture 100 Generating javadoc using IntelliJ
Section 6: Deep dive on String in Java
Lecture 101 DETAILS OF SOURCE CODE AND PDF CONTENT
Lecture 102 Introduction to agenda of the section
Lecture 103 Introduction to String Pool in Java - Theory
Lecture 104 Demo of String Pool in Java
Lecture 105 The intern method in String
Lecture 106 The concat method in String
Lecture 107 Escape sequence character & Unicode char values in String
Lecture 108 Finding the length of a String
Lecture 109 Comparing Strings in Java - Part 1
Lecture 110 Comparing Strings in Java - Part 2
Lecture 111 Fetching a character at an index in String
Lecture 112 Checking if a String is empty
Lecture 113 Changing the case in String
Lecture 114 Converting values as String
Lecture 115 Searching for a value in String
Lecture 116 Trimming a String
Lecture 117 Fetching Substring from a String
Lecture 118 Replacing a part of a String
Lecture 119 Splitting Strings
Lecture 120 [JAVA 8] Joining Strings
Lecture 121 The format() method in String
Lecture 122 System.out.printf() method
Lecture 123 Understanding how String objects are immutable
Lecture 124 How to create mutable strings in Java
Lecture 125 Demo of creating mutable strings in Java
Lecture 126 [JAVA 15] Text Block in Java
Lecture 127 Converting String to primitive data type values - Theory
Lecture 128 Converting String to primitive data type values - Demo
Section 7: Operators in Java
Lecture 129 DETAILS OF SOURCE CODE AND PDF CONTENT
Lecture 130 Introduction to Operators & Operands in Java
Lecture 131 Operators categorisation in Java
Lecture 132 Expressions in Java
Lecture 133 Assignment Operator in Java - Part 1
Lecture 134 Assignment Operator in Java - Part 2
Lecture 135 Introduction to Arithmetic Operators in Java
Lecture 136 Addition Operator in Java - Part 1
Lecture 137 Addition Operator in Java - Part 2
Lecture 138 String Concatenation Operator
Lecture 139 Division Operator in Java
Lecture 140 Modulus Operator in Java
Lecture 141 Unary plus and minus operators
Lecture 142 Compound Arithmetic Assignment Operators in Java
Lecture 143 Increment and Decrement operators in Java - Part 1
Lecture 144 Increment and Decrement operators in Java - Part 2
Lecture 145 Introduction to Relational Operators in Java
Lecture 146 Equality Operator in Java - Part 1
Lecture 147 Equality Operator in Java - Part 2
Lecture 148 Inequality Operator in Java
Lecture 149 Greater than, Greater than or equal, Less than, Less than or equal operators
Lecture 150 Introduction to Logical Operators in Java
Lecture 151 Logical NOT operator in Java
Lecture 152 Logical Short-Circuit AND, Logical AND operators in Java - Theory
Lecture 153 Logical Short-Circuit AND, Logical AND operators in Java - Demo
Lecture 154 Logical Short-Circuit OR, Logical OR operators in Java - Theory
Lecture 155 Logical Short-Circuit OR, Logical OR operators in Java - Demo
Lecture 156 Logical XOR operator in Java
Lecture 157 Compound Logical Assignment Operators in Java
Lecture 158 Bitwise Operators in Java
Lecture 159 Bitwise NOT operator or 1’s complement in Java
Lecture 160 Bitwise AND operator in Java
Lecture 161 Bitwise OR operator in Java
Lecture 162 Bitwise XOR operator in Java
Lecture 163 Left Shift operator in Java
Lecture 164 Signed Right Shift operator in Java
Lecture 165 Unsigned Right Shift operator in Java
Lecture 166 Compound assignment bitwise operators in Java
Lecture 167 Ternary or Conditional operator in Java
Lecture 168 Introduction to Java operators Precedence & Associativity
Lecture 169 Details of Java operators Precedence & Associativity
Section 8: Control flow statements in Java
Lecture 170 DETAILS OF SOURCE CODE AND PDF CONTENT
Lecture 171 Introduction to Control flow statements in Java
Lecture 172 Deep dive on if, else if, else statements in Java - Theory
Lecture 173 Demo of if, else if, else statements in Java - Part 1
Lecture 174 Demo of if, else if, else statements in Java - Part 2
Lecture 175 Nested if- else if - else statements
Lecture 176 Ternary operator in the place of if-else statement
Lecture 177 Deep dive on switch case statement - Theory
Lecture 178 Deep dive on switch case statement - Demo
Lecture 179 [JAVA 14] Deep dive on switch expression - Theory
Lecture 180 [JAVA 14] Deep dive on switch expression - Demo
Lecture 181 Funny memes around if and switch statements
Lecture 182 Deep dive on while statement - Theory
Lecture 183 Deep dive on while statement - Demo
Lecture 184 Deep dive on do while statement
Lecture 185 Deep dive on for loop - Theory
Lecture 186 Deep dive on for loop - Demo
Lecture 187 Deep dive on nested for loops
Lecture 188 break statement - Theory
Lecture 189 break statement - Demo
Lecture 190 continue statement
Lecture 191 return statement
Lecture 192 Local variables & Scope - Theory
Lecture 193 Local variables & Scope - Demo
Section 9: packages in Java
Lecture 194 DETAILS OF SOURCE CODE AND PDF CONTENT
Lecture 195 Introduction to the structuring of code in Java projects
Lecture 196 Introduction to packages & benefits of them
Lecture 197 Creating a package - Part 1
Lecture 198 Creating a package - Part 2
Lecture 199 Rules & standards to name a package
Lecture 200 Using package members with import statement
Lecture 201 The great java.lang package
Lecture 202 The static import statements
Lecture 203 Important points about packages & imports
Lecture 204 Introduction to access modifiers
Lecture 205 Demo of access modifiers for java classes
Lecture 206 Demo of access modifiers for methods, fields in classes
Lecture 207 access modifiers real life analogies
Lecture 208 Deep dive on POJO classes - Part 1
Lecture 209 Deep dive on POJO classes - Part 2
Section 10: Inheritance in Java
Lecture 210 DETAILS OF SOURCE CODE AND PDF CONTENT
Lecture 211 Agenda of the section & quick revision of OOPs concepts
Lecture 212 Introduction to Inheritance in Java
Lecture 213 Deep dive on Inheritance - Theory
Lecture 214 Inheritance Demo - Part 1
Lecture 215 Inheritance Demo - Part 2
Lecture 216 Object class is the default Superclass
Lecture 217 is-a & has-a relationships in Java
Lecture 218 What a subclass inherits from its superclass
Lecture 219 Introduction to upcasting in Java
Lecture 220 Demo of upcasting - Part 1
Lecture 221 Demo of upcasting - Part 2
Lecture 222 Introduction to downcasting & it's demo
Lecture 223 instanceof Operator
Lecture 224 [JAVA 16] instanceof Operator with pattern matching
Lecture 225 Static Binding and Dynamic Binding in Java
Lecture 226 What is Polymorphism in Java
Lecture 227 Method Overriding - Theory
Lecture 228 Method Overriding - Demo
Lecture 229 Demo of dynamic polymorphism using method overriding
Lecture 230 super keyword to invoke super class methods from sub class
Lecture 231 Method Overloading - Theory
Lecture 232 Method Overloading - Demo
Lecture 233 Method overriding vs Method overloading
Lecture 234 Method hiding in Java Inheritance
Lecture 235 Field hiding in Java Inheritance
Lecture 236 The story of constructors & Inheritance together - Part 1
Lecture 237 The story of constructors & Inheritance together - Part 2
Lecture 238 this and super keywords in Java
Lecture 239 Types of Inheritance in Java
Lecture 240 abstract methods and classes - Part 1
Lecture 241 abstract methods and classes - Part 2
Lecture 242 final keyword in Java
Lecture 243 [JAVA 17] sealed classes & interfaces
Lecture 244 Funny memes of Inheritance
Section 11: Interfaces in Java
Lecture 245 DETAILS OF SOURCE CODE AND PDF CONTENT
Lecture 246 Introduction to Interfaces
Lecture 247 How to create an interface
Lecture 248 Implementing a interface in Java
Lecture 249 Advantages of interfaces
Lecture 250 Constant Field Declarations in interface
Lecture 251 Different method declarations allowed in interface
Lecture 252 [JAVA 8] Why we need default methods in interfaces
Lecture 253 [JAVA 8] How to build default methods in interfaces
Lecture 254 [JAVA 8] How to build static methods in interfaces
Lecture 255 Multiple Inheritance using interfaces - Part 1
Lecture 256 Multiple Inheritance using interfaces - Part 2
Lecture 257 Interface defines a new type
Lecture 258 Marker Interface
Lecture 259 [JAVA 8] Functional Interface
Lecture 260 Class Vs Abstract Class Vs Interface
Section 12: Arrays in Java
Lecture 261 DETAILS OF SOURCE CODE AND PDF CONTENT
Lecture 262 What is a Array in Java
Lecture 263 Declaring & initializing Arrays - Part 1
Lecture 264 Declaring & initializing Arrays - Part 2
Lecture 265 Arrays length
Lecture 266 Iterate elements of Array using for loop
Lecture 267 Iterate elements of Array using for-each loop
Lecture 268 Arrays advantages and disadvantages
Lecture 269 Copying Arrays using loops
Lecture 270 Copying Arrays using arraycopy and copyOf methods
Lecture 271 Converting Arrays
Lecture 272 Sorting Arrays
Lecture 273 Searching an Array
Lecture 274 Filling an Array
Lecture 275 Introduction to multidimensional or nested arrays
Lecture 276 Two-Dimensional or 2D Arrays - Theory
Lecture 277 Two-Dimensional or 2D Arrays - Demo
Lecture 278 Addition of two matrices using 2D arrays
Lecture 279 Jagged Arrays
Lecture 280 Three-Dimensional or 3D Arrays
Lecture 281 Funny memes of Arrays
Section 13: Accept input using BufferedReader and Scanner
Lecture 282 DETAILS OF SOURCE CODE AND PDF CONTENT
Lecture 283 Agenda of the section
Lecture 284 Understanding System.out.println
Lecture 285 Demo of Java Basic Input
Lecture 286 Introduction to BufferedReader
Lecture 287 Demo of BufferedReader
Lecture 288 BufferedReader examples to identify even number and sum
Lecture 289 BufferedReader example to identify prime number
Lecture 290 BufferedReader example to read the file content
Lecture 291 Introduction to Scanner & Demo - Part 1
Lecture 292 Introduction to Scanner & Demo - Part 2
Lecture 293 Scanner example to read the file content
Lecture 294 Comparison of BufferedReader and Scanner
Lecture 295 Don’t use System.out.println in Production code
Lecture 296 Logging in Java - Part 1
Lecture 297 Logging in Java - Part 2
Section 14: Exception handling using try, catch and finally
Lecture 298 DETAILS OF SOURCE CODE AND PDF CONTENT
Lecture 299 Agenda of the section
Lecture 300 Taste of first Exception
Lecture 301 try-catch block - Part 1
Lecture 302 try-catch block - Part 2
Lecture 303 multiple catch blocks - Part 1
Lecture 304 [JAVA 7] multiple catch blocks - Part 2
Lecture 305 finally block
Lecture 306 [JAVA 7] try- with-resources statement
Lecture 307 Rules while handling exceptions
Lecture 308 The Exception Hierarchy - Part 1
Lecture 309 The Exception Hierarchy - Part 2
Lecture 310 Checked Exceptions
Lecture 311 Unchecked Exceptions
Lecture 312 throws keyword
Lecture 313 throw keyword
Lecture 314 Differences between throw and throws keyword
Lecture 315 Exception Propagation
Lecture 316 Nested try block
Lecture 317 Custom Checked Exception
Lecture 318 Custom Unchecked Exception
Lecture 319 final, finally and finalize
Lecture 320 Funny memes around exception handling
Section 15: Unmasking Java's Superclass(java.lang.Object) Secrets
Lecture 321 DETAILS OF SOURCE CODE AND PDF CONTENT
Lecture 322 Introduction to the methods in Object class
Lecture 323 Deep dive on getClass() in Object class
Lecture 324 Deep dive on hashCode() in Object class - Part 1
Lecture 325 Deep dive on hashCode() in Object class - Part 2
Lecture 326 Deep dive on equals() in Object class
Lecture 327 Override hashCode() & equals() methods
Lecture 328 Override hashCode() & equals() methods using IntelliJ
Lecture 329 Deep dive on toString() in Object class
Lecture 330 Demo of hashCode(), equals() & toString() methods of String
Lecture 331 Deep dive on finalize() in Object class
Lecture 332 Deep dive on clone() in Object class
Lecture 333 Details about Shallow cloning & Deep cloning - Theory
Lecture 334 Details about Shallow cloning & Deep cloning - Demo
Lecture 335 Mutable and Immutable objects - Theory
Lecture 336 Mutable and Immutable objects - Demo
Lecture 337 [JAVA 16] Record classes - Part 1
Lecture 338 [JAVA 16] Record classes - Part 2
Lecture 339 [JAVA 10] var (local variable type inference) - Part 1
Lecture 340 [JAVA 10] var (local variable type inference) - Part 2
Section 16: Introduction to Collections & Wrapper Classes
Lecture 341 DETAILS OF SOURCE CODE AND PDF CONTENT
Lecture 342 Arrays have limitations
Lecture 343 What are Collections & why they accept only objects
Lecture 344 Introduction to Wrapper Classes
Lecture 345 Convert Primitive Type to Wrapper Objects (Boxing)
Lecture 346 Convert Wrapper Objects into Primitive Types (Unboxing)
Lecture 347 Autoboxing and unboxing - Theory
Lecture 348 Autoboxing and unboxing - Demo
Lecture 349 Caching with valueOf() methods
Lecture 350 Java Collection Framework Hierarchy
Section 17: Lists and ArrayLists Unleashed – A Hilarious Journey through Data Structures
Lecture 351 DETAILS OF SOURCE CODE AND PDF CONTENT
Lecture 352 Deep dive on the Collection Interface
Lecture 353 [JAVA 21] Deep dive on the Sequenced Collections
Lecture 354 Deep dive on the List Interface
Lecture 355 How to create objects of ArrayList
Lecture 356 Demo of ArrayList
Lecture 357 [JAVA 7] Diamond Operator in Java
Lecture 358 ArrayList performance
Lecture 359 [JAVA 9] Creating Immutable Lists
Lecture 360 Iterate ArrayList using for-each and iterator()
Lecture 361 Iterate ArrayList using listIterator()
Lecture 362 Sorting ArrayList using sort() methods
Lecture 363 Sorting ArrayList using custom Comparator
Lecture 364 Sorting ArrayList of custom data type using Comparable
Lecture 365 Sorting ArrayList of custom data type using Comparator
Lecture 366 Arrays vs ArrayList
Section 18: LinkedLists - Java's Dance of Nodes
Lecture 367 DETAILS OF SOURCE CODE AND PDF CONTENT
Lecture 368 Introduction of LinkedList
Lecture 369 How to create objects of LinkedList
Lecture 370 Demo of LinkedList
Lecture 371 Iterate LinkedList elements
Lecture 372 Sorting LinkedList elements
Lecture 373 LinkedList performance
Lecture 374 ArrayList vs LinkedList
Lecture 375 Funny memes around LinkedList
Section 19: Generics in Java
Lecture 376 DETAILS OF SOURCE CODE AND PDF CONTENT
Lecture 377 Introduction to Generics in Java
Lecture 378 Why we need Generics in Java
Lecture 379 Generic class in Java - Demo
Lecture 380 Generics methods in Java - Demo
Lecture 381 Collections with out Generics - Demo
Lecture 382 Covariance Demo
Lecture 383 Subtype or Upper Bound Wildcards
Lecture 384 Supertype or Lower Bound Wildcards
Lecture 385 Unbounded Wildcards
Section 20: Deep dive on Map, HashMap, TreeMap, LinkedHashMap
Lecture 386 DETAILS OF SOURCE CODE AND PDF CONTENT
Lecture 387 Introduction to Map in Java
Lecture 388 Demo of HashMap
Lecture 389 How HashMap Store Key, Value
Lecture 390 How HashMap retrieve Value
Lecture 391 [JAVA 8] HashMap improvements in Java 8
Lecture 392 Iterating HashMap using keySet() and entrySet()
Lecture 393 Iterating HashMap using values()
Lecture 394 Introduction to TreeMap in Java
Lecture 395 Demo of TreeMap in Java
Lecture 396 Demo of LinkedHashMap in Java
Lecture 397 [JAVA 9] Creating Immutable Maps
Section 21: Set, HashSet, TreeSet, LinkedHashSet
Lecture 398 DETAILS OF SOURCE CODE AND PDF CONTENT
Lecture 399 Introduction to Set in Java
Lecture 400 Demo of HashSet
Lecture 401 How HashSet works internally
Lecture 402 Iterating HashSet
Lecture 403 Set operations
Lecture 404 Demo of TreeSet in Java
Lecture 405 Demo of LinkedHashSet in Java
Lecture 406 [JAVA 9] Creating Immutable Sets
Lecture 407 List vs Set
Section 22: Enums in Java
Lecture 408 DETAILS OF SOURCE CODE AND PDF CONTENT
Lecture 409 Introduction to Enums
Lecture 410 Problems with normal Java class constants approach
Lecture 411 Demo of Enum approach
Lecture 412 More details about enum - Part 1
Lecture 413 More details about enum - Part 2
Lecture 414 Associating Data to Enum Constants
Lecture 415 Demo of EnumSet and it's important methods
Lecture 416 Advantages of Enums
Section 23: Date and Time in Java
Lecture 417 DETAILS OF SOURCE CODE AND PDF CONTENT
Lecture 418 How Java supports Date and Time
Lecture 419 Why a new Date API introduced in Java 8
Lecture 420 Demo of java.util.Date - Part 1
Lecture 421 Demo of java.util.Date - Part 2
Lecture 422 Date formatting and parsing using SimpleDateFormat
Lecture 423 Demo of java.sql.Date
Lecture 424 Demo of java.util.Calendar - Part 1
Lecture 425 Demo of java.util.Calendar - Part 2
Lecture 426 TimeZone specific Date and Time
Lecture 427 [JAVA 8] Introduction to new Date & Time API from Java 8
Lecture 428 [JAVA 8] The of() methods in java.time Date and Time API
Lecture 429 [JAVA 8] The from() & withXxx() methods in java.time Date and Time API
Lecture 430 [JAVA 8] The toXxx() & atXxx() methods in java.time Date and Time API
Lecture 431 [JAVA 8} The getXxx(), plusXxx() and minusXxx() methods in new Date & Time API
Lecture 432 [JAVA 8] Introduction to Instant and Duration in java.time Date and Time API
Lecture 433 [JAVA 8] Demo of Instant and Duration in java.time Date and Time API
Lecture 434 [JAVA 8] Period in java.time Date and Time API
Lecture 435 [JAVA 8] The multipliedBy(), dividedBy() & negated() methods
Lecture 436 [JAVA 8] The truncatedTo() method
Lecture 437 [JAVA 8] Demo of ZoneId, ZonedDateTime
Lecture 438 [JAVA 8] Demo of ZoneOffset
Lecture 439 [JAVA 8] Demo of OffsetDateTime and OffsetTime
Lecture 440 [JAVA 8] Demo of Day Light Saving with ZonedDateTime
Lecture 441 [JAVA 8] Non-ISO Calendars in java.time Date and Time API
Lecture 442 [JAVA 8] Formatting Dates and Times using DateTimeFormatter
Lecture 443 [JAVA 8] Parsing Dates and Times using DateTimeFormatter
Lecture 444 Funny memes around Java Date and Time APIs
Section 24: [JAVA 8] Functional Programming using lambda expressions
Lecture 445 DETAILS OF SOURCE CODE AND PDF CONTENT
Lecture 446 Introduction to Functional Programming
Lecture 447 Imperative style vs functional style programming
Lecture 448 What are lambda expressions and their syntax
Lecture 449 How to build Lambda expressions
Lecture 450 Deep dive on Functional Interfaces
Lecture 451 How Functional Interface & Lambda expressions are linked - Part 1
Lecture 452 How Functional Interface & Lambda expressions are linked - Part 2
Lecture 453 Anonymous inner class in the place of lambda expressions
Lecture 454 Predefined Functional interfaces inside JDK
Lecture 455 Deep dive on Predicate functional interface - Part 1
Lecture 456 Deep dive on Predicate functional interface - Part 2
Lecture 457 Deep dive on Function functional interface
Lecture 458 Deep dive on UnaryOperator interface
Lecture 459 Deep dive on Consumer interface
Lecture 460 Deep dive on Supplier interface
Lecture 461 Deep dive on BiFunctional Interfaces - Part 1
Lecture 462 Deep dive on BiFunctional Interfaces - Part 2
Lecture 463 Primitive Type functional interfaces - Theory
Lecture 464 Primitive Type functional interfaces - Demo
Lecture 465 Deep dive on Lexical Scoping of Lambda expressions
Lecture 466 this and super inside lambda expression
Lecture 467 Funny memes around Functional Programming
Section 25: [JAVA 8] Building Lambda expressions using Method References
Lecture 468 DETAILS OF SOURCE CODE AND PDF CONTENT
Lecture 469 Introduction to Method References
Lecture 470 Demo of Static Method Reference
Lecture 471 Demo of Instance Method Reference
Lecture 472 Demo of Instance method Reference using Class type
Lecture 473 Demo of Constructor Reference
Section 26: [JAVA 8] Streams API
Lecture 474 DETAILS OF SOURCE CODE AND PDF CONTENT
Lecture 475 Introduction to java.util.stream API
Lecture 476 Creating a Stream from collections - Part 1
Lecture 477 Creating a Stream from collections - Part 2
Lecture 478 Streams have no storage
Lecture 479 Introduction to Streams Pipeline
Lecture 480 Demo of Streams map() method
Lecture 481 Introduction to Streams flatMap() method
Lecture 482 Demo of Streams flatMap() method
Lecture 483 Demo of Streams filter() method
Lecture 484 Demo of Streams limit() method
Lecture 485 Demo of Streams skip() method
Lecture 486 Streams are traversable only once
Lecture 487 Introduction to Streams reduce() method
Lecture 488 Demo of Streams reduce() method
Lecture 489 Demo of Streams collect() method
Lecture 490 Demo of Streams collectingAndThen() method
Lecture 491 Demo of Streams groupingBy() and partitioningBy() method
Lecture 492 Finding and Matching methods in Streams
Lecture 493 Quick revision about stream pipeline
Lecture 494 Deep dive on parallel streams and demo
Lecture 495 Collections Vs Streams
Section 27: [JAVA 8] Optional to deal with nulls in Java
Lecture 496 DETAILS OF SOURCE CODE AND PDF CONTENT
Lecture 497 Introduction to Optional class
Lecture 498 Demo of Optional - Part 1
Lecture 499 Demo of Optional - Part 2
Lecture 500 Demo of ifPresent, ifPresentOrElse, orElse, orElseGet methods
Lecture 501 Demo of orElseThrow, map, filter methods
Lecture 502 Quick tip to filter null elements with Stream API
Section 28: MultiThreading in Java
Lecture 503 DETAILS OF SOURCE CODE AND PDF CONTENT
Lecture 504 What is MultiThreading
Lecture 505 How a program or a software executes inside a computer
Lecture 506 Parallel vs Concurrent Execution
Lecture 507 How multiple threads improve performance
Lecture 508 Creating Threads in Java - Part 1
Lecture 509 Creating Threads in Java - Part 2
Lecture 510 MultiThreading Demo Program
Lecture 511 Demo of Thread methods getId, threadId, getName, setName, currentThread, sleep
Lecture 512 Demo of Thread method join, getPriority, setPriority
Lecture 513 Demo of wait(), notify(), notifyAll() - Part 1
Lecture 514 Demo of wait(), notify(), notifyAll() - Part 2
Lecture 515 Introduction to Race condition & synchronized keyword
Lecture 516 Demo of synchronized methods and blocks
Lecture 517 Introduction to volatile keyword
Lecture 518 Demo of volatile keyword
Lecture 519 Introduction to Deadlock
Lecture 520 Demo Deadlock & possible fixes
Lecture 521 [JAVA 21] Introduction to Virtual Threads - Part 1
Lecture 522 [JAVA 21] Introduction to Virtual Threads - Part 2
Lecture 523 [JAVA 21] Introduction to Virtual Threads - Part 3
Lecture 524 [JAVA 21] Demo of Virtual Threads
Section 29: Thank You & Congratulations
Lecture 525 Congratulations & Thank You
Lecture 526 Bonus lectures
Beginners aspiring to learn Java programming.,Experienced developers looking to expand their Java skills,Students and professionals seeking to advance their careers in software development