JAVA 8 Features List:
- Virtual Extension Methods: Interface Default Methods
- Virtual Extension Methods: Interface Static Methods
- "Class Wins" Rule
- Functional Interface, @FunctionalInterface
- Enhanced Type Inference
- Lambda Expressions
- Functional Interfaces - Function,Consumer,Supplier,Predicate etc
- Method References
- Constructor References
- Stream API
- Stream Primitive Specilizations
- Date & Time API
- Collectors
- StringJoiner
- Collections API Enhancements
- Concurrency Utils Enhancements
- java.util.concurrent.atomic Enhancements
- Collections Bulk Data Operations
- StampedLock
- Fork/Join Framework Enhancements
- Internal Iteration
- Parallel Array Operations
- Parallel Collection Operations
- Parallel Stream Operations
- Arrays Spliterators
- Collections Spliterators
- Streams Spliterators
- Optional
- Type Annotations
- Method Parameter Reflection
- Repeating Annotations
- Base64 Encoding and Decoding
- IO and NIO2 Enhancements
- Nashorn JavaScript Engine
- javac Enhancements
- JVM Changes
- Java 8 Compact Profiles: compact1,compact2,compact3
- JDBC 4.2
- JAXP 1.6
- Java DB 10.10
- Networking
- Java Security Changes
Now we'll discuss each topic in detail.
Optional:
- Optional is a final Class in java.util package
- It is an alternative to "null" value
- It is used to avoid "NullPointerException"
Example-1:
package com.way2it.java8.optional;
import java.util.Optional;
public class OptionalTest {
public static void main(String[] args) {
Optional<String> optional = Optional.of("Rams");
System.out.println("optional.isPresent() : " + optional.isPresent());
System.out.println("optional.get() : " + optional.get());
System.out.println("optional.orElse(\"Posa\") : " + optional.orElse("Posa"));
optional.ifPresent((s) -> System.out.println(s.charAt(0)));
}
}
Output:
optional.isPresent() : true
optional.get() : Rams
optional.orElse("Posa") : Rams
R
Example-2:-
package com.way2it.java8.optional;
import java.util.Optional;
public class OptionalTest2 {
public static void main(String[] args) {
Optional<String> optional = Optional.empty();
System.out.println(optional);
System.out.println(optional.isPresent());
Optional<String> optional2 = Optional.ofNullable(null);
System.out.println(optional2);
System.out.println(optional2.isPresent());
String value = "Rams";
Optional<String> optional3 = Optional.ofNullable(value);
System.out.println(optional3);
System.out.println(optional3.isPresent());
}
}
Output:
Optional.empty
false
Optional.empty
false
Optional[Rams]
true
Example-2:-
package com.way2it.java8.optional;
import java.util.Optional;
public class OptionalTest2 {
public static void main(String[] args) {
Optional<String> optional = Optional.empty();
System.out.println(optional);
System.out.println(optional.isPresent());
Optional<String> optional2 = Optional.ofNullable(null);
System.out.println(optional2);
System.out.println(optional2.isPresent());
String value = "Rams";
Optional<String> optional3 = Optional.ofNullable(value);
System.out.println(optional3);
System.out.println(optional3.isPresent());
}
}
Output:
Optional.empty
false
Optional.empty
false
Optional[Rams]
true
Good blog rams...
ReplyDelete