Java coding interview questions and answers for Freshers
1. Explain the super keyword in Java and its use in constructor chaining?
Answer: super is used to call a superclass's constructor or access superclass members. It's commonly used in constructor chaining to call the superclass constructor from a subclass constructor.
2. What is the purpose of the synchronized keyword in Java, and how does it work?
Answer: synchronized is used to create synchronized blocks or methods to provide thread-safety by allowing only one thread to access a synchronized block at a time.
3. What is the purpose of ‘this’ keyword in Java, and how is it used?
Answer: The ‘this’ keyword refers to the current instance of a class and is often used to distinguish between instance variables and method parameters with the same name.
4. What are inner classes in Java, and why are they used?
Answer: Inner classes are classes defined within another class. They are used for encapsulation, organization, and accessing outer class members, often in a more readable and concise way.
5. What is method overloading, and how is it different from method overriding in Java?
Answer: Method overloading is the process of defining multiple methods with the same name in a class, differing by the number or type of parameters. It's resolved at compile-time. Method overriding is the process of providing a specific implementation of a superclass's method in a subclass, resolved at runtime.
6. What is a Java Servlet, and how does it differ from a JSP (JavaServer Pages)?
Answer: A Java Servlet is a Java class used to handle HTTP requests and generate dynamic web content. JSP is a technology used for creating web pages with embedded Java code. Servlets are more suited for handling logic, while JSP is used for rendering HTML.
7. What is the purpose of the Enum type in Java, and how is it different from regular classes?
Answer: Enum types are used to define a fixed set of constants. They are implicitly final, cannot be extended, and are often used for representing things like days of the week or status codes.
8. How does Java handle exceptions in a multi-threaded environment?
Answer: Each thread has its own call stack and exception handlers. If an exception is not caught within a thread, it propagates up the call stack of that thread only.
9. Explain the concept of the ‘diamond problem’ in the context of multiple inheritance in Java?
Answer: The diamond problem occurs when a class inherits from two classes that have a common ancestor. It can lead to ambiguity in method calls, and Java solves this by requiring explicit method override or the use of default methods in interfaces.
10. What is the difference between ClassLoader.loadClass() and Class.forName() methods in Java for loading classes?
Answer: ClassLoader.loadClass() loads a class but doesn't initialize it, while Class.forName() loads and initializes a class. Class.forName() is also used for dynamically loading classes based on a string name.
11. Explain the concept of object serialization in Java?
Answer: Object serialization is the process of converting an object's state into a byte stream for storage or transmission. It allows objects to be saved to files or sent over the network.
12. Explain the principles of immutability and how they relate to Java's final keyword?
Answer: Immutability refers to the inability of an object to change its state after creation. The final keyword can be applied to classes, methods, or fields to indicate that they cannot be modified.
13. What is the Comparator interface in Java, and how is it used for custom sorting of objects?
Answer: Comparator is used for custom sorting of objects. It defines methods to compare objects based on specific criteria, allowing you to sort objects in a way that's different from their natural ordering.
14. Explain the difference between the equals() method and the == operator in Java for comparing objects?
Answer: The equals() method is used to compare the content or values of objects, while == compares object references, checking if they refer to the same memory location.
15. What is the purpose of the @Override annotation in Java, and when should it be used?
Answer: @Override is used to indicate that a method in a subclass is intended to override a method in the superclass. It helps catch errors at compile-time if there's a mismatch in method signatures.
16. Explain the concept of inner and anonymous classes in Java?
Answer: Inner classes are classes defined within other classes, while anonymous classes are inner classes without a specified name. Anonymous classes are often used for one-time usage.
17. What is the Java Module System introduced in Java 9, and how does it help with modularity?
Answer: The Java Module System allows you to create modular applications by encapsulating code into distinct modules, improving code organization and reducing dependencies.
18. How does Java support primitive data types and their corresponding wrapper classes?
Answer: Java provides wrapper classes (e.g., Integer, Double) for primitive data types (e.g., int, double) to allow them to be used as objects and provide additional methods and functionality.
19. What is the purpose of the 'Class' class in Java, and how can it be used to inspect class metadata at runtime?
Answer: The Class class represents class metadata at runtime and can be used to inspect class information, such as methods, fields, and annotations.
20. Explain the concept of dynamic method dispatch and its role in method overriding in Java?
Answer: Dynamic method dispatch allows the JVM to determine the appropriate method to call at runtime when a method is overridden in a subclass. It enables polymorphic behavior.
Comments
Post a Comment