Estou apenas começando a escrever programas em Java. O que significa o seguinte código Java?
public static void main(String[] args)
O que é
String[] args
?Quando você os usaria
args
?
Código-fonte e / ou exemplos são preferidos a explicações abstratas
java
parameters
command-line-arguments
main
freddiefujiwara
fonte
fonte
args
isso não precisa necessariamente ser nomeadoargs
(você pode nomear o que quiser) - embora seja melhor seguir a convenção. Você também pode verString... args
de tempos em tempos, o que é equivalente.args
garantido que seja separado por espaço, independentemente do sistema operacional?-version
por exemplo, éjava -version
ejava.exe -version
, mas nãojava.exe /version
(tenta carregar a classe principal.version
). Apenas meus 2 centavos se alguém tropeçar nisso.Esses são para argumentos de linha de comando em Java.
Em outras palavras, se você executar
Então
args
contém:[ "um dois" ]
O motivo para isso é configurar seu aplicativo para executar uma maneira específica ou fornecer algumas informações necessárias.
Se você é novo no Java, recomendo a leitura dos tutoriais oficiais do Java TM da Oracle .
fonte
args
contém os argumentos da linha de comandos passados para o programa Java na chamada. Por exemplo, se eu chamar o programa da seguinte maneira:Então
args
haverá uma matriz contendo as seqüências de caracteres"-f"
e"file.txt"
.fonte
javac MyProg.java
e depois para executarjava MyProg -f file.txt
. Existe uma razão para isso, porque em nenhum lugar das respostas é mencionado?.class
arquivo primeiro.A resposta a seguir é baseada no meu entendimento e em alguns testes.
O que é String [] args?
Resp->
String [] -> Como sabemos, este é um array de String simples.
args -> é o nome de uma matriz que pode ser qualquer coisa (por exemplo, a, ar, argumento, parâmetro, parâmetro) sem problemas com o compilador e executado e também testei.
Por exemplo,
1) public static void main (argumento String [])
2) main public void estático (parâmetro String [])
Quando você usaria esses argumentos?
Resp->
A principal função é projetada de maneira muito inteligente pelos desenvolvedores. O pensamento real é muito profundo. Que é basicamente desenvolvido sob consideração do C & C ++ com base no argumento da linha de comando, mas atualmente ninguém o usa mais.
Coisa 1 - O usuário pode inserir qualquer tipo de dado da linha de comando, pode ser Number ou String e necessário para aceitá-lo pelo compilador, que tipo de dados devemos usar? veja a coisa 2
Coisa 2 - String é o tipo de dados que suporta todos os tipos de dados primitivos, como int, long, float, double, byte, shot, char em Java. Você pode analisá-lo facilmente em qualquer tipo de dados primitivo.
Por exemplo, o programa a seguir é compilado e executado e eu testei também.
Se a entrada for -> 1 1
fonte
Mesmo que o OP esteja falando apenas sobre o
String[] args
, eu quero dar um exemplo completo dopublic static void main(String[] args)
.Public
: é um modificador de acesso , que define quem pode acessar esse método. Público significa que este método será acessível por qualquer classe (se outras classes puderem acessar essa classe).Static
: é uma palavra-chave que identifica a coisa relacionada à classe. Isso significa que o método ou a variável fornecida não está relacionada à instância, mas à classe. Ele pode ser acessado sem criar a instância de uma classe.Void
: é usado para definir o tipo de retorno do método. Ele define o que o método pode retornar. Anular significa que o Método não retornará nenhum valor.main
: é o nome do método. Este nome de método é procurado pela JVM como ponto de partida para um aplicativo apenas com uma assinatura específica.String[] args
: é o parâmetro para o método principal.Se você procurar o código-fonte JDK (jdk-src \ j2se \ src \ compartilhamento \ bin \ java.c):
Você pode ver que o método inicial em java deve ser nomeado
main
e ter a assinatura específicapublic static void main(String[] args)
O código também nos diz que
public static void main(String[] args)
não é fixo, se você alterar o código (jdk-src \ j2se \ src \ compartilhamento \ bin \ java.c) para outra assinatura, ele funcionará, mas alterar isso fornecerá outros possíveis problemas por causa das especificações do javaOfftopic: Já se passaram 7 anos desde que o OP fez essa pergunta, meu palpite é que o OP pode responder sua própria pergunta agora.
fonte
String [] args
também é como você declara uma matriz de Strings em Java.Nesta assinatura do método, a matriz
args
será preenchida com valores quando o método for chamado (como os outros exemplos aqui mostram). Como você está aprendendo, vale a pena entender que essaargs
matriz é como se você a tivesse criado em um método, como neste:fonte
Eu terminaria
em partes.
"public" significa que main () pode ser chamado de qualquer lugar.
"estático" significa que main () não pertence a um objeto específico
"void" significa que main () não retorna valor
"main" é o nome de uma função. main () é especial porque é o início do programa.
"String []" significa uma matriz de String.
"args" é o nome da String [] (no corpo de main ()). "args" não é especial; você poderia nomear qualquer outra coisa e o programa funcionaria da mesma maneira.
String[] args
é uma coleção de Strings, separadas por um espaço, que pode ser digitado no programa no terminal. Mais vezes do que não, o iniciante não vai usar essa variável, mas está sempre lá por precaução.fonte
Quando você terminar o código, você o transformará em um arquivo com a extensão .java, que pode ser executada clicando duas vezes nele, mas também em um console (terminal em um mac, cmd.exe no windows), que permite ao usuário muitas coisas. Uma coisa é que eles podem ver as mensagens do console (System.out.print ou System.out.println) que não podem ver se clicarem duas vezes. Outra coisa que eles podem fazer é especificar parâmetros, então normalmente você usaria a linha
depois de navegar para a pasta do programa com
nas janelas ou
no Mac (observe que o mac é menos desajeitado) para executar código, mas para especificar parâmetros que você usaria
Esses parâmetros armazenados na matriz args, que você pode usar em seu programa, é permitir que o usuário controle parâmetros especiais, como qual arquivo usar ou quanta memória o programa pode ter. Se você quiser saber como usar uma matriz, provavelmente poderá encontrar um tópico neste site ou apenas pesquisá-lo no Google. Observe que qualquer número de parâmetros pode ser usado.
fonte
Explicação em linguagem simples do leigo.
O método principal espera que forneçamos alguns argumentos quando direcionamos nossa JVM para o nome da classe. Isso significa que, suponha que seu nome de arquivo seja Try.java, agora, para executar isso no prompt de comando, você escreve "javac Try.java" para compilar, seguido de "java Try" para executar. Agora suponha que, em vez de escrever simplesmente "java Try", você escreva "java Try 1". Aqui você passou um argumento "1". Isso será utilizado pelo seu método principal, mesmo que você não o utilize no seu código.
Se você deseja verificar se o seu método principal realmente aceitou o argumento "1" ou não. Simplesmente, dentro do seu método principal, digite o seguinte:
fonte
Eu acho que é muito bem coberto pelas respostas acima, que
String args[]
é simplesmente uma matriz de argumentos de string que você pode passar para o seu aplicativo quando o executa. Para concluir, devo acrescentar que também é válido definir o parâmetro do método passado aomain
método como um argumento variável (varargs) do tipo String:public static void main (String... args)
Em outras palavras, o
main
método deve aceitar uma matriz String (String args[]
) ou varargs (String... args
) como argumento do método. E não há mágica com o nomeargs
também. Você também pode escreverarguments
ou atéfreddiefujiwara
como mostrado abaixo, por exemplo:public static void main (String[] arguments)
public static void main (String[] freddiefujiwara)
fonte
Quando uma classe java é executada no console, o método principal é o que é chamado. Para que isso aconteça, a definição deste método principal deve ser
O fato de que essa matriz de cadeias de caracteres é chamada args é uma convenção padrão, mas não é estritamente necessária. Você preencheria essa matriz na linha de comando quando invocasse seu programa
Eles são comumente usados para definir opções do seu programa, por exemplo, arquivos nos quais gravar ou ler.
fonte
em público static void main (String args []) args é uma matriz de argumentos de linha do console cujo tipo de dados é String. nessa matriz, você pode armazenar vários argumentos de string chamando-os na linha de comando, como mostrado abaixo: java myProgram Shaan Royal, em seguida, Shaan e Royal serão armazenados na matriz como arg [0] = "Shaan"; arg [1] = "real"; você pode fazer isso manualmente também dentro do programa, quando não os chamar na linha de comando.
fonte
O estilo
dataType[] arrayRefVar
é preferido. O estilodataType arrayRefVar[]
vem da linguagem C / C ++ e foi adotado em Java para acomodar programadores em C / C ++.fonte
o
String[] args
parâmetro é uma matriz de Strings passadas como parâmetros quando você está executando seu aplicativo através da linha de comando no SO.Então, imagine que você tenha compilado e empacotado um
myApp.jar
aplicativo Java. Você pode executar seu aplicativo clicando duas vezes nele no sistema operacional, é claro, mas também pode executá-lo usando a linha de comando, como (no Linux, por exemplo):Quando você chama seu aplicativo, passa alguns parâmetros, como:
O
java -jar
comando passará suas Stringsupdate
enotify
para o seupublic static void main()
método.Você pode fazer algo como:
fonte
Além de todos os comentários anteriores.
pode ser escrito como
ou
fonte