1. What is the difference between JDK 8 and JDK 11?
2. What is a functional interface in Java?
3. How are lambda expressions used in Java?
4. What is method reference in Java?
5. What is the difference between Predicate, Function, and Consumer functional interfaces?
6. What is a stream in Java?
7. How are streams different from collections in Java?
8. What are the types of streams in Java?
9. How can you use filter(), map(), and reduce() in Java streams?
10. What is the significance of the Optional class in Java?
11. How do you handle null values using Optional?
12. What are the key features of the Stream API?
13. What is parallel stream in Java?
14. What are the best practices for using parallel streams?
15. What is the difference between forEach() and forEachOrdered() in streams?
16. What are collectors in Java Streams?
17. What is method chaining in Java?
18. What is lazy evaluation in streams?
19. What is short-circuiting in streams?
20. What is the difference between findFirst() and findAny() in streams?
21. What are the benefits of immutability in Java?
22. How do you create an immutable class in Java?
23. What is the difference between shallow copy and deep copy in Java?
24. What is serialization in Java?
25. What is the serialVersionUID in Java?
26. What is transient keyword in serialization?
27. How do you customize serialization in Java?
28. What is externalization in Java?
29. What are the differences between serialization and externalization?
30. How does object cloning work in Java?
31. What is marker interface in Java?
32. What is the clone() method in Java?
33. What is the difference between cloneable and serializable in Java?
34. What is reflection in Java and what are its use cases?
35. What are the performance impacts of reflection in Java?
36. How can you create a class dynamically at runtime using reflection?
37. What is dynamic proxy in Java?
38. What is method overloading with variable arguments?
39. What is covariant return type in Java?
40. What are the differences between overloading and overriding in Java?