二重にしなくてもいい気もするが…
底辺の数をlengthとして、


char[] cArr = new char[length];
Arrays.fill(cArr, '*');
String base = new String(cArr);

for (int i = 0; i < length; i++)
System.out.println(base.substring(0, i + 1));

こんなんででない?