Basic Java Requirements 1 Overview Of Programming With Java 1.1 What Is Programming ? Why We Need Programming 1.2 How To Learn Programming & Programming Skills 1.3 How Can I Be A Good/Excellent Programmer 1.4 More details on Java 1.4.1 Platform Independence In Java - WORA & WOCA 1.4.2 Java And Internet - Creating Java Applet 1.4.3 What Is Servlet In Java? 1.4.4 Java Bytecode 1.4.5 Java Buzzwords 1.4.6 JDK JRE JVM JIT - Java Compiler 1.4.7 Java Versions And Changes Done In Every Version 1.4.8 Java Keywords 1.5 Simple Programs and Development environment 1.5.1 Installation Of Java on your PC 1.5.2 Java Sample Program - Simple Hello World Program In Java 1.5.3 How to Compile and Run Java Program In Cmd Prompt 2 Datatypes 2.1 Data Types In Java 2.2 Primtive Dataypes 2.2.1 Primitive Data Types In Java 2.2.2 Integer Data Types In Java 2.2.3 Floating Point Data Types In Java 2.2.4 Java Character 2.2.5 Boolean Data Type In Java 2.2.6 Literals 2.2.6.1 Java Literals 2.2.6.2 Integer Literals In Java 2.2.6.3 Floating Point Literals In Java 2.2.6.4 Character Literals In Java 2.2.6.5 String Literal In Java 2.2.6.6 Boolean Literals In Java 3 Variables 3.1 Java Variables 3.2 Scope Of Variables In Same Block 3.3 Type Conversion In Java 3.4 Type Casting In Java 4 Operators 4.1 Operators In Java 4.2 Java Arithmetic Operators 4.3 Basic Arithmetic Operators In Java 4.4 Increment And Decrement Operators In Java 4.5 Modulus Operator In Java 4.6 Arithmetic Compound Assignment Operators In Java 4.7 Relational Operators In Java 4.8 Boolean Logical Operators In Java 4.9 Short Circuit Logical Operators In Java 4.10 Assignment Operator In Java 4.11 Ternary Operator In Java 4.12 Java Operator Precedence And Associativity 4.13 Temperature Conversion Program In Java 5 Control Statements 5.1 Control Statements In Java 5.2 Selection Statements 5.2.1 Selection Statements In Java 5.2.2 if Condition In Java 5.2.3 Nested if Statements In Java 5.2.4 if else if ladder In Java 5.2.5 switch Statement In Java 5.2.6 if else Vs switch Performance In Java 5.2.7 Nested switch Statements In Java 5.2.8 Fall Through Switch Case Statements In Java 5.3 Blocks of code 5.3.1 Block Of Code In Java 5.3.2 Scope Of Variables In Nested/Multiple Blocks 5.3.3 Lifetime Of Variable In Java 5.3.4 Expressions, Statement, Line & Block In Java 5.4 Iteration statements (Loops) 5.4.1 Iteration Statements Or Loops In Java 5.4.2 while Loop In Java 5.4.3 for Loop In Java 5.4.4 for Vs while Loop In Java 5.4.5 do while Loop In Java 5.4.6 Nested Loops in Java 5.4.7 Nested While Loop In Java 5.4.8 Nested for Loop In Java 5.4.9 for Loop Example Program In Java - Sum Of Numbers 5.4.10 Factorial Program In Java Using for Loop 5.4.11 Factorial Program In Java Using While Loop 5.5 Jump Statements 5.5.1 Jump Statements In Java 5.5.2 Using Break In for Loop To Exit 5.5.3 Using break in switch case Statement 5.5.4 Using Java Break Statements as Java Goto 5.5.5 Using break In Nested Loop Java Program 5.5.6 Java continue Statement 5.5.7 Java return Statement 5.6 Java for loops vs Java while loops vs Java do while loops 6 Methods - Importance 6.1 Basic Java Methods 6.2 Java Methods 6.3 Java Methods - Parameter Passing And Scope 6.4 Java Program To Find Simple Interest Using Methods 6.5 Recursive In Java 7 Array - Overview 7.1 Java Array 7.2 Creation And Declaration Of Array In Java 7.3 Arraylist Access Using Index 7.4 Java Multidimensional Array 7.5 Java Array Initialization 7.6 Learn Arrays And Loops 7.7 Java Code To Print Student Details Using Arrays 7.8 For-each Loop In Core Java Programming 7.9 ommand Line Arguments In Core Java Programming 8 Classes 8.1 Java Class 8.2 Java Classes and Java Objects 8.3 Java Objects References 8.4 Member Variable In Java 8.5 Class References And Objects In Java 8.6 To Print Student Details Using Classes In Java 8.7 Create Objects Using Constructors In Java 8.8 Class With Multiple Constructors In Java 8.9 this Keyword In Java 8.10 Behavior Of Java Classes Using Methods 8.11 Java Multiple Methods In One Class 8.12 Calling A Class From Another Class In Java 8.13 Creating A Class For Data Validation 8.14 Java Program To Find Rectangle Area & Perimeter Using Classes 8.15 Java Program to Find Area of Various Shapes Using Classes 8.16 Java Program To Compare Movies 9 Class Inheritance 9.1 Java Class Inheritance 9.2 Is-A Relationship In Java 9.3 Passing Sub Class Object As Super Class Reference 9.4 Assigning Sub Class Object To Super Class Reference In Java 9.5 Assigning Super Class Reference To A Sub Class Reference In Java 9.6 Multilevel Inheritance In Java With Example Program 10 Methods Overiding, Overloading 10.1 Method Overloading In Java 10.2 Is Java Pass by Reference or Pass by Value 10.3 Method Overriding In Java 10.4 Inheritance Example Program To Remove Duplicate Code 10.5 How A Method Can Be Overridden In Different Ways 10.6 Method Overloading Vs Method Overriding 10.7 Super Keyword In Java To Call Super Class Constructor 10.8 Inheritance And Constructors In Java 10.9 Dynamic Method Dispatch - Calling Overridden Methods In Java 10.10 Run Time Polymorphism In Java 11 Abstract Class And Methods 11.1 Java Abstract Class 11.2 Abstract Method In Java 11.3 Rules For Abstract Methods and Abstract Classes 11.4 Creating Array Of Objects In Java 11.5 Java Program To Find Largest Area by Comparing Various Shapes 11.6 Java Program For Cricket Players Using Class Hierarchy 12 Interfaces, Packages and Access Control 12.1 Java Interface 12.2 Difference Between Interfaces And Abstract Classes 12.3 Future Task Java Program Using Interfaces 12.4 Creating Interface In Java With Example Program 12.5 Java Package 12.6 How To Compile Classes in Package 12.7 Using private Keyword In Java For Access Control 12.8 Access Modifiers In Java 12.9 Java Access Modifiers With Example Program 13 final, static and others 13.1 final Keyword In Java 13.2 Static Keyword In Java 13.3 Creating Static Methods In Java Using Static Keyword 13.4 Singleton Design Pattern In Java 13.5 Java Program To Explain Public Static Void Main 13.6 Static and Non Static Variables - Static and Non Static Methods 14 Object Oriented Concepts - Revisited 14.1 Abstraction in Java 14.2 Polymorphism In Java 14.3 Encapsulation In Java 14.4 Inheritance In Java 15 Exceptions 15.1 Why Java Throws Exceptions 15.2 How To Handle An Exception In Java 15.3 Exception Handling In Java with Example Program 15.4 Try Catch Block In Java 15.5 Java Multiple Catch Block With Example Program 15.6 Java Finally Block In Exception Handling 15.7 User Defined Exception In Java 15.8 Java Throw Keyword - Java Throws Keyword 15.9 Difference Between Error and Exception in Java 15.10 Checked Exception Vs Unchecked Exception In Java 15.11 Java Built In Exceptions Checked Exceptions, Unchecked Exceptions 15.12 Exception Handling Syntax In Java Programming 16 Multithreaded Programming 16.1 Thread Concept In Java 16.2 The Java Thread Model 16.2.1 Creation Of Threads In Java 16.2.2 Java Inter Thread Communication With Example 16.3 Synchronization 16.3.1 Thread Synchronization In Java Using 'Synchronized' 16.3.2 static synchronized In Java 16.3.3 Java Synchronized Blocks 16.4 Handling Thread DeadLock In Java 16.5 Java Thread Group 16.6 Modern Ways Of Suspending, Resuming And Stopping Threads In Java 17 Generics 17.1 Java Generics 17.2 A Simple Generics Example 17.2.1 How Generics Improve Type Safety In Java 17.3 A Generic Class With Two Type Parameters In Java 17.4 Java Bounded Type - Bounded Type In Java 17.5 Generics Wildcards In Java With Examples 17.6 Java Generics In Methods And Constructors 17.7 Generic Interface In Java 17.8 Java Type Erasure 18 Strings 18.1 Java String 18.2 Java length() Method | length() Method In Java - Strings 18.3 Special String Operations 18.3.1 Literals In Java 18.3.2 Java String concatenation - concat() Method In Java 18.3.3 Java String Concatenation with Other Data Types 18.3.4 Java String Conversion - toString() Method In Java 18.4 Character Extraction 18.4.1 charAt() Method In Java - Java Character Extraction 18.4.2 getChars() Method In Java 18.4.3 Java Character Extraction - Java String getBytes() Method 18.4.4 Java Character Extraction - toCharArray() Method In Java 18.5 String Comparison 18.5.1 Java String Comparison Methods - Equals and EqualsIgnoreCase 18.5.2 Java regionMatches() Method - String Comparison 18.5.3 Java String startsWith() And endsWith() Methods 18.5.4 Java equals method vs == Operator 18.5.5 Java compareTo() method 18.6 Java Searching Strings - Java indexOf, lastIndexOf Methods 18.7 Modifying a String 18.7.1 Java String substring() method - substring In Java 18.7.2 concat() method In Java 18.7.3 replace() Method In Java 18.7.4 Java String trim() Method - trim() Method In Java 18.8 Data Conversion Using valueOf In Java 18.9 toLowerCase() And toUpperCase() Methods In Java 18.10 Additional String Methods in Java 18.11 Java String Arrays - String Arrays In Java 18.12 StringBuffer 18.12.1 Java StringBuffer 18.12.2 Java StringBuffer 18.12.3 Java StringBuffer length() And capacity() Methods 18.12.4 Java StringBuffer ensureCapacity() Method With Example 18.12.5 Java setLength() Method In StringBuffer Class 18.12.6 Java charAt() And setCharAt() Methods in StringBuffer 18.12.7 StringBuffer getChars() Method In Java With Example 18.12.8 Java append() Method In StringBuffer 18.12.9 Java StringBuffer insert() Method With Example 18.12.10 Java StringBuffer, reverse() - Reverse A String In Java 18.12.11 Java delete() and deleteCharAt() Methods In StringBuffer 18.12.12 Java StringBuffer replace() Method With Example 18.12.13 Java substring 18.12.14 Additional StringBuffer Methods In Java 18.13 StringBuilder Class In Java 18.14 Conclusion Of Strings In Java 19 Exploring java.lang 19.1 Primitive Type Wrappers 19.1.1 Java Number Class 19.1.2 Java Double Class And Java Float Class 19.1.3 Java isInfinite() And isNaN() Methods In Double Class 19.1.4 Creating Objects for Primitive Data Types (Byte, Short) 19.1.5 Converting Numbers to and from Strings In Java 19.1.6 Java Character Class 19.1.7 Character Unicode, Code Point Support In Java 19.1.8 Java Boolean Class 19.2 Java Void Class 19.3 Java Process Class 19.4 Java Runtime Class - java.lang.Runtime 19.5 Java ProcessBuilder 19.6 System 19.6.1 Using currentTimeMillis() Method In Java 19.6.2 System Class arraycopy() Method In Java 19.6.3 Java Environment Properties 19.7 Object As A Super Class In Java 19.8 clone() Method And cloneable Interface In Java 19.9 java.lang.class - Java Library 19.10 Java ClassLoader 19.11 Java Math Class - java.lang.Math 19.12 Java Package Class 19.13 Java Enumeration 19.14 Java Comparable Interface with Example 19.15 Conclusion (Exploring java.lang) 20 Collections Framework 20.1 Java Collections Overview 20.2 Collection Interface 20.2.1 Java List Interface 20.2.2 Set Interface In Java 20.2.3 Java SortedSet Interface 20.2.4 Java NavigableSet Interface 20.3 Collection Classes 20.3.1 Java ArrayList 20.3.2 Java LinkedList 20.3.3 HashSet Class In Java 20.3.4 Java LinkedHashSet 20.3.5 Java TreeSet - TreeSet Examples in Java 20.3.6 Java PriorityQueue - PriorityQueue In Java 20.3.7 Java ArrayDeque Class 20.3.8 Java EnumSet 20.4 Iterator 20.4.1 Java Iterator 20.4.2 List Iterator In Java 20.5 Map Interfaces 20.5.1 Java Map Interfaces - HashMap, TreeMap, LinkedHashMap 20.5.2 Java SortedMap Interface 20.5.3 Java NavigableMap 20.5.4 Java Map.Entry Interface 20.6 Map Classes 20.6.1 Java HashMap Implementation 20.6.2 TreeMap In Java - java.util.TreeMap 20.6.3 Java WeakHashMap Class 20.6.4 LinkedHashMap In Java with Code Example 20.6.5 Java IdentityHashMap 20.6.6 Java EnumMap 20.7 Java Comparators 20.8 Collection Algorithms 20.8.1 Java Collection Algorithms 20.8.2 Java Read-only Collections And Algorithms 20.8.3 Java Thread Safe Collections & Algorithms 20.8.4 Java Singleton 20.8.5 Java nCopies Collections - Collections.nCopies() Method 20.9 java.util.Arrays - Class Arrays In Collection Framework 20.10 Why Collections Are Generic In Java? 20.11 Legacy Classes and Interfaces 20.11.1 Java Enumeration Interfaces - Java Enumeration Examples 20.11.2 Java Vector 20.11.3 Stack In Java - java.util.Stack Class 20.11.4 Java Dictionary Class - java.util.Dictionary 20.11.5 Java Hashtable 20.11.6 Java Properties Class - java.util.Properties Class 20.12 Collection Framework In Java 21 More Utility Classes 21.1 Java Collections - Utility Classes In Java 21.2 StringTokenizer In Java 21.3 Java BitSet 21.4 Java Date Class 21.5 Calendar In Java - java.util.Calendar Class 21.6 Java GregorianCalendar 21.7 Java TimeZone Class 21.8 Java SimpleTimeZone 21.9 Locale Class In Java 21.10 Java Random Class - java.util.Random Package 21.11 Java Observable 21.12 Java Timer Class And Java TimerTask Class 21.13 Java Currency Class 21.14 Formatter 21.14.1 Java Formatter Class 21.14.2 Java Formatter Methods 21.14.3 Java Formatter 21.14.4 Formatting Strings And Characters By Using Formatter 21.14.5 Java Formatting Numbers 21.14.6 Formatting Date And Time In Java With Example 21.15 Scanner 21.15.1 Java Scanner Class Constructors With Example 21.15.2 Java Scanner Class Methods With Examples 21.16 Java ResourceBundle, ListResourceBundle And PropertyResourceBundle Classes 21.17 java.util Subpackages 21.17.1 Usage Of java.util.logging Package 21.17.2 Java Regular Expression 22 Input/Output: Exploring java.io 22.1 Java Input/Output Classes And Interfaces 22.2 File 22.2.1 Java Directories - isDiretory() Method In Java 22.2.2 Using FilenameFilter Interface In Java 22.2.3 Alternative For list() Method - listFiles() Method 22.2.4 Creating Directories In Java - Creating Java Directories 22.3 AutoCloseable, Closeable And Flushable Interfaces In Java 22.4 Java I/O Exceptions - I/O Exceptions In Java 22.5 Two Ways To Close A Stream In Java 22.6 Java Stream Classes 22.7 Byte Streams 22.7.1 Java InputStream Class 22.7.2 Java OutputStream Class 22.7.3 Java FileInputStream 22.7.4 Java FileOutputStream 22.7.5 Java ByteArrayInputStream 22.7.6 Java ByteArrayOutputStream 22.7.7 Java Filtered Byte Streams 22.7.8 Java Buffered Byte Streams 22.7.9 Java BufferedInputStream 22.7.10 Java BufferedOutputStream - BufferedOutputStream In Java 22.7.11 Java PrintStream Class 22.7.12 DataInputStream And DataOutputStream In Java 22.7.13 Java RandomAccessFile 22.8 Character Streams 22.8.1 Reader Class In Java 22.8.2 Java Writer Class 22.8.3 Java FileReader 22.8.4 Java FileWriter 22.8.5 Java CharArrayReader 22.8.6 Java CharArrayWriter 22.8.7 BufferedReader In Java 22.8.8 Java BufferedWriter 22.8.9 PrintWriter Class In Java 22.9 Java Console Class 22.10 Serialization 22.10.1 Serialization In Java 22.10.2 Externalizable In Java with Example 22.10.3 Java ObjectOutput 22.10.4 Java ObjectOutputStream 22.10.5 Java ObjectInput 22.10.6 Java ObjectInputStream 22.10.7 Java Serialization Process - 22.11 Java Stream Benefits 22.12 Conclusion To Input/Output (Exploring java.io) 23 Other Core Java Topics 23.1 Other Advanced Topics In Java 23.2 Advanced Java Programming Concepts Advance Java Topics or Syllabus 1. Basics of a Web application What is a web application? What is a web client and web server? How do client and server communicate? HTTP protocol basics HTML language basics What is a TCP/IP port, URL? Need for a Web Container 2. Web Container and Web Application Project Set up To set up Tomcat Container on a machine To set up a Servlets JSP project in Eclipse To configure dependency of Servlet JSP APIs Web application project structure 3. Servlets What are Servlets? What can they do? Why are they needed? How do Servlets look in code? HTTP Methods; GET, POST, PUT, DELETE, TRACE, OPTIONS GET/POST request; differences between the two Servlet Lifecycle Servlet Context and Servlet Config Forwarding and Redirection of requests 4. Session Management What is a session? Why is it required? How to get a session? Session information passing between client and server Session information passing mechanisms - Cookies, Rewriting How to destroy a session 5. JSPs Introduction to JSP and need for JSPs Basic HTML tags JSP Lifecycle 6. JSP Elements Scriptlets Expressions Declarations Significance of above elements and fitment into the JSP Lifecycle What are Directives in JSP? Page Directive Include Directives Taglib Directive 7. JSP Tag library JSP Standard Actions Expression Language JSTL basics and it's usage Need for Custom Tag Library Custom Tag Library implementation Struts Framework (version 2.x) 1. Basics of MVC What is MVC? MVC Type1 and Type2 architecture Why Struts framework? Struts 1 overview Struts 1 and Struts 2 comparison 2. Struts 2 Architecture Architecture Diagram explanation of following components: Components of Model, Views and Controller in Struts Framework Interceptors Model/Action classes Value Stack OGNL Introduction to configurations; framework and application architecture Declarative and Annotations configuration approaches 3. Struts 2 set up and first Action class Download JAR files Struts 2 project build up and Configuration files To build Action class To intercept an HTTP request via Struts2 framework using Action class Defining data and business logic in Action class Preparing and Forwarding control to Views 4. Struts 2 Interceptors What are Interceptors Responsibilities of an Interceptor Mechanism of Interceptor calling in Struts 2 Defining Interceptors Defining Interceptor stacks Defining Custom Interceptors 5. Struts 2 Tag Library Introduction to tag library of Struts 2 and it's usage 6. Struts 2 Validations Validations using Validateable interface Workflow interceptor mechanism for validations Validations using Validateable interface Validation Framework introduction and architecture Validating user input with above two mechanisms 7. Struts 2 Tiles Frameworks Introduction to Tiles in a page Struts2 Tiles framework introduction Defining tiles.xml file Configuring pages for tiles A complete Tiles example with Struts2 Hibernate Framework (version 3.x) 1. Introduction What is ORM principle? Why ORM? ORM implementations 2. Hibernate Architecture Introduction to Hibernate Hibernate Architecture What are Persistent classes? 3. Hibernate CRUD Setting up Hibernate project Configuring all JARs and XML files Setting up connection to DB using Hibernate Performing basic CRUD operations using Hibernate API Object Identity; Generator type classes Using SQL with Hibernate Using HQL Using Criteria queries 4. Mapping Collections and Associations To define sets, mas, lists in Hibernate Association Mappings: One to one One to many Many to one Many to many Hibernate Caching What is caching? What are the types of caching in Hibernate? Explanation of various caching mechanisms in Hibernate 5. Using Hibernate Annotations Sample example of using Hibernate Annotations Spring Framework (version 3.x) 1. Introduction to spring What is Spring? Spring Architecture explanation and all it's components 2. Introduction to all modules of Spring Spring Bean Factory Spring Application Context Spring DI Spring Integration; Spring messaging, Spring JMS Spring MVC Spring DAO 3. Setting up spring Setting up of Spring framework Download JARs Configure XML files 4. Dependency Injection What is Dependency Injection? How is it implemented using Spring Framework? Bean Wiring mechanisms in Spring 5. Spring AOP What is Spring AOP? Implementation of Spring AOP Spring Boot Framework (Version 2.x) 1. Introduction Spring Boot Introduction Spring Boot Version Spring vs Spring Boot vs Spring MVC Spring Boot Architecture 2. Creating Project Spring Initializr Download & Install STS IDE Spring Boot Example Spring Boot CLI Spring Boot Example-STS 3. Project Components Annotations Dependency Management Application Properties Starters Starter Parent Starter Web Starter Data JPA Starter Actuator Starter Test Devtools Multi Module Project Packaging Auto-Configuration 4. Tool Suite Hello World Example Project Deployment Using Tomcat 5. Spring Boot AOP What is AOP? AOP Before Advice AOP After Advice AOP Around Advice After Returning Advice After Throwing Advice 6. Spring Boot Database JPA JDBC H2 Database Crud Operations 7. Spring Boot View Thymeleaf View 8. Spring Boot Caching What is Caching? Cache Provider EhCaching 9. Spring Boot Misc Run Spring Boot Application Changing Port Spring Boot Rest Example Web Services: REST and SOAP Logging Framework: Splunk, Log4J, SLF4j Version-control system + repository hosting service: Git + Github Course Curriculum Getting Started Preview1- Introduction (1:11) Start2- Source Code Exceptions (43m) Preview1- Introduction (0:42) Preview2- What are Exceptions (3:45) Preview3- Types of Exceptions (3:40) Preview4- Exceptions Hierarchy (2:05) Preview5- Catching Exceptions (3:51) Preview6- Catching Multiple Types of Exceptions (4:28) Preview7- The finally Block (4:10) Start8- The try-with-resources Statement (2:26) Start9- Throwing Exceptions (4:41) Start10- Re-throwing Exceptions (3:07) Start11- Custom Exceptions (4:18) Start12- Chaining Exceptions (4:56) Start13- Summary (0:56) Generics (43m) Start1- Introduction (0:27) Start2- The Need for Generics (3:32) Start3- A Poor Solution (3:22) Start4- Generic Classes (4:27) Start5- Generics and Primitive Types (2:24) Start6- Constraints (3:25) Start7- Type Erasure (4:04) Start8- Comparable Interface (5:38) Start9- Generic Methods (4:48) Start10- Multiple Type Parameters (2:32) Start11- Generic Classes and Inheritance (4:17) Start12- Wildcards (5:27) Start13- Summary (0:55) Collections (1h) Start1- Introduction (0:34) Start2- Overview of Collections Framework (3:08) Start3- The Need for Iterables (3:54) Start4- The Iterable Interface (5:24) Start5- The Iterator Interface (5:26) Start6- The Collection Interface (9:35) Start7- The List Interface (3:51) Start8- The Comparable Interface (4:28) Start9- The Comparator Interface (3:51) Start10- The Queue Interface (4:47) Start11- The Set Interface (5:33) Start12- Hash Tables (3:44) Start13- The Map Interface (6:26) Start14- Summary (0:44) Lambda Expressions and Functional Interfaces (44m) Start1- Introduction (0:47) Start2- Functional Interfaces (3:51) Start3- Anonymous Inner Classes (1:23) Start4- Lambda Expressions (3:43) Start5- Variable Capture (1:56) Start6- Method References (3:46) Start7- Built-in Functional Interfaces (1:42) Start8- The Consumer Interface (4:06) Start9- Chaining Consumer (4:28) Start10- The Supplier Interface (2:30) Start11- The Function Interface (3:00) Start12- Composing Functions (4:19) Start13- The Predicate Interface (2:02) Start14- Combining Predicates (2:10) Start15- The BinaryOperator Interface (3:15) Start16- The UnaryOperator Interface (1:13) Start17- Summary (0:40) Streams (1h) Start1- Introduction (0:41) Start2- Imperative vs Functional Programming (6:24) Start3- Creating a Stream (5:01) Start4- Mapping Elements (5:24) Start5- Filtering Elements (2:59) Start6- Slicing Streams (4:21) Start7- Sorting Streams (5:12) Start8- Getting Unique Elements (2:09) Start9- Peeking Elements (3:19) Start10- Simple Reducers (3:37) Start11- Reducing a Stream (4:12) Start12- Collectors (6:03) Start13- Grouping Elements (4:51) Start14- Partitioning Elements (2:10) Start15- Primitive Type Streams (1:25) Start16- Summary (0:39) Concurrency and Multi-threading (1h) Start1- Introduction (0:55) Start2- Processes and Threads (3:07) Start3- Starting a Thread (3:14) Start4- Pausing a Thread (2:35) Start5- Joining a Thread (2:27) Start6- Interrupting a Thread (2:54) Start7- Concurrency Issues (2:08) Start8- Race Conditions (5:53) Start9- Strategies for Thread Safety (2:50) Start10- Confinement (3:40) Start11- Locks (3:17) Start12- The synchronized Keyword (5:13) Start13- The volatile Keyword (6:33) Start14- Thread Signalling with wait() and notify() (3:35) Start15- Atomic Objects (3:25) Start16- Adders (2:08) Start17- Synchronized Collections (3:24) Start18- Concurrent Collections (2:37) Start19- Summary (1:18) The Executive Framework (70m) Start1- Introduction (0:38) Start2- Thread Pools (1:46) Start3- Executors (6:50) Start4- Callables and Futures (5:00) Start5- Asynchronous Programming (1:50) Start6- Completable Futures (1:38) Start7- Creating a Completable Future (3:42) Start8- Implementing an Asynchronous API (4:18) Start9- Running Code on Completion (4:04) Start10- Handling Exceptions (4:15) Start11- Transforming a Completable Future (4:34) Start12- Composing Completable Futures (6:08) Start13- Combining Completable Futures (4:32) Start14- Waiting for Many Tasks to Complete (2:48) Start15- Waiting for the First Task (2:13) Start16- Handling timeouts (2:24) Start17- Project- Best Price Finder (1:18) Start18- Solution- Getting a Quote (4:15) Start19- Solution- Getting Many Quotes (4:49) Start20- Solution- Random Delays (4:27)