1. What is the difference between JDK, JVM and JRE?
  2. What are Oops concepts? Explain each in brief.
  3. What is the difference between abstraction and encapsulation?
  4. How do we achieve abstraction and encapsulation in our programming?
  5. What are different types of polymorphism? Explain each of them.
  6. What is the difference between overriding and overloading?
  7. Can one among two overloaded classes throw exceptions and the second won’t? If yes Can we say that as overloading?.
  8. Rules of function overriding?
  9. Can we have different\reduced access modifiers for overloaded methods?
  10. Difference between Static and Dynamic binding in Java?
  11. Can we have super and this?
  12. What is structure of String class? it extends which class?
  13. What is the difference between java-6 and java-8?
  14. What are the different methods present in Object class?
  15. What is meant by the static keyword?
  16. Can we override static functions? If yes then how if no then why not?
  17. What is the difference between interface and abstract class? If abstract class provides the same functionality as interface (means in abstract class contains abstract methods as interface) so why do we need interfaces?
  18. Can we have a static/final interface? If not then why?
  19. What is the marker interface? Example?
  20. What will happen if we extend an abstract class and not implement an abstract method in it? Is there any way by which we can use abstract class by not overriding its methods?
  21. What is Serialization? How do we achieve Serialization in Java?