
Explore Java 8 features like lambda expressions, functional interfaces, default and static interface methods, and streams and date/time APIs to simplify code and enable parallel processing.
Learn how lambda expressions introduce functional programming in Java, enabling concise, readable, and maintainable code. See how they simplify API usage and enable parallel processing.
Explore Java 8 lambda expressions as anonymous functions without names, modifiers, or return types, and learn by examples like printing hello, summing two inputs, and getting string length.
Learn to convert methods to lambda expressions in Java 8, using single-statement bodies and type inference for concise, readable code. Discover how context and parameter count shape lambda syntax.
Learn the functional interface concept in Java 8, focusing on the single abstract method requirement and how the @FunctionalInterface annotation validates interfaces with default and static methods.
explore how @FunctionalInterface works with inheritance: if the parent is functional and the child adds no new abstract methods, it stays functional; adding a new abstract method triggers an error.
Learn how to invoke lambda expressions using a functional interface, compare non-lambda and lambda implementations, and see how lambda reduces code length and improves readability.
Demonstrate writing and invoking lambda expressions via functional interfaces, using multiple examples to show type inference, two-argument and single-argument methods, and lambda-based invocation.
Explore how to invoke a lambda expression with a predefined functional interface, exemplified by runnable, to create and start threads, and compare lambda simplicity with traditional anonymous inner class.
Learn how a functional interface, containing exactly one abstract method, acts as the type for lambda expressions and how default and static methods influence it, with the @FunctionalInterface annotation.
Explore how lambda expressions integrate with Java collections, focusing on lists and sets. Learn to choose List for insertion order and duplicates, and Set for unique elements.
Learn how maps represent key-value pairs in Java collections, including hash maps and tree maps, using put operations, and why maps require unique keys over lists and sets.
Use the comparator interface to define your own sorting with its single abstract method compare. Leverage lambda expressions for functional interfaces to return negative, positive, or zero to determine order.
Sort an ArrayList using a comparator without lambda expressions, then explore lambda-based sorting, and implement a custom comparator to achieve descending order with Collections.sort and the compare method.
Discover how to sort an ArrayList with lambda expressions, replacing a separate comparator class, and apply descending order for efficient collection sorting using a functional interface.
Learn how to sort TreeSet elements in Java 8 using lambda expressions to implement a comparator for customized ordering, including default natural ascending order and descending order.
Use lambda expressions to define a custom comparator for a TreeMap, enabling descending key order. Sort the keys by default in ascending order.
Use lambda expressions to define customized sorting for your own class objects, like employees, sorting by number or name, and override toString for meaningful output.
Explore anonymous inner classes and lambda expressions in Java 8, learning when a lambda replaces an inner class implementing a functional interface, and how it reduces code length and complexity.
Compare anonymous inner classes and lambda expressions in Java 8, and learn when a lambda can replace an interface with a single abstract method.
Compare anonymous inner classes and lambda expressions, noting that lambdas target functional interfaces and outer this, while inner classes can extend concrete or abstract classes and hold inner instance variables.
Java 8 introduces differences between anonymous inner classes and lambda expressions; anonymous inner classes have names and can extend classes, while lambdas are unnamed functions implementing a single abstract method.
Explore default methods inside interfaces in Java 8, enabling concrete methods with the default keyword. Learn how to declare, access, and override these methods in implementing classes.
Examine how interface with default methods handles multiple inheritance, including ambiguity resolution via overriding or interfaceName.super.method, and compare it with abstract classes' state and constructors.
Java 8 introduces static methods inside interfaces to provide general utility methods accessible via the interface name; they are not available to implementing classes and cannot be overridden.
Explore Java 8's predefined functional interfaces in java.util.function, especially Predicate, a boolean-valued function with a test method for conditional checks, alongside Function, Consumer, and Supplier.
Explore the predefined functional interface predicate in Java 8 by converting a normal method to a lambda, using Predicate<Integer>, and testing numbers greater than ten.
Explore how to use Java 8 predicates to check string length greater than five and whether a collection is empty, via the test method.
Discover how to join predicates in Java 8 with the predefined functional interface Predicate, using negate, and, or to combine multiple conditions and perform boolean tests.
Learn to use Java 8 predicates to display names starting with k by applying a predicate<String>, using its test method, and printing matches with a for-each loop.
Learn to use a predicate in Java 8 to remove null values and empty strings from a string list, preventing null pointer exceptions.
Demonstrate Java 8 predicate for user authentication by evaluating a user object's username and password. Use a scanner to read input and compare against hardcoded values like Durga and Java.
Use a predicate to filter software engineer objects for pub entry by age and girlfriend status, shown with a lambda, a list, and a toString display.
Build a Java 8 predicate based employee management app. Create an employee class with name, designation, salary, and city, populate a list, and print readable output with toString.
Filter an employee list with predicates to identify managers and Bangalore employees. Display results using a generic display method that tests each employee.
Learn to write and join predicates for an employee management application: filter managers, Bangalore staff, and salaries below 20,000, then use and, or, and negate to display targeted results.
Learn the Java 8 predicate interface, its test method and isEqual static method, and use default and negate utilities to compare objects like employees and CEO status in real-time applications.
Explore predefined functional interfaces in Java 8, focusing on predicate and function, their test and apply methods, and how predicate is a boolean-valued special case of function.
Learn how to use function and predicate to remove spaces from a string, returning a space-free result with replace all, and count spaces via string length difference using lambdas.
Apply java 8 functional programming to compute student grades from marks using a function and predicate, printing names, marks, and grades like distinction, first class, third class, and fail.
Explore using a Java 8 Function to compute the total monthly salary of all employees from an ArrayList, with a lambda that sums salaries and returns a double.
Apply a predicate to select employees with salaries less than 3500, then use a function to increment their salaries by 477, and store updated records in a separate list.
master function chaining by combining two functions with then and compose, see how the order affects execution, and apply these ideas to uppercasing and substring extraction.
Explore how andThen versus compose work in Java 8 by chaining a double function and a cube function, showing 64 with andThen and 16 with compose.
Demonstrates a java 8 function chaining approach to user authentication by enforcing that the username's first five characters equal Durga (case-insensitive) and the password is java.
Explore the function interface identity static method that returns a function, always returning the same input, and enable function chaining through its default methods, including compose.
Explore the consumer functional interface in Java 8, contrast it with predicate and function, and learn how accept consumes a value without returning anything.
Demonstrate using a consumer to print movie information for each movie object in a list, including name, hero, and heroine, by calling consumer.accept on every element.
Explore how to use Java 8 features: predicate, function, and consumer to filter student records by marks, compute grades, and display results.
Demonstrate consumer chaining in Java 8 by chaining C1, C2, and C3 to accept a movie object, print status, and store results using the andThen default method.
Learn to use the supplier interface in Java 8, which returns a value via get() without input, and compare it with predicate, function, and consumer.
Define a date supplier that returns the current system date, using a no-argument lambda, and invoke get to print the date.
Leverage a supplier to generate a random name by selecting from a four-name string array, using Math.random and type casting to index the get method.
Implement a Java 8 supplier to generate a six-digit otp by appending six random digits using Math.random in a loop. Use supplier.get() to produce a random otp on each call.
Build a Java 8 supplier to generate an eight-character random password, placing digits at even positions and uppercase letters or symbols at odd positions using lambda expressions.
Discover Java 8 functional interfaces, including predicate, function, consumer, and supplier, and learn when to use their two-argument counterparts: bi predicate, bi function, and bi consumer.
Discover how BiFunction handles two input values to produce a result, using the apply method to compute operations like the product of two integers.
Learn how to create student objects using a BiFunction in Java 8, taking name and roll number as input arguments, applying the function to instantiate and collect students.
Discover BiConsumer in Java 8, a two-argument variant of Consumer that accepts two inputs, performs an operation, and returns void, illustrated by a two-string concatenation example.
Learn how to use BiFunction to create employee objects and BiConsumer to increment salaries in a list, then print each employee's name and updated salary, leveraging lambda expressions.
Compare one-argument and two-argument functional interfaces through predicates, functions, and consumers, highlighting abstract, default, and static methods. Note that suppliers do not take arguments and are excluded from the table.
Java 8 is one of the major and more prestigious version from Java. In this video tutorials we covered every topic in detail on the board and on the system with live execution. Definitely you can feel like you are learning in class room directly from the instructor. As the part of this course we are covering the following 11 topics.
1. Lambda Expressions
2. Functional Interfaces
3. Default methods in Interface
4. Static Methods in Interfaces.
5. Predicate
6. Function
7. Consumer
8. Supplier
9. Method Reference & Constructor Reference by Double Colon(::) Operator.
10. Stream API
11. Date & Time API ( Joda API)
After completing this video course, we are sure, you will be in a position to give left and right anywhere about these new features.