Esta es la pregunta que enfrenté en mi entrevista.
¿Por qué el método main en Java se llama public static void main (String [] args)?
Responder:
1. main () debe declararse público porque JVM lo invoca cada vez que comienza la ejecución del programa. JVM no pertenece a nuestro paquete de programas.
Para acceder a main fuera del paquete, tenemos que declararlo como público. Si lo declaramos como algo que no sea público, muestra un Error de tiempo de ejecución pero no un error de tiempo de compilación
2. main () debe declararse como estático porque si un método se declara como estático, entonces podemos llamar a ese método fuera de la clase usando ClassName.methodName ();
class Sample
{
static void fun()
{
System.out.println("Hello");
}
}
class Test
{
public static void main(String[] args)
{
Sample.fun();
}
}
La JVM primero cargará la clase de prueba, verificará los argumentos de la línea de comandos y llamará al método principal como Test.main ();
3. main () debe declararse como void main () 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.
4. main () debe tener argumentos de cadena como matrices porque JVM llama al método principal al pasar el argumento de la línea de comandos. Como se almacenan en un objeto de matriz de cadena, se pasa como argumento a main ().