Skip to main content

Java Version and New Features 8 - 13

  • Introduction
    • Introduction

      Java is widely used staticly typed programming language which is founded over 25 years back. It's almost everywhere from home appliances, mobile devices to industry scale systems. Java is evolving over the time and from Java 8 onwards there were major changes introduced to the language. Below are the list of all the changes on each version.

    • Imperative vs Declarative Programming

      Imperative approach is defining step by step on HOW we are going to achieve the end result. Declarative approach is describing WHAT we want as the output. Simple example would be a classical for loop in Java which we can call as imperative programming and a select query in sql as declarative programming. Still didn't get it? Following examples will help you to understand more

      Imperative Style in Java

      int sum = 0;
      for(int i=0; i<5; i++){
      sum +=i;
      System.out.print("sum is: "+sum);
      }

      Declarative Style in Java

      int sum = IntStream.of(1,2,3,4,5).sum();

      Declarative Style in SQL

      select * from table1 where a=1;



      Now you get the idea!
    • Course Breakdown[TO BE UPDATED]
    • Windows/Mac - Java Install[TO BE UPDATED]
    • Intelij Install[TO BE UPDATED]
    • Configurations[TO BE UPDATED]
    • Git repo link[TO BE UPDATED]
    • Dev Env Setup[TO BE UPDATED]
  • Java 8 Features
    • Lambda Expressions
      • What is Lambda?

        A lambda expression is an anonymous function. It's a function without a name and does not belong to any class

        Lambda vs java method

        method in Java has three main parts
        -Name
        -Parameter List
        -Body
        -return type

        lambda expression in Java has three main parts
        -No name (since lambda is anonymous function)
        -Parameter List
        -Body
        -No return type (no return type required)

      • Lambda Expressions[TO BE UPDATED]
      • Runnable Example with Lambda[TO BE UPDATED]
      • Callable Example with Lambda[TO BE UPDATED]
    • Functional Interfaces and Lambdas
      • Functional Interfaces[TO BE UPDATED]
      • Consumer Functional Interfaces[TO BE UPDATED]
      • IntConsumer, LongConsumer, DoubleConsumer[TO BE UPDATED]
      • BiConsumer Functional Interface[TO BE UPDATED]
      • Predicate Functional Interface[TO BE UPDATED]
      • IntPredicate, LongPredicate, DoublePredicate[TO BE UPDATED]
      • Predicate & BiConsumer[TO BE UPDATED]
      • Function[TO BE UPDATED]
      • BiFunction[TO BE UPDATED]
      • Unary Operator[TO BE UPDATED]
      • Binary Operator[TO BE UPDATED]
      • Supplier[TO BE UPDATED]
      • Method Reference[TO BE UPDATED]
      • Constructor Reference[TO BE UPDATED]
    • Lambda Variable Scope
      • Variable scope, Final & Effectively Final[TO BE UPDATED]
    • Realworld Example Using Lambda
      • Bank Transfer Example[TO BE UPDATED]
    • Streams
      • Introduction[TO BE UPDATED]
      • Inside Streams[TO BE UPDATED]
      • Collections vs Streams[TO BE UPDATED]
      • Debugging Stream[TO BE UPDATED]
    • Stream Operations
      • map()[TO BE UPDATED]
      • flatMap()[TO BE UPDATED]
      • distinct(), count(), sorted(), allMatch(), anyMatch(), nonMatch()[TO BE UPDATED]
      • Customized sort using comparator[TO BE UPDATED]
      • filter()[TO BE UPDATED]
      • reduce()[TO BE UPDATED]
      • map() + filter() + reduce()[TO BE UPDATED]
      • min() with stream and reduce[TO BE UPDATED]
      • limit() and skip()[TO BE UPDATED]
      • findAny() and findfirst()[TO BE UPDATED]
    • Stream Generators
      • Generating Stream with of(), iterate(), generate()[TO BE UPDATED]
    • Numeric Streams
      • Introduction[TO BE UPDATED]
      • IntStream, LongStream, DoubleStream[TO BE UPDATED]
      • sum(), max(), min(), average()[TO BE UPDATED]
      • Boxing, Unboxing[TO BE UPDATED]
      • mapToObj(), mapToLong(), mapToDouble()[TO BE UPDATED]
    • Collectors Operations
      • joining()[TO BE UPDATED]
      • counting()[TO BE UPDATED]
      • mapping()[TO BE UPDATED]
      • minBy(), maxBy()[TO BE UPDATED]
      • summingint(), averageint()[TO BE UPDATED]
      • groupingBy[TO BE UPDATED]
      • maxBy(), minBy(), collectingAndThen(), summarizingint()[TO BE UPDATED]
      • partitioningBy()[TO BE UPDATED]
    • Parallel Streams
      • Introduction[TO BE UPDATED]
      • Sequential vs Parallel[TO BE UPDATED]
    • Optional
      • Introduction[TO BE UPDATED]
      • empty(), ofNullable(), of()[TO BE UPDATED]
      • orElse(), orElseGet(), orElseThrow()[TO BE UPDATED]
      • ifPresent(), isPresent()[TO BE UPDATED]
    • Default & State Methods of Interfaces
      • Introduction[TO BE UPDATED]
      • Default Methods[TO BE UPDATED]
      • Creating an Interface with Default/Static Methods[TO BE UPDATED]
      • Multiple Inheritance[TO BE UPDATED]
      • Conflicts in Multiple Inheritance[TO BE UPDATED]
    • New DateTime API
      • Introduction[TO BE UPDATED]
      • LocalDate - get and create[TO BE UPDATED]
      • LocalDate - modify[TO BE UPDATED]
      • LocalTime - get and create[TO BE UPDATED]
      • LocalTime - modify[TO BE UPDATED]
      • LocalDateTime - get, create and modify[TO BE UPDATED]
      • LocalDate and LocalTime from LocalDateTime[TO BE UPDATED]
      • Duration[TO BE UPDATED]
      • Instant[TO BE UPDATED]
      • TimeZones - ZonedDateTime, ZonedId[TO BE UPDATED]
      • LocalDateTime to ZonedDateTime[TO BE UPDATED]
      • Convert java.util.date & java.sql.date to LocalDateTime/LocalDate[TO BE UPDATED]
  • Java 9 Features
    • Java Shell(REPL)
      • Introduction[TO BE UPDATED]
      • Java Environment Variable Setup[TO BE UPDATED]
      • Getting Started with JShell[TO BE UPDATED]
      • Snippet, List and Drop[TO BE UPDATED]
      • JShell Shortcuts[TO BE UPDATED]
      • Creating Classes[TO BE UPDATED]
      • InteliJ ID Shell[TO BE UPDATED]
    • Module System
      • Introduction[TO BE UPDATED]
      • Example[TO BE UPDATED]
      • Creating Module[TO BE UPDATED]
      • Modular Application and Maven[TO BE UPDATED]
    • Factory Methods for Collection
      • Collections Factory Methods[TO BE UPDATED]
    • Try-with-resources
      • Try-with-resources[TO BE UPDATED]
  • Java 10 Features
    • Type Interferences with var
      • var type with Examples[TO BE UPDATED]
    • GCI Improvements
      • GC first algorithm Improvements[TO BE UPDATED]
  • Java 11 Features
    • var with Lambda
      • Adding var to Lambda[TO BE UPDATED]
    • Epsilon GC
      • Epsilon GC[TO BE UPDATED]
    • New HttpClient
      • HttpClient API[TO BE UPDATED]
  • Java 12 Features
    • Switch Expression
      • Switch Expression intro with Example[TO BE UPDATED]
      • Switch Expression with action in cases[TO BE UPDATED]
  • Java 13 Features
    • Switch Expression Enhancements
      • Switch Expression with Yield[TO BE UPDATED]
    • TextBlocks
      • Multiline TextBlocks[TO BE UPDATED]

Popular posts from this blog

Autofill Dynamic Dropdowns Using Spring Jquery Ajax

This explains on how to populate values in a drop down based on a value selected on another drop down. But you can configure it load values dynamically when click on link or any other action performed (based on your requirment) Include JSTL tag library in your JSP Page 1 <%@ taglib uri = "http://java.sun.com/jsp/jstl/core" prefix = "c" %> Use JSTL to call the required URL path through Spring bindings 1 < c : url var = "findProductForCat" value = "/products_ajax.do" /> HTML and EL code to enter in JSP page. 1 2 3 4 5 6 7 8 9 10 <select class= "select-width" id= "category_list_d" > <option value= "" > Select Category </option> <c:forEach var= "catList" items= "${category_lst}" > <option value= "${catList.categoryId}" > ${catList.categoryName } </option> </c:forEach> ...

Java 5

Java 5 is known as the “ Tiger ” release since it released many of the key features many of the developers used today. Many interview questions are based on this version. Following are the key features introduced in Java 5 Generics Annotations Autoboxing / Unboxing Typesafe Enums Varargs Foreach Loop Static Imports Scanner Class Assertions StringBuilder