Learning Java8 Features And Implementation
SDK
Java 8 : https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
IDE
Intellij Idea Community Edition: https://www.jetbrains.com/idea/download/
Purpose of the repo is learn available methods and option in Java 8
- Imperative vs Declarative Style Example
- About lambda
- Lambda API : https://docs.oracle.com/javase/8/docs/api/java/util/function/package-summary.html
- Consumer
- BiConsumer
- Predicate
- BiPredicate
- Function
- Min
- Max
- BiFunction
- Supplier
- Stream API : https://docs.oracle.com/javase/8/docs/api/java/util/stream/package-summary.html
- Operation
- Map
- Flatmap
- Reduce
- Collect
- Filter
- Sort
- Min
- Max
- Limit
- Skip
- allMatch
- anyMatch
- noneMatch
- findAny
- findFirst
- Factory Methods
- of
- generate
- iterate
- Numeric Streams
- Class to handle primitive types
- IntStream
- LongStream
- DoubleStream
- range
- rangeClosed
- count
- foreach
- Aggregate Functions
- sum
- max
- min
- average
- Extra Class
- OptionalInt
- OptionalLong
- OptionalDouble
- Boxing & Unboxing
- boxed
- mapToInt
- mapToLong
- mapToDouble
- mapToObj
- Class to handle primitive types
- Terminal Operations
- joining
- counting
- mapping
- summingInt
- averagingInt
- summingLong
- averagingLong
- summingDouble
- averagingDouble
- maxBy
- minBy
- groupingBy
- partitioningBy
- Parallel Processing
- sequential vs parallel
- when not to use parallel stream
- boxed
- Operation
- Optional : https://docs.oracle.com/javase/8/docs/api/java/util/Optional.html
- isPresent
- get
- ofNullable
- empty
- orElse
- orElseGet
- orElseThrow
- ifPresent
- map
- flatMap
- filter
- Default & Static Method
- Interface
- Default Method (default)
- Static Method
- Multiple Inheritance
- Resolving Multiple Inheritance Issue
- Abstract vs Interface
- Interface
- Date & Time Libraries [Joda DateTime Insipiration] : https://docs.oracle.com/javase/8/docs/api/java/time/package-summary.html
-
LocalDate
- Creation
- now
- of
- ChronoField
- ChronoUnit
- TemporalAdjusters
- Accessing
- getMonth
- getMonthValue
- getYear
- getDayOfMonth
- getDayOfYear
- Modifying
- plusDays
- plusMonths
- plusYears
- minusDays
- minusMonths
- minusYears
- with
- Validation
- isEqual
- isBefore
- isAfter
- isSupported
- isLeapYear
- Creation
-
LocalTime
- All functionality same as LocalDate except date related
- Accessing
- getHour
- getMinute
- getNanoOfSecond
- toSecondOfDay -> represents time in seconds
- Modifying
- minusHours
-
LocalDateTime
- All functionality same as LocalDate and LocalTime
-
Period -> Only compatible with LocalDate & LocalDateTime
-
Duration -> Only compatible with LocalTime & LocalDateTime
-
Instant
- now
- getEpochSeconds
- ofEpochSeconds
-
ZonedDateTime
-
ZoneId
-
ZoneOffset
-
Clock
-
DateTimeFormatter
-
Java 8
Udemy: https://www.udemy.com/
Tutorial Link:https://www.udemy.com/modern-java-learn-java-8-features-by-coding-it/learn/v4/overview
JDK 8: https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html