Java and Advanced Java interview questions:
What is Java and why is it popular?
Java is a programming language developed by Sun Microsystems. It is popular due to its platform independence, object-oriented nature, and rich set of libraries and frameworks.
What is the difference between abstract class and interface in Java?
An abstract class is a class that cannot be instantiated and can have both abstract and non-abstract methods. An interface is a contract that specifies a set of methods that a class must implement. In Java, a class can implement multiple interfaces, but can only extend one abstract class.
What is polymorphism in Java?
Polymorphism in Java is the ability of an object to take on many forms. It allows objects of different classes to be treated as if they were of the same class, as long as they implement the same methods or interface.
What is the difference between ArrayList and LinkedList in Java?
An ArrayList in Java is a resizable array implementation of the List interface, whereas a LinkedList is a doubly linked list implementation of the List interface. ArrayList is more efficient for accessing elements randomly, while LinkedList is more efficient for adding or removing elements frequently.
What is the difference between serialization and deserialization in Java?
Serialization is the process of converting an object into a stream of bytes, while deserialization is the process of converting a stream of bytes back into an object.
What is the difference between checked and unchecked exceptions in Java?
Checked exceptions are exceptions that must be handled by the programmer, either by using a try-catch block or by throwing the exception. Unchecked exceptions are exceptions that do not need to be handled explicitly by the programmer, such as NullPointerException or ArrayIndexOutOfBoundsException.
What is the difference between final, finally, and finalize in Java?
Final is a keyword used to declare a variable or method that cannot be changed or overridden. Finally is a block of code used to execute code regardless of whether an exception is thrown or not. Finalize is a method called by the garbage collector to release system resources when an object is no longer needed.
What is reflection in Java?
Reflection in Java is the ability of a program to inspect and modify its own structure and behavior at runtime. It allows programs to examine and access internal properties of objects, classes, and methods.
What is the purpose of a synchronized block in Java?
A synchronized block in Java is used to control access to a shared resource in a multithreaded environment. It ensures that only one thread can execute a block of code at a time, thus preventing conflicts and race conditions.
What is the purpose of the Java Virtual Machine (JVM)?
The Java Virtual Machine (JVM) is a runtime environment that executes Java bytecode. It provides a platform-independent abstraction layer between the Java program and the underlying operating system and hardware.