Java Programming - MCQ Practice Questions
Practice free Java Programming multiple-choice questions with detailed answers and explanations. Perfect for competitive exam preparation.
958 questions | 100% Free
Consider the code: synchronized void method1() { wait(); } If wait() is called without a lock, what happens?
What is the purpose of the yield() method in Java threading?
Which Java class provides thread-safe operations using Compare-And-Swap (CAS)?
What does the volatile keyword guarantee in multithreading?
In Java 21, which new feature was introduced for concurrent programming?
What is the output of this code snippet? ExecutorService es = Executors.newFixedThreadPool(2); es.execute(() -> System.out.println("Task 1")); es.shutdown();
What exception does CyclicBarrier throw when a thread is interrupted while waiting?
Consider a scenario with 3 threads updating a shared counter. Which synchronization mechanism is MOST efficient?
What is the behavior of ReentrantReadWriteLock when multiple threads perform read operations?
Which scenario can lead to livelock in multithreading?
In a ForkJoinPool, what is the primary advantage over ExecutorService for recursive tasks?
What is the output of the following code? Thread t = new Thread(() -> { throw new RuntimeException("Error"); }); t.setUncaughtExceptionHandler((thread, ex) -> System.out.println("Caught")); t.start();
Which statement about StampedLock is TRUE?
In the context of Java 21 Virtual Threads, what is a major limitation of traditional threading that Virtual Threads solve?
Which of the following methods will cause a thread to release all locks it holds while waiting?
A developer needs to ensure that exactly 5 threads complete their tasks before proceeding to the next phase. Which synchronization utility is most appropriate?
In a producer-consumer scenario using BlockingQueue, what happens when a consumer thread calls take() on an empty queue?
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?
Consider a ThreadLocal variable initialized in a thread pool executor with 10 threads. If the same thread is reused from the pool for a different task, what is the state of its ThreadLocal variable?
A high-frequency trading system uses AtomicInteger for concurrent counter updates. However, performance degrades as more threads access the same counter. What is the primary cause and best solution?