Dúvida threads

Por que ele não imprime “Hello World!”?

[code]package testes;

public class TestaThread
{
public static void main(String[] args)
{
new Thread()
{
@Override
public void run()
{
System.out.println(“Hello World!”);
}
};
}
}
[/code]

Esquece, pensei que as threads começavam sozinhas, agora fui ver que é preciso chamar start();

Porque você cria a thread, mas não a inicializa.
É preciso chamar o método start().

[editado]
Foi mal, postamos ao mesmo tempo
[/editado]

Ola

Bem, primeiro do que pouco entendo, essa thread ai dentro do main, ao meu ver me parece uma inner class, alguem no forum
poderia dizer o que realmente é.

A sua classe Thread que esta dentro do main esta certa, agora o Run dela não e executado pq não ha uma chamada dele.

Ou vc atribui essa classe a um objeto como abaixo pra chamar

     Thread obj =new Thread()
     {
         @Override
         public void run()
         {
             System.out.println("Hello World!");
        }
     };
	obj.start();

ou chama assim

     new Thread()
     {
         @Override
         public void run()
         {
             System.out.println("Hello World!");
        }
     }.start();

O método run() da classe Thread e invocada pelo start();

[quote=leandrold]Bem, primeiro do que pouco entendo, essa thread ai dentro do main, ao meu ver me parece uma inner class, alguem no forum
poderia dizer o que realmente é.
[/quote]
É uma classe interna anônima.