Oi Maurício
As checked exceptions são as exceções verificadas em tempo de compilação, ou seja, se algum código dentro do método lançar uma exceção verificada, o método deve tratar a exceção ou deve re-lançar a exceção usando a palavra-chave throws.
As unchecked exceptions são as exceções que não são verificadas no momento da compilação, ou seja, se um método lançar uma exceção não verificada, o compilador não vai obrigar a usar try catch nem re-lançar a exceção usando throws.
A maior diferença entre as exceções verificadas e não verificadas é que as exceções verificadas são forçadas pelo compilador e usadas para indicar condições excepcionais que estão fora do controle do programa, enquanto as exceções não verificadas ocorrem durante o tempo de execução e são usadas para indicar erros de programação.
Link sobre exceptions: https://blog.caelum.com.br/lidando-com-exceptions/