Printf e println

qual a difetrenca de usar println e printf(como na linguagem C)?

O printf permite que você insira dados formatados. É a própria função que faz a formatação para você.

Por exemplo, a linha abaixo imprime a String, seguida de um double só com 2 casas decimais:

System.out.printf("O valor do %s é cerca de %.2f dólares. %n", "Visual Studio Ultimate", 5600.0);

O println é o print (impressão) + ln (new line) = vai fazer com que ao terminar uma mensagem o seu próximo print vá para a linha de baixo, ou seja você dá um print e depois um new line só que tudo junto. É como se fosse um enter.

Exemplo:

System.out.println("Olá mundo");
System.out.println("Estou aprendendo Java");

Saída:

Olá mundo
Estou aprendendo Java

Sem o ln ia ficar tudo na mesma linha.

O printf é igual ao print do Java, mas é usado na linguagem C. (não sei se esse f faz alguma coisa em especial, me corrijam se eu estiver errado).

Resumidamente, se f for uma variável de tipo java.io.PrintWriter (no Java) ou FILE * (no C),

System.out.println = puts
f.println = fputs (f,
System.out.printf = printf
f.printf = fprintf (f,