in

Entendiendo public static void main (String[] args) en Java

gfg 200x200 min

En los programas Java, el punto desde donde el programa comienza su ejecución o simplemente el punto de entrada de los programas Java es el principal() método. Por lo tanto, es uno de los métodos más importantes de Java y es muy importante tener una comprensión adecuada de él.

Sintaxis más común del método main ():

class GeeksforGeeks {

    public static void main(String[] args)

    {

        System.out.println("I am a Geek");

    }

}

I am a Geek

Explicación:
Cada palabra en la declaración principal vacía estática pública tiene un significado para la JVM.

  1. Público: Es un Modificador de acceso, que especifica desde dónde y quién puede acceder al método. Haciendo el principal() El método public lo hace disponible a nivel mundial. Se hace público para que JVM pueda invocarlo desde fuera de la clase, ya que no está presente en la clase actual.

    class GeeksforGeeks {

        private static void main(String[] args)

        {

            System.out.println("I am a Geek");

        }

    }

    Error: Main method not found in class, please define the main method as:
    public static void main(String[] args)
    or a JavaFX application class must extend javafx.application.Application
  2. Estático: Es un palabra clave que es cuando se asocia con un método, lo convierte en un método relacionado con la clase. los principal() El método es estático para que JVM pueda invocarlo sin instanciar la clase. Esto también evita el desperdicio innecesario de memoria que habría sido utilizado por el objeto declarado solo para llamar al principal() método por la JVM.

    class GeeksforGeeks {

        public void main(String[] args)

        {

            System.out.println("I am a Geek");

        }

    }

    Error: Main method is not static in class test, please define the main method as:
    public static void main(String[] args)
  3. Vacío: Es una palabra clave y se usa para especificar que un método no devuelve nada. Como principal() El método no devuelve nada, su tipo de retorno es vacío. Tan pronto como principal() El método termina, el programa Java también termina. Por tanto, no tiene sentido volver de principal() método ya que JVM no puede hacer nada con el valor de retorno del mismo.

    class GeeksforGeeks {

        public static int main(String[] args)

        {

            System.out.println("I am a Geek");

            return 1;

        }

    }

    Error: Main method not found in class, please define the main method as:
    public static void main(String[] args)
    or a JavaFX application class must extend javafx.application.Application
  4. principal: Es el nombre del método principal de Java. Es el identificador que la JVM busca como punto de partida del programa java. No es una palabra clave.

    class GeeksforGeeks {

        public static void myMain(String[] args)

        {

            System.out.println("I am a Geek");

        }

    }

    Error: Main method not found in class, please define the main method as:
    public static void main(String[] args)
    or a JavaFX application class must extend javafx.application.Application
  5. Cuerda[] argumentos: Almacena Java argumentos de la línea de comando y es una matriz de tipo java.lang.String clase. Aquí, el nombre de la matriz de cadenas es argumentos pero no es fijo y el usuario puede usar cualquier nombre en su lugar.

    class GeeksforGeeks {

        

        

        public static void main(String[] args)

        {

            for (String elem : args)

                System.out.println(elem);

        }

    }

    1
    2
    3

    Aparte de la firma de main mencionada anteriormente, puede utilizar public static void main (String args[]) o public static void main (String … args) para llamar a la función principal en java. Se llama al método principal si su parámetro formal coincide con el de una matriz de cadenas.

    ¿Puede el método principal ser int? Si no, ¿por qué?

    class GeeksforGeeks {

         

        public static int main(String[] args) {

     

            System.out.println("GeeksforGeeks");

        }

    }

    Java no devuelve int implícitamente, incluso si declaramos el tipo de retorno de main como int.
    Obtendremos un error de tiempo de compilación

    prg1.java:6: error: falta la declaración de devolución
    }
    ^
    1 error

    class GeeksforGeeks {

         

        public static int main(String[] args) {

     

            System.out.println("GeeksforGeeks");

            return 0;

        }

    }

    Ahora, incluso si devolvemos 0 o un entero explícitamente nosotros mismos, desde int main.
    Obtenemos un error de tiempo de ejecución.

    Error: el método principal debe devolver un valor de tipo void en la clase GeeksforGeeks, por favor
    defina el método principal como:
    public static void main (String[] argumentos)

    Explicación –
    los Programas C y C ++ que devuelven int de main son procesos del sistema operativo. los valor int devuelto desde main en C y C ++ es código de salida o estado de salida. El código de salida del programa C o C ++ ilustra por qué terminó el programa. El código de salida 0 significa una terminación exitosa. Sin embargo, un estado de salida distinto de cero indica un error. Por ejemplo, el código de salida 1 muestra errores varios, como «dividir por cero».

    El proceso padre de cualquier proceso hijo sigue esperando el estado de salida del hijo. Y después de recibir el estado de salida de hijo, limpia el proceso hijo de la tabla de procesos y libera los recursos asignados. Es por eso que se vuelve obligatorio para los programas C y C ++ (que son prcoesses de OS) pasar su estado de salida de main explícita o implícitamente.

    Sin embargo, el programa Java se ejecuta como ‘Hilo principal’ en JVM. El programa Java ni siquiera es un proceso del sistema operativo directamente. No hay interacción directa entre el programa Java y el sistema operativo. No hay una asignación directa de recursos al programa Java directamente, o el programa Java no ocupa ningún lugar en la tabla de procesos. Entonces, ¿a quién debe devolver el estado de salida? Es por eso que el método principal de Java está diseñado para no devolver el estado int o salir.

    Pero JVM es un proceso de un sistema operativo y JVM se puede terminar con cierto estado de salida. Con la ayuda de java.lang.Runtime.exit (estado int) o System.exit (estado int)

    ¡Atención lector! No dejes de aprender ahora. Hazte con todo lo importante Fundación Java y conceptos de colecciones con el Curso de Fundamentos de Java y Colecciones de Java a un precio asequible para los estudiantes y prepárese para la industria. Para completar su preparación desde el aprendizaje de un idioma hasta DS Algo y muchos más, consulte Curso completo de preparación para entrevistas.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

apple touch icon@2

¿Cuál es la forma preferida de concatenar una cadena en Python?

300px matchcom vs eharmony 2

Match.com vs eHarmony – Diferencia y comparación