Public static void main(String[] args)

pessoal, a pergunta provavelmente deve ser besta

mas perguntei perguntei e ng me respondeu ainda heheh
nem o google

pq declaramos no metodo principal
(String args)
e qual a diferenca de se utilizar
(String[] args) | (String args[])

no livro do deitel usa o 1º exemplo, mas varios codigos usa o 2º
:
valews

todo método main necessita receber um array de Strings.
Sendo assim se na assinatura do método vc declarar uma String simples public static void main(String arg) ele se torna um método comum.
Mais vc pode declarar um array de várias formas como:

public static void main(String[] arg) 
public static void main(String arg[])
public static void main(String... arg)

ele se tornará um método main executavél em java.

Mas porque toda Main precisa receber um Array de Strings?

Isso é na verdade apenas um efeito colateral de que programas Java normalmente são carregados pelo “java.exe” (Windows) ou “/usr/bin/java” (Linux, Unix).

Esse “java.exe” ou “/usr/bin/java” requer que o ponto de entrada de um programa Java seja exatamente um método declarado exatamente dessa maneira “public static void main(String[] args)”. Se o java.exe encontrar um método desses, então ele o chama com os argumentos de linha de comando (lembre-se, o Java nasceu no Unix e no Unix é muito importante usar os argumentos de linha de comando - e é por isso que ele funciona desse jeito. Outras linguagens aparentadas com o Java, como é o caso do C e do C++, têm um esquema semelhante. )

Se você tiver uma applet, por exemplo, que é um tipo diferente de programa Java, vai ver que o “Java Plugin” (que é um programa no browser que carrega applets Java) requer um outro tipo de classe (algo que descenda de java.awt.Applet) e alguns pontos especiais de entrada.

Esse array de Strings representa parâmetros de linha de comando.
Digamo que você fez uma calculadora de linha de comando chamada calc.exe.
Ela recebe como parâmetro os dois números que você quer efetuar a operação e a operação. Se eu quiser somar 2 e 2 por exemplo:
calc.exe 2 + 2
Você executou se programa passando três parâmetros: 2, +, 2
O vetor args[] serve justamente para você pegar esse parâmetros para manipul-los na sua aplicação. O primeiro parâmetro sempre é o nome da aplicação.
Para a execução acima mostrada:
args[0] = “calc.exe”;
args[1] = “2”;
args[2] = “+” ;
args[3] = “2”;

Entendeu?
abs.

EDIT: Quado fui responder não tinha a resposta do entanglement ainda.

É uma definição da linguagem.
As definições do java determinam coisas como a obrigatoriedade de uma classe pública possuir o mesmo nome do arquivo em que ela está.

Há um contrasenso, no que o camarada jweibe disse. O método main irá ser disparado, independente de passarmos o array para ele.
Se você, por exemplo, tiver uma classe java assim

public class OlaMundo{
  public static void main(String[] args{
   JOptionPane.showMessageDialog(null, "Ola mundo");
 }
}

Após compilá-la e executar java OlaMundo o que a JVM entende é que você chama o método main desta classe, a saída será uma caixa de diálogo dizendo ola mundo.

Tenho outra duvida em relação a “public static void main(String[] args)” .
Devo começar a programar antes ou depois desse comando?
Já vi a declaração de variaveis antes, depois…
Eu to começando a programar agora, e peço a compreenção dos programadores mais experientes.

Tanto faz, nesse caso a ordem não importa.

Obrigada :smiley:

[quote=Francini Pedro]Tenho outra duvida em relação a “public static void main(String[] args)” .
Devo começar a programar antes ou depois desse comando?
Já vi a declaração de variaveis antes, depois…
Eu to começando a programar agora, e peço a compreenção dos programadores mais experientes.[/quote]

Bom, respondendo à tua pergunta…
Você começa a programar já ao declarar o package e fazer os imports.
Depois de declarar a classe, você pode inserir quaisquer métodos dentro dela, assim como quaisquer atributos.
Independente de onde esteja, a JVM sabe que existem aqueles métodos e atributos.

O que eu sempre sugiro é que você organize tudo, deixe atributos juntos e métodos bem definidos, claros, coesos.

No mais, é isso.