utiliza sirve significa que para error entre diferencia java static main void public

java - sirve - ¿Qué significa ''public static void main args''?



que significa public static en java (5)

No estoy seguro de lo que esto significa, siempre que antes de escribir un código, la gente dice esto

public static void main(String[] args) {

Qué significa eso?


Aquí hay una explicación un poco detallada sobre por qué el método principal se declara como

public static void main(String[] args)

El método principal es el punto de entrada de un programa Java para la máquina virtual Java (JVM). Digamos que tenemos una clase llamada Sample

class Sample { static void fun() { System.out.println("Hello"); } } class Test { public static void main(String[] args) { Sample.fun(); } }

Este programa se ejecutará después de la compilación como java Test . El comando java iniciará la JVM y cargará nuestra clase Test.java en la memoria. Como main es el punto de entrada para nuestro programa, JVM buscará el método main que se declare como public , static y void .

¿Por qué main debe ser declarado público?

main() debe declararse public porque, como sabemos, JVM lo invoca cada vez que se inicia la ejecución del programa y JVM no pertenece a nuestro paquete de programas.

Para acceder a main fuera del paquete, debemos declararlo como public . Si lo declaramos como algo que no sea public , muestra un Run time Error pero no un Compilation time error .

¿Por qué main debe declararse estático?

main() debe declararse como static porque JVM no sabe cómo crear un objeto de una clase, por lo que necesita una forma estándar de acceder al método main que sea posible declarando main() como static .

Si un método se declara como static , podemos llamar a ese método fuera de la clase sin crear un objeto usando la sintaxis ClassName.methodName(); .

De esta forma, JVM puede llamar a nuestro método principal como <ClassName>.<Main-Method>

¿Por qué main debe ser declarado vacío?

main() debe declararse nulo porque JVM no espera ningún valor de main() . Por lo tanto, debe declararse como void .

Si se proporciona otro tipo de retorno, es un RunTimeError , es decir, NoSuchMethodFoundError .

¿Por qué main debe tener argumentos de matriz de cadena?

main( ) debe tener argumentos de cadena como matrices porque JVM llama al método principal pasando el argumento de la línea de comandos. Como se almacenan en un objeto de matriz de cadena, se pasa como argumento a main() .


En Java, su método principal siempre debe ser:

public static void main(String args[])

  1. La ejecución del programa comienza con la función main() , de ahí la función main() .

  2. Debe ser public para que sea accesible al entorno exterior.

  3. El método main() siempre es estático porque, como sabes, la ejecución del programa comienza en el método main() y no hay ninguna instancia de la clase que contenga el método main() iniciado. Por lo tanto, como el método estático puede ejecutarse sin necesidad de ninguna instancia, se declara estático.

  4. Java es independiente de la plataforma, por lo tanto, puede intentar compilar el archivo java en un sistema e intentar ejecutar el archivo de clase en otro. La arquitectura de bits de cada máquina puede ser diferente, por lo tanto, el tipo de retorno de la función principal siempre debe ser main() .

Espero que esto ayude.


Según la especificación del lenguaje Java, la ejecución de un programa Java comienza desde el método main (). Un método main () debe seguir la sintaxis específica, se puede explicar como:

public static void main(String[] args)

public : especificador de acceso, muestra que main() es accesible para todas las demás clases.

void : tipo de retorno, main() no devuelve nada.

String args[] : argumentos del método main() , que debería ser una matriz de tipo string.

static : modificador de acceso. Un método principal siempre debe ser estático, porque se puede llamar al método `main () ''sin crear una instancia de la clase.

Supongamos que estamos ejecutando un programa Java de Helloworld.

Mientras ejecutamos el programa, usamos el comando

java Helloworld.

Internamente, este comando se convierte en

Helloworld.main()

Al hacer que el método main() estático, JVM llama al método main() sin crear primero un objeto.


public -> Especificador de acceso. Cualquier otra clase puede acceder a este método.

static -> El método está vinculado a la clase, no a una instancia de la clase.

void -> Tipo de retorno. El método no devuelve nada.

main(String[] args) -> el nombre del método es main() . Se necesita una serie de cadenas como argumento. Los argumentos de String[] son argumentos de línea de comando.

Nota : El método main() definido anteriormente es el punto de entrada de un programa; si cambia la firma, es posible que su programa no se ejecute.


  • Public = Este método es visible para todas las demás clases.

  • static = Este método no necesita una instancia para ejecutarse.

  • void = Este método no devuelve nada.

  • main() = Método principal (primer método para ejecutar).

  • String[] = Matriz de cadenas.

  • args = nombre de la matriz.