Por qué se necesita el método main () en la clase principal de java

Sé que podemos comstackr y ejecutar un progtwig Java con éxito sin un método main (), pero ¿por qué todavía necesitamos el método main () en la clase principal de Java?

Cada aplicación Java debe contener un método principal cuya firma se vea así:

public static void main(String[] args) 

Cómo se llama el método principal

El método principal en el lenguaje Java es similar a la función principal en C y C ++. Cuando el intérprete de Java ejecuta una aplicación (al invocarse sobre la clase de control de la aplicación), comienza llamando al método principal de la clase. El método principal llama a todos los demás métodos necesarios para ejecutar su aplicación.

Si intenta invocar el intérprete de Java en una clase que no tiene un método principal, el intérprete se niega a comstackr su progtwig y muestra un mensaje de error similar al siguiente:

  In class NoMain: void main(String argv[]) is not defined 

Argumentos al método principal

Como puede ver en el siguiente fragmento de código, el método principal acepta un solo argumento: una matriz de elementos de tipo String.

  public static void main(String[] args) 

Esta matriz es el mecanismo a través del cual el sistema de tiempo de ejecución pasa información a su aplicación. Cada cadena en la matriz se llama argumento de línea de comandos. Los argumentos de línea de comandos permiten a los usuarios afectar el funcionamiento de la aplicación sin volver a comstackrla. Por ejemplo, un progtwig de clasificación podría permitir al usuario especificar que los datos se ordenan en orden descendente con este argumento de línea de comandos:

  -descending 

para más información

http://journals.ecs.soton.ac.uk/java/tutorial/getStarted/application/main.html

Cuando un progtwig comienza a ejecutarse, debe comenzar la ejecución desde algún lugar. Que en algún lugar se llama main .

Puede comstackr cualquier clase Java sin un método main , pero una aplicación independiente no puede ejecutarse sin un método main() * .

El método main es el método que se define para ser llamado al inicio de una aplicación. Sin eso, no hay lugar para comenzar a correr.

* bueno, hay hacks feos donde puedes hacerlo, pero eso es hacer trampa

Citando la Especificación del Lenguaje Java (JLS) ” A Java virtual machine starts execution by invoking the method main of some specified class, passing it a single argument, which is an array of strings

Ahora una definición típica de método principal desde el que se inicia la ejecución

 public static void main(String[] args) 

public – significado debe ser accesible desde cualquier lugar

static : debe ser accesible de forma estática sin una instancia (cuando se inicia JVM, no tiene instancia de la clase que contiene el método principal, por lo tanto estática).

void – devuelve vacío.

Entonces un método main () está ‘codificado’ en JVM para decirle que es un punto de partida.

main () es el punto de partida de una aplicación. Cuando se inicia la aplicación, esta función es la primera que se evalúa desde su código. Es responsable de ejecutar su aplicación.

  1. Para responder a esto, necesitamos entender la fantástica architecture de Java.
  2. Tenemos código fuente de Java (archivo .java )
  3. El comstackdor comprueba si hay errores y genera un código de bytes como el archivo .class
  4. Entonces el cargador de clases carga el archivo .class
  5. Después de eso JVM toma la responsabilidad

    • a) JVM carga bloques estáticos
    • b) Después de eso, el intérprete en JVM quiere leer el código. En el grupo de código donde comenzar a leer, ¿está la pregunta para JVM?

    • Respuesta: Para resolver este problema, proporcionamos la palabra clave main como pista para que la JVM inicie la ejecución en este método.

  6. Después de eso, Java producirá resultados al tratar con el sistema operativo y el hardware
  7. ¿Mi respuesta es lo suficientemente clara? Si hay dudas, por favor comente.