Для этого есть два возможных подхода.
Либо вы создаете внутреннее представление вывода (например, двумерный массив символов), в котором вы рисуете графику.
Когда изображение готово, вы печатаете весь массив.
Вы используете escape-последовательности (специфичные для вашего терминала), чтобы переместить курсор в определенное место для рисования символов.
В вашем случае вы должны очистить терминал один раз, а затем переместить курсор для каждой звездочки.
[РЕДАКТИРОВАТЬ] Что касается # 1:
char[][] screen = new char[20][]; // 20 lines
for(int i=0;i<screen.length; i++) screen[i] = new char[80]; // 80 columns
Теперь вы можете нарисовать что-нибудь с помощью screen[y][x] = '*'
Для печати:
for(int i=0;i<screen.length; i++) System.out.print(new String(screen[i]));
System.out.println();