WalzoneInterview Prep
📞 Interviewing soon? Practice with a realistic AI mock phone interview — it calls you, then scores you. First 15 min FREE →

Core Java · Advanced · question 59 of 100

What is a synchronized block in Java? How is it different from a synchronized method?

📕 Buy this interview preparation book: 100 Core Java questions & answers — PDF + EPUB for $5

In Java, synchronized is a keyword used to provide mutual exclusion and ensure that only one thread can access a critical section of code at a time. This helps prevent race conditions and other concurrency-related issues.

There are two ways to use synchronized in Java: as a block or as a method modifier. A synchronized block is used to synchronize access to a specific block of code. A synchronized method is used to synchronize access to an entire method.

Here’s an example of a synchronized block:

class Example {
    private Object lock = new Object();
    private int count = 0;

    public void increment() {
        synchronized (lock) {
            count++;
        }
    }
}

In this example, the increment() method is synchronized using a synchronized block. The critical section of code is the count++ statement. By synchronizing on the lock object, we ensure that only one thread can access this critical section at a time.

Here’s an example of a synchronized method:


class Example {
    private int count = 0;

    public synchronized void increment() {
        count++;
    }
}

In this example, the increment() method is synchronized using the synchronized keyword as a method modifier. This means that the entire method is synchronized, and only one thread can execute it at a time.

The main difference between a synchronized block and a synchronized method is the scope of synchronization. With a synchronized block, you can synchronize access to a specific block of code, while with a synchronized method, you synchronize access to the entire method. Additionally, a synchronized block allows you to synchronize on any object, while a synchronized method always synchronizes on the object instance itself.

It’s generally recommended to use synchronized blocks instead of synchronized methods, as this provides finer-grained control over synchronization and can help improve performance. However, there are cases where using a synchronized method may be more convenient or appropriate.

Reading is step one. Saying it out loud is the interview. Our AI interviewer calls your phone and runs a realistic Core Java interview — then scores it.
📞 Practice Core Java — free 15 min
📕 Buy this interview preparation book: 100 Core Java questions & answers — PDF + EPUB for $5

All 100 Core Java questions · All topics