Java Interview Questions and Answers
What is synchronization and why is it
With respect to multithreading, synchronization is the capability to
control the access of multiple threads to shared resources. Without
synchronization, it is possible for one thread to modify a shared object
while another thread is in the process of using or updating that
object's value. This often causes dirty data and leads to significant
What are synchronized methods and synchronized statements?
Synchronized methods are methods that are used to control access to a
method or an object. A thread only executes a synchronized method after
it has acquired the lock for the method's object or class. Synchronized
statements are similar to synchronized methods. A synchronized statement
can only be executed after a thread has acquired the lock for the object
or class referenced in the synchronized statement.
What are three ways in which a thread can enter the waiting state?
A thread can enter the waiting state by invoking its sleep() method, by
blocking on IO, by unsuccessfully attempting to acquire an object's
lock, or by invoking an object's wait() method. It can also enter the
waiting state by invoking its (deprecated) suspend() method.
Can a lock be acquired on a class?
Yes, a lock can be acquired on a class. This lock is acquired on the
class's Class object.
What's new with the stop(), suspend() and resume() methods in JDK
The stop(), suspend() and resume() methods have been deprecated in JDK
What is the preferred size of a component?
The preferred size of a component is the minimum component size that
will allow the component to display normally.
What's the difference between J2SDK 1.5 and J2SDK 5.0?
There's no difference, Sun Microsystems just re-branded this version.
What would you use to compare two String variables - the operator ==
or the method equals()?
I'd use the method equals() to compare the values of the Strings and the
== to check if two variables point at the same instance of a String
What is thread?
A thread is an independent path of execution in a system.
What is multi-threading?
Multi-threading means various threads that run in a system.
How does multi-threading take place on a computer with a single CPU?
The operating system's task scheduler allocates execution time to
multiple tasks. By quickly switching between executing tasks, it creates
the impression that tasks execute sequentially.
How to create a thread in a program?
You have two ways to do so. First, making your class "extends" Thread
class. Second, making your class "implements" Runnable interface. Put
jobs in a run() method and call start() method to start the thread.
Can Java object be locked down for exclusive use by a given thread?
Yes. You can lock an object by putting it in a "synchronized" block. The
locked object is inaccessible to any thread other than the one that
explicitly claimed it.
Can each Java object keep track of all the threads that want to
exclusively access to it?
Yes. Use Thread.currentThread() method to track the accessing thread.
Does it matter in what order catch statements for
FileNotFoundException and IOExceptipon are written?
Yes, it does. The FileNoFoundException is inherited from the IOException.
Exception's subclasses have to be caught first.
What invokes a thread's run() method?
After a thread is started, via its start() method of the Thread class,
the JVM invokes the thread's run() method when the thread is initially
Page Numbers :