Imprimir todos os caracteres Unicode dentro de um intervalo específico

Não consigo encontrar a API certa para isso. Eu tentei isso;

public static void main(String[] args) {
    for (int i = 2309; i < 3000; i++) {
      String hex = Integer.toHexString(i);
      System.out.println(hex + " = " + (char) i);
    }
  }

Esse código só imprime assim no Eclipse IDE.

905 = ?
906 = ?
907 = ?
...

Como posso nos fazer esses valores decimais e hexadecimais para obter os caracteres Unicode?