An interface is a collection of abstract methods that a class must implement, while an abstract class can have both abstract and concrete methods and can also provide an implementation for some of the methods.
Can a constructor be private?
Yes, a constructor can be private. This is known as a "private constructor" and is typically used in the Singleton pattern to ensure that only one instance of a class can be created.
What is the difference between a static and non-static inner class?
A static inner class is a nested class that has the static modifier, while a non-static inner class (also known as an inner class or nested class) does not have the static modifier. A static inner class can access only static members of the outer class, while a non-static inner class can access both static and non-static members of the outer class.
What is the difference between a for-each loop and an iterator?
A for-each loop is used to iterate over the elements of a collection or array in a simplified way, while an iterator is an object that allows you to traverse through the elements of a collection or list. Iterators provide more flexibility than for-each loops, as they allow you to remove elements from the collection during the iteration.
What is the difference between a String and a StringBuilder in Java?
A String is an immutable object, which means that its value cannot be changed once it is created, while a StringBuilder is a mutable object, which allows you to modify its value by appending, deleting, or replacing characters.
Can you explain the difference between a shallow copy and a deep copy?
A shallow copy is a copy of an object that creates a new object with the same properties, but the properties themselves (i.e the objects they reference) are not copied. A deep copy, on the other hand, creates a new object and also creates new objects for all the properties of the original object, so that the original object and its copy do not share any properties.
What is the difference between equals() and == in Java?
The == operator compares the memory address of two objects to see if they are the same, while the equals() method compares the values of the objects to see if they are equal.
Can you explain the difference between a HashMap and a Hashtable in Java?
A HashMap is an unsynchronized version of a Hashtable, which means that it is not thread-safe. A Hashtable is an older version of a HashMap that is thread-safe, but it is less efficient.
What is the difference between a final variable and a constant variable in Java?
A final variable is a variable that once assigned a value, its value cannot be changed. A constant variable is a variable that is declared as static and final together, its value also cannot be changed and It can be accessed by its class name.
What is the difference between a checked exception and an unchecked exception in Java?
Checked exceptions are exceptions that are checked by the compiler at compile-time. They are typically used for exceptional conditions that a well-written application should anticipate and recover from. Unchecked exceptions, on the other hand, are exceptions that are not checked by the compiler at compile-time. They are typically used for exceptional conditions that are internal to the application and that the application cannot reasonably recover from.
Explain the difference between a while loop and a do-while loop in Java?
A while loop checks the condition before executing the loop, while a do-while loop checks the condition after executing the loop. This means that a do-while loop will always execute at least once, regardless of the condition.
What is the difference between a break statement and a continue statement in Java?
A break statement is used to exit a loop or a switch statement, while a continue statement is used to skip over one iteration of a loop and continue with the next iteration.
What is the difference between an Array and an ArrayList in Java?
An array is a fixed-size data structure that stores a collection of elements of the same type, while an ArrayList is a dynamic data structure that also stores a collection of elements of the same type, but its size can be changed.
Explain the difference between a Comparable and a Comparator interface in Java?
The Comparable interface is used to define the natural ordering of objects, while the Comparator interface is used to define custom ordering of objects.
What is the difference between a transient variable and a volatile variable in Java?
A transient variable is a variable that is not serialized when an object is persisted, while a volatile variable is a variable whose value is guaranteed to be up-to-date across all threads in a program
What is the difference between a finally block and a finalize() method in Java?
A finally block is used to ensure that a specific block of code is executed after a try-catch block, regardless of whether an exception is thrown or not. while the finalize() method is a method defined in the Object class and is called by the garbage collector before an object is collected, it is intended to give an opportunity for an object to clean up any resources it may hold before being discarded by the garbage collector.
Can you explain the difference between a constructor and a static block in Java?
A constructor is a method that is used to initialize an object when it is created, while a static block is a block of code that is executed when a class is loaded. A static block is typically used to initialize static variables, while constructors are used to initialize non-static variables.
What is the difference between a singleton class and a static class in Java?
A singleton class is a class that allows only one instance of itself to be created and provides a global access point to that instance, while a static class is a class that cannot be instantiated and all its methods and variables are static.
What is the difference between a final method and a synchronized method in Java?
A final method is a method that cannot be overridden by a subclass, while a synchronized method is a method that can be accessed by only one thread at a time.
Can you explain the difference between a String and a StringBuffer in Java?
A String is an immutable object, meaning its value cannot be modified once it is created, while a StringBuffer is a mutable object, which allows you to modify its value by appending, deleting, or replacing characters. StringBuffer is thread-safe but it could be slower than StringBuilder.
What is the difference between a static method and a non-static method in Java?
A static method is a method that belongs to the class and can be called directly without creating an instance of the class, while a non-static method is a method that belongs to an instance of a class and must be called on an instance of the class.
Can you explain the difference between a HashSet and a TreeSet in Java?
A HashSet is an unordered collection that uses a hash table for storage and does not guarantee any specific order of the elements, while a TreeSet is an ordered collection that uses a tree structure for storage and guarantees that the elements are ordered in ascending order.
What is the difference between a try-catch block and a try-catch-finally block in Java?
A try-catch block is used to handle exceptions that may be thrown in a specific block of code, while a try-catch-finally block is used to handle exceptions and also to specify code that must be executed regardless of whether an exception is thrown or not.
Can you explain the difference between a public and a private method in Java?
A public method is a method that can be accessed by any class, while a private method is a method that can only be accessed within the same class.
What is the difference between a Thread and a Runnable in Java?
A Thread is a class that extends the Object class and implements the Runnable interface, while a Runnable is an interface that is implemented by a class to make it runnable by a thread. A class can implement the Runnable interface and pass an instance of itself to a Thread's constructor.
What is the difference between an abstract class and a concrete class in Java?
An abstract class is a class that cannot be instantiated and it typically contains one or more abstract methods that must be implemented by its subclasses, while a concrete class is a class that can be instantiated and it contains only concrete methods.
What is the difference between a static variable and a non-static variable in Java?
A static variable is a variable that belongs to the class and can be accessed directly without creating an instance of the class, while a non-static variable is a variable that belongs to an instance of a class and must be accessed on an instance of the class.
Can you explain the difference between a HashMap and a LinkedHashMap in Java?
A HashMap is an unordered collection that uses a hash table for storage and does not guarantee any specific order of the elements, while a LinkedHashMap is an ordered collection that uses a doubly-linked list for storage and guarantees that the elements are ordered in the order in which they were inserted.
What is the difference between a try-with-resources statement and a finally block in Java?
A try-with-resources statement is used to automatically close resources that are opened in a try block, while a finally block is used to execute code after a try-catch block, regardless of whether an exception is thrown or not.
What is the difference between an Iterator and a ListIterator in Java?
An Iterator is an object that allows you to traverse through the elements of a collection or list, while a ListIterator is a specialized Iterator that allows you to traverse through a list in both forward and backward directions and also allows you to add, remove, and modify elements in the list.
Can you explain the difference between a switch statement and an if-else statement in Java?
A switch statement is used to execute a specific block of code based on the value of an expression, while an if-else statement is used to test a condition and execute a specific block of code if the condition is true, and another block of code if the condition is false.
What is the difference between a final field and a constant field in Java?
A final field is a field that once assigned a value, its value cannot be changed, while a constant field is a field that is declared as static and final together, its value also cannot be changed and it can be accessed by its class name.
What is the difference between a constructor and a factory method in Java?
A constructor is a method used to initialize an object when it is created, while a factory method is a method used to create and return an instance of a class.
What is the difference between a public and a protected method in Java?
A public method is a method that can be accessed by any class, while a protected method is a method that can be accessed by any class in the same package or by subclasses in other packages.
Can you explain the difference between a final class and a sealed class in Java?
A final class is a class that cannot be subclassed, while a sealed class is a class that can only be subclassed by a specific set of classes. Java doesn't support Sealed class, it's a feature of C#
Can you explain the difference between a synchronized block and a volatile variable in Java?
A synchronized block is used to ensure that only one thread can execute a specific block of code at a time, while a volatile variable is a variable whose value is guaranteed to be up-to-date across all threads in a program. A synchronized block can be used to ensure that the value of a variable is consistent across threads, while a volatile variable can be used to ensure that a variable's value is always up-to-date across threads without the need for explicit synchronization.
What is the difference between a break statement and a return statement in Java?
A break statement is used to exit a loop or a switch statement, while a return statement is used to exit a method and return a value.
Can you explain the difference between a public and a package-private class in Java?
A public class is a class that can be accessed by any class, while a package-private class is a class that can only be accessed by classes in the same package.
What is the difference between a final parameter and a constant parameter in Java?
A final parameter is a parameter that is marked as final and its value cannot be changed once passed to the method, while a constant parameter is a parameter that is declared as final and static together, its value also cannot be changed and it can be accessed by its class name.
Can you explain the difference between a transient variable and a static variable in Java?
A transient variable is a variable that is not serialized when an object is persisted, while a static variable is a variable that belongs to a class and not to an instance of a class, it can be accessed by its class name and its value is shared among all instances of the class.
0 Comments