Estoy empezando a escribir programas en Java. ¿Qué significa el siguiente código Java?
public static void main(String[] args)
¿Qué es
String[] args
?¿Cuándo usarías estos
args
?
El código fuente y / o ejemplos son preferibles a las explicaciones abstractas
java
parameters
command-line-arguments
main
freddiefujiwara
fuente
fuente
args
no necesariamente tiene que nombrarseargs
(puede nombrarlo como quiera), aunque es mejor seguir la convención. También puede verString... args
de vez en cuando, que es equivalente.args
garantiza que esté separado por espacio independientemente del sistema operativo?-version
por ejemplo, esjava -version
yjava.exe -version
, pero nojava.exe /version
(intenta cargar la clase principal.version
). Solo mis 2 centavos si alguien se topa con esto.Esos son para argumentos de línea de comandos en Java.
En otras palabras, si corres
Luego
args
contiene:[ "uno dos" ]
La razón de esto es configurar su aplicación para que se ejecute de una manera particular o proporcionarle la información que necesita.
Si es nuevo en Java, le recomiendo leer los Tutoriales oficiales de Java TM de Oracle .
fuente
args
contiene los argumentos de la línea de comandos pasados al programa Java tras la invocación. Por ejemplo, si invoco el programa así:Luego
args
habrá una matriz que contiene las cadenas"-f"
y"file.txt"
.fuente
javac MyProg.java
y luego ejecutarlojava MyProg -f file.txt
. ¿Hay alguna razón para esto, porque en ninguna parte de las respuestas se menciona?.class
archivo.La siguiente respuesta se basa en mi comprensión y alguna prueba.
¿Qué es String [] args?
Ans->
String [] -> Como sabemos, esta es una simple matriz de String.
args -> es el nombre de una matriz, puede ser cualquier cosa (por ejemplo, a, ar, argumento, parámetro, parámetro) sin problemas con el compilador y ejecutado y también probé.
Ejemplo:
1) main estático público vacío (argumento String [])
2) public static void main (parámetro String [])
¿Cuándo usarías estos args?
Ans->
La función principal está diseñada de manera muy inteligente por los desarrolladores. El pensamiento real es muy profundo. Básicamente se desarrolla bajo la consideración de C & C ++ basado en el argumento de la línea de comando pero hoy en día nadie lo usa más.
Cosa 1: el usuario puede ingresar cualquier tipo de datos desde la línea de comandos, ¿puede ser Número o Cadena? ¿Es necesario que el compilador lo acepte? ¿Qué tipo de datos deberíamos usar? ver la cosa 2
Thing 2- String es el tipo de datos que admite todos los tipos de datos primitivos como int, long, float, double, byte, shot, char en Java. Puede analizarlo fácilmente en cualquier tipo de datos primitivo.
Por ejemplo, el siguiente programa está compilado y ejecutado y también lo probé.
Si la entrada es -> 1 1
fuente
Incluso aunque OP solo está hablando sobre el
String[] args
, quiero dar un ejemplo completo delpublic static void main(String[] args)
.Public
: es un modificador de acceso , que define quién puede acceder a este método. Público significa que este método será accesible por cualquier clase (si otras clases pueden acceder a esta clase).Static
: es una palabra clave que identifica la cosa relacionada con la clase. Esto significa que el Método o variable dado no está relacionado con la instancia, sino con la Clase. Se puede acceder sin crear la instancia de una clase.Void
: se utiliza para definir el tipo de retorno del método. Define lo que el método puede devolver. Anulado significa que el Método no devolverá ningún valor.main
: es el nombre del Método. JVM busca este nombre de método como punto de partida para una aplicación con una firma particular solamente.String[] args
: es el parámetro del método principal.Si observa el código fuente JDK (jdk-src \ j2se \ src \ share \ bin \ java.c):
Puede ver que el método de inicio en Java debe tener un nombre
main
y debe tener la firma específicapublic static void main(String[] args)
El código también nos dice que
public static void main(String[] args)
no está solucionado, si cambia el código en (jdk-src \ j2se \ src \ share \ bin \ java.c) a otra firma, funcionará, pero cambiar esto le dará otros posibles problemas. debido a las especificaciones de JavaOfftopic: Han pasado 7 años desde que OP hizo esta pregunta, supongo que OP puede responder su propia pregunta por ahora.
fuente
String [] args
también es cómo declaras una matriz de cadenas en Java.En esta firma de método, la matriz
args
se llenará con valores cuando se llame al método (como muestran los otros ejemplos aquí). Sin embargo, como estás aprendiendo, vale la pena entender que estaargs
matriz es como si hubieras creado uno tú mismo en un método, como en este:fuente
Rompería
en partes.
"público" significa que se puede llamar a main () desde cualquier lugar.
"static" significa que main () no pertenece a un objeto específico
"vacío" significa que main () no devuelve ningún valor
"principal" es el nombre de una función. main () es especial porque es el inicio del programa.
"Cuerda[]" significa una matriz de String.
"args" es el nombre de la Cadena [] (dentro del cuerpo de main ()). "args" no es especial; podría nombrarlo de otra manera y el programa funcionaría igual.
String[] args
es una colección de cadenas, separadas por un espacio, que se pueden escribir en el programa en el terminal. La mayoría de las veces, el principiante no va a usar esta variable, pero siempre está ahí por si acaso.fuente
Cuando termine su código, lo convertirá en un archivo con la extensión .java, que puede ejecutarse haciendo doble clic en él, pero también en una consola (terminal en una mac, cmd.exe en Windows) que permite al usuario hacer muchas cosas. Una cosa es que pueden ver los mensajes de la consola (System.out.print o System.out.println) que no pueden ver si hacen doble clic. Otra cosa que pueden hacer es especificar parámetros, por lo que normalmente usaría la línea
después de navegar a la carpeta del programa con
en ventanas o
en Mac (observe que Mac es menos torpe) para ejecutar el código, pero para especificar los parámetros que usaría
Estos parámetros almacenados en la matriz de argumentos, que puede usar en su programa, es si desea permitir que el usuario controle parámetros especiales, como qué archivo usar o cuánta memoria puede tener el programa. Si desea saber cómo usar una matriz, probablemente pueda encontrar un tema en este sitio o simplemente buscarlo en Google. Tenga en cuenta que se puede usar cualquier número de parámetros.
fuente
Explicación en lenguaje simple.
El método principal espera que proporcionemos algunos argumentos cuando dirigimos nuestra JVM al nombre de la clase. Eso significa, suponga que su nombre de archivo es Try.java, ahora para ejecutar esto en el símbolo del sistema, escriba "javac Try.java" para compilar seguido de "java Try" para ejecutar. Ahora suponga que en lugar de escribir simplemente "Java Try" escribe "Java Try 1". Aquí has pasado un argumento "1". Esto será tomado por su método principal, incluso si no lo usa en su código.
Si desea verificar si su método principal realmente ha tomado el argumento "1" o no. Simplemente, dentro de su método principal, escriba lo siguiente:
fuente
Creo que está bastante bien cubierto por las respuestas anteriores, que
String args[]
es simplemente una serie de argumentos de cadena que puede pasar a su aplicación cuando la ejecuta. Para completar, podría agregar que también es válido definir el parámetro del método pasado almain
método como un argumento variable (varargs) de tipo String:public static void main (String... args)
En otras palabras, el
main
método debe aceptar una matriz String (String args[]
) o varargs (String... args
) como argumento del método. Y tampoco hay magia con el nombreargs
. También podría escribirarguments
o inclusofreddiefujiwara
como se muestra en los siguientes p. Ej .:public static void main (String[] arguments)
public static void main (String[] freddiefujiwara)
fuente
Cuando se ejecuta una clase java desde la consola, el método principal es lo que se llama. Para que esto suceda, la definición de este método principal debe ser
El hecho de que este conjunto de cadenas se llame args es una convención estándar, pero no es estrictamente obligatorio. Rellenaría esta matriz en la línea de comando cuando invoque su programa
Estos se usan comúnmente para definir las opciones de su programa, por ejemplo, archivos para escribir o leer.
fuente
en public static void main (String args []) args es una matriz de argumentos de línea de consola cuyo tipo de datos es String. en esta matriz, puede almacenar varios argumentos de cadena invocandolos en la línea de comando como se muestra a continuación: java myProgram Shaan Royal luego Shaan y Royal se almacenarán en la matriz como arg [0] = "Shaan"; arg [1] = "Real"; puedes hacer esto manualmente también dentro del programa, cuando no los llames en la línea de comando.
fuente
Se
dataType[] arrayRefVar
prefiere el estilo . El estilodataType arrayRefVar[]
proviene del lenguaje C / C ++ y fue adoptado en Java para acomodar a los programadores C / C ++.fuente
El
String[] args
parámetro es una matriz de cadenas pasadas como parámetros cuando ejecuta su aplicación a través de la línea de comandos en el sistema operativo.Entonces, imagine que ha compilado y empaquetado una
myApp.jar
aplicación Java. Puede ejecutar su aplicación haciendo doble clic en el sistema operativo, por supuesto, pero también puede ejecutarla usando la línea de comandos, como (en Linux, por ejemplo):Cuando llama a su aplicación pasando algunos parámetros, como:
El
java -jar
comando pasará sus cadenasupdate
ynotify
a supublic static void main()
método.Luego puedes hacer algo como:
fuente
Además de todos los comentarios anteriores.
Se puede escribir como
o
fuente