Home Subjects Java Programming

Java Programming

Java OOP, collections, multithreading

476 Q 10 Topics Take Test
Advertisement
Difficulty: All Easy Medium Hard 281–290 of 476
Topics in Java Programming
Q.281 Medium Exception Handling
What is the output of the following code?
int x = 10;
try {
x = x / 0;
} catch(ArithmeticException e) {
x = x + 5;
} finally {
x = x * 2;
}
System.out.println(x);
A 10
B 30
C 20
D 40
Correct Answer:  B. 30
EXPLANATION

ArithmeticException is caught, x becomes 10+5=15. Finally block executes, x becomes 15*2=30. Finally block always executes regardless of exception.

Take Test
Q.282 Medium Multithreading
A multi-threaded application experiences poor performance despite having adequate CPU cores. Code inspection reveals frequent calls to synchronized blocks on shared objects. Which modern Java feature (2024-25) could optimize this without major refactoring?
A Virtual Threads with appropriate lock strategies
B Increasing thread pool size
C Using volatile keyword everywhere
D Converting all methods to static
Correct Answer:  A. Virtual Threads with appropriate lock strategies
EXPLANATION

Virtual Threads (Project Loom, stable in Java 21+) allow massive parallelism with lightweight threads, reducing contention overhead. They enable better scaling than increasing pool size. volatile doesn't help with synchronized block contention, and static conversion is inappropriate.

Take Test
Q.283 Medium Multithreading
In a producer-consumer scenario using BlockingQueue, what happens when a consumer thread calls take() on an empty queue?
A It throws NoSuchElementException immediately
B It blocks until a producer adds an element
C It returns null
D It spins in a busy-wait loop
Correct Answer:  B. It blocks until a producer adds an element
EXPLANATION

BlockingQueue's take() method blocks the calling thread until an element becomes available. This is safer and more efficient than busy-waiting. NoSuchElementException is thrown by non-blocking operations like remove().

Take Test
Q.284 Medium Multithreading
What exception does CyclicBarrier throw when a thread is interrupted while waiting?
A InterruptedException
B BrokenBarrierException
C CyclicBarrierException
D ThreadInterruptedException
Correct Answer:  A. InterruptedException
EXPLANATION

When a thread waiting at a CyclicBarrier is interrupted, it throws InterruptedException. This breaks the barrier and causes other waiting threads to receive BrokenBarrierException.

Take Test
Q.285 Medium Multithreading
What is the output of this code snippet?
ExecutorService es = Executors.newFixedThreadPool(2);
es.execute(() -> System.out.println("Task 1"));
es.shutdown();
A Task 1 will be executed before the program terminates
B Task 1 may or may not be executed
C Compilation error
D Task 1 will never execute
Correct Answer:  A. Task 1 will be executed before the program terminates
EXPLANATION

shutdown() gracefully shuts down the executor service by rejecting new tasks but allowing submitted tasks to complete. Task 1 is already submitted before shutdown(), so it will execute.

Take Test
Q.286 Medium Multithreading
In Java 21, which new feature was introduced for concurrent programming?
A Virtual Threads (Project Loom)
B ReentrantLock
C CountDownLatch
D Phaser
Correct Answer:  A. Virtual Threads (Project Loom)
EXPLANATION

Java 21 introduced Virtual Threads as part of Project Loom, which are lightweight threads that make it easier to write scalable concurrent applications.

Take Test
Q.287 Medium Multithreading
What does the volatile keyword guarantee in multithreading?
A Prevents thread access completely
B Visibility of changes across threads and prevents instruction reordering
C Makes operations atomic
D Automatically synchronizes all methods
Correct Answer:  B. Visibility of changes across threads and prevents instruction reordering
EXPLANATION

volatile ensures that changes to a variable are immediately visible to all threads and prevents the JVM from reordering instructions. However, it doesn't make operations atomic.

Take Test
Q.288 Medium Multithreading
Which Java class provides thread-safe operations using Compare-And-Swap (CAS)?
A Vector
B Collections.synchronizedList()
C AtomicInteger
D ConcurrentHashMap
Correct Answer:  C. AtomicInteger
EXPLANATION

AtomicInteger and other Atomic* classes use CAS operations for lock-free thread-safe operations. ConcurrentHashMap uses segment-based locking, not CAS.

Take Test
Q.289 Medium Multithreading
What is the purpose of the yield() method in Java threading?
A To permanently stop the current thread
B To suggest that the current thread should yield CPU to other threads of equal priority
C To make a thread wait indefinitely
D To increase thread priority
Correct Answer:  B. To suggest that the current thread should yield CPU to other threads of equal priority
EXPLANATION

yield() is a hint to the thread scheduler that the current thread is willing to yield its current use of CPU. It doesn't guarantee the thread will yield, as scheduling is JVM-dependent.

Take Test
Q.290 Medium Multithreading
Consider the code:
synchronized void method1() { wait(); }
If wait() is called without a lock, what happens?
A The thread waits indefinitely
B IllegalMonitorStateException is thrown
C The method returns normally
D Compilation error occurs
Correct Answer:  B. IllegalMonitorStateException is thrown
EXPLANATION

wait() must be called from within a synchronized block or method. If called outside synchronized context, it throws IllegalMonitorStateException at runtime.

Take Test
IGET
iget AI
Online · Ask anything about exams
Hi! 👋 I'm your iget AI assistant.

Ask me anything about exam prep, MCQ solutions, study tips, or strategies! 🎯
UPSC strategy SSC CGL syllabus Improve aptitude NEET Biology tips