IllegalArgumentException occurs when a method is invoked with illegal argument in java i.e. not a valid argument for that method.
e.g.

Priority of thread varies from the range 1 till 10. Any values which is set outside this range in setPriority() method of Thread class will throw IllegalArgumentException.

Thread t = new Thread();
t.setPriority(3); //Ok
t.setPriority(23); // throws IllegalArgumentException

wait() method of thread class can also throw IllegalArgumentException if the timeout passed as an argument is negative. Timeout value can not be negative.

Thread t = new Thread();
t.wait(300); //Ok
t.wait(-1); // throws IllegalArgumentException

join() method of thread class would also throw this exception if time in millis passed is negative value.

Thread t = new Thread();
t.join(1300); //Ok
t.join(-200); // throws IllegalArgumentException

IllegalArgumentException is Checked Exception or Unchecked Exception??

IllegalArgumentException is a subclass of RuntimeException and RuntimeException is an unchecked exception.
Hence, IllegalArgumentException is also an unchecked exception.

Demo Program 1 : IllegalArgumentException

The below program explains as to what happens when illegal argument is passed to wait() method of Thread class.

package com.masterjavatutorial;
public class TestExample {
    public static void main(String[] args) {
       Thread t =  new Thread();
       t.setPriority(4);
       System.out.println("Thread Priority = "+t.getPriority()); 
       t.setPriority(24);
       System.out.println("Thread Priority1 = "+t.getPriority());
       t.start();
    }
}

Output of the above program is as below:

Thread Priority = 4
Exception in thread "main" java.lang.IllegalArgumentException
	at java.lang.Thread.setPriority(Thread.java:1089)
	at com.masterjavatutorial.TestExample.main(TestExample.java:7)

In the above program , we can see from the output that setting priority 4 is not an issue but when we set the priority as 24, then it throws IllegalArgumentException as thread priority can vary from 1 to 10 only.

Demo Program 2 : IllegalArgumentException

The below program explains as to what happens when illegal argument is passed to join() method of Thread class.

package com.masterjavatutorial;
public class TestExample {
    public static void main(String[] args) throws InterruptedException {
       Thread t =  new Thread();
       t.wait(-1); 
       t.start();
    }
}

Output of the above program is as below:

Exception in thread "main" java.lang.IllegalArgumentException: timeout value is negative
	at java.lang.Object.wait(Native Method)
	at com.masterjavatutorial.TestExample.main(TestExample.java:5)

As negative value (illegal argument) is passed in the wait() method of Thread class and hence this exception is thrown by the above program.

To Know More about Exception in Java , you can visit the below links :
Click Here to read about ClassCastException
Click Here To Read about ArrayIndexOutOfBoundsException