Exception Handling in Java
1. Write a Java program that throws an exception and catch it using a try-catch block.
2. Write a Java program to create a method that takes an integer as a parameter and throws
an exception if the number is odd.
3. Write a Java program to create a method that reads a file and throws an exception if the
file is not found.
4. Write a Java program that reads a list of numbers from a file and throws an exception
if any of the numbers are positive.
5. Write a Java program that reads a file and throws an exception if the file is empty.
6. Write a Java program that reads a list of integers from the user and throws an exception
if any numbers are duplicates.
7. Write a Java program to create a method that takes a string as input and throws an
exception if the string does not contain vowels.
Multithreading in java
8. Write a Java program to create and start multiple threads that increment a shared counter
variable concurrently.
9. Write a Java program to create a producer-consumer scenario using the wait() and
notify() methods for thread synchronization.
10. Write a Java program that uses the ReentrantLock class to synchronize access to a
shared resource among multiple threads.
11. Write a Java program to demonstrate Semaphore usage for thread synchronization.
12. Write a Java program to showcase the usage of the CyclicBarrier class for thread
synchronization.
13. Write a Java program that uses the CountDownLatch class to synchronize the start and
finish of multiple threads.
14. Write a Java program to illustrate the usage of the ReadWriteLock interface for
concurrent read-write access to a shared resource.
15. Write a Java program demonstrating how to access a map concurrently using the
ConcurrentHashMap class.
16. Write a Java program that utilizes the ConcurrentLinkedQueue class to implement a
thread-safe queue.
17. Write a Java program to showcase the usage of the Phaser class for coordination and
synchronization of multiple threads.
18. Write a Java program that utilizes the Exchanger class for exchanging data between two
threads.
19. Write a Java program to demonstrate the usage of the Callable and Future interfaces for
executing tasks asynchronously and obtaining their results.
20. Write a Java program that uses the ScheduledExecutorService interface to schedule
tasks for execution at a specified time or with a fixed delay.
21. Write a Java program to demonstrate the usage of the ForkJoinPool class for parallel
execution of recursive tasks.
22. Write a Java program that utilizes the StampedLock class for optimizing concurrent
read-write access to a shared resource.