Melhor jeito de iniciar um programa

Então, GUJNautas, acho que o título já deixa bem claro. Qual o melhor, mais seguro ou mais rápido meio de iniciar um programa?

Eu sempre faço assim:

[code]package paz;

public class MainClass{

public MainClass(){
	System.out.println("Teste: Olá mundo :D");
}

public static void main(String[] e){
	new MainClass();
}

}[/code]

Ou seja, no construtor da classe principal eu dou as ordens que devem ser dadas para o programa rodar e, na mesma classe, coloco o método main e nele uso new MainClass();

Não sei se esse método é seguro nem nada do tipo, mas sempre funcionou bem pra mim então gostaria de saber de vocês do GUJ qual é o melhor :slight_smile:

Amigão, qual sua definição exata de “seguro” para você, nesse contexto?

Agora, sobre rapidez, seria mais rapido colocar direto no main, sem instanciar a classe.

Ai usar o operador “new” você está dizendo para o java alocar um novo espaço de memória, no exemplo citado não há nenhum motivo para fazer tal operação, só deixará mais lento.

Abs.

Eu geralmente coloco o método main em uma classe só pra ele, sem outras responsabilidades. Por exemplo, se tiver que chamar a janela principal da aplicação, é nela que eu vou instanciar e fazer com que ela seja exibida.

diogozero, eu gosto de fazer assim por que ficava p da vida quando o compilador indicava algum erro em tratar um objeto estático de modo não estático, ou vice-versa. Faço assim mais por isso que por outros motivos. Acho que isso também já responde ao LucasHP. Mas então, LucasHP, minha classe principal seria basicamente um main(String[] e), mas eu uso desse modo pra não ter que ficar me preocupando, como já disse, com meios estáticos e não estáticos. Eu não saio instanciando tudo “na doida” já na MainClass do exemplo, dela eu mando criar um objeto, depois aquele outro no decorrer do programa e das necessidades do mesmo. Ainda assim, é um método mais lento?

Quanto mais memória voce consumir da cpu, mais lento ficará seu programa, pode ter certeza disso, ou seja, a cada novo objeto alocado, 1 endereço de memória é utilizado.

No exemplo que você postou, não há necessidade para isso, mas está certo.